2014-07-20 43 views
-1

我會將聚類(k-means)應用於具有類似ip地址和端口號的列的網絡數據。儘管端口號是整數,但例如第80和第81端口之間的關係並不比第80和第1800之間的關係更近。所以我認爲我不應該使用它們(整數)。對網絡數據進行聚類的預處理

我認爲使用DictVectorizer並不合適,因爲有65535端口,所以我需要不同的方法。 IP地址與端口有相同的問題。

有沒有什麼方法可以解決有或沒有scikit-learn(或有或沒有K-means)的問題?

+0

數據點總數是多少?以及如何分配端口| ip號碼?幾乎統一或是一些端口| ip號碼非常頻繁,而其他零星? –

+0

沒有特定的數據集。它將應用於多個數據集,但我可以說某些端口號會很豐富,例如80,而60103不會出現在大多數數據集中。但我不能說IP地址相同的東西。我無法理解你有關端口/ IP分配的問題。 – Yavuz

回答

3

k-means必須計算意味着

港口80和81的意思是什麼?端口80.5?

否,k均值是明智連續線性屬性。否則,無論方差(k-means的優化標準)還是平均值都沒有任何意義...

您可以嘗試各種hack,例如使每個端口成爲一個單獨的屬性。但是k-means對二進制數據也沒有意義。

使用其他算法。基於距離的算法很好,如果你已經想出瞭如何測量相似度。

+0

爲什麼k-means不能使用二進制數據(你認爲DictVectorizer在這裏我認爲)? – Yavuz

+0

它會「工作」,但結果沒有多大意義,因爲「中心」不再是二元的;通常結果會非常糟糕。確保仔細檢查任何輸出。 –

+0

「對二進制數據沒有意義」:當與PCA/SVD結合使用時,它實際上可以很好地工作。 –

相關問題