我有一個數組如下:的Javascript數數據分組和異常值去除
var myArray = [3, 6, 8, 9, 16, 17, 19, 37]
我需要去除異常值以及組中的剩餘數據到任何出現的獨特的基團。在這種情況下,37
將作爲異常值被刪除,[3, 6, 8, 9]
將被返回,因爲第一組和[16, 17, 19]
將作爲第二組返回。
這裏是第二示例
var mySecondArray = [80, 90, 100, 200, 280, 281, 287, 500, 510, 520, 800]
200
和800
將作爲異常值除去,[80, 90, 100]
將是在第一組,[280, 281, 287]
將是第二和[500, 510, 520]
作爲第三。
我已經編寫了代碼,用於刪除外部外部這是足夠簡單的使用第一和第三四分位數。換句話說,從mySecondArray
中刪除800
作爲異常值是沒有問題的。但它不會刪除280
作爲異常值。
我想,一個局外人然後可以定義爲一組具有小於n
成員,因此真正的問題是什麼是這個數據劃分成組適當數量的一種有效的方法?
任何幫助非常感謝!
你可能尋找[K-means聚類(https://en.wikipedia.org/wiki/K-means_clustering) –
所以你'n ==可10 「這裏? – Redu
不,如果'n'是10,那麼在我的例子中,所有東西都是異常的:)在我的例子中,'n'可能是3。換句話說,2個或更少項目的組是異常值。 – abagshaw