有沒有人知道在離散屬性和連續屬性上執行聚類的好算法?我正在研究識別一組類似客戶的問題,並且每個客戶都具有離散和連續屬性(Think客戶類型,此客戶產生的收入金額,地理位置等)。具有離散和連續屬性的聚類算法?
傳統上的算法K-means或EM用於連續屬性,如果我們有連續屬性和離散屬性的混合,該怎麼辦?
有沒有人知道在離散屬性和連續屬性上執行聚類的好算法?我正在研究識別一組類似客戶的問題,並且每個客戶都具有離散和連續屬性(Think客戶類型,此客戶產生的收入金額,地理位置等)。具有離散和連續屬性的聚類算法?
傳統上的算法K-means或EM用於連續屬性,如果我們有連續屬性和離散屬性的混合,該怎麼辦?
如果我沒有記錯的話,那麼COBWEB算法可以使用離散屬性。
而且您還可以對離散屬性執行不同的「技巧」以創建有意義的距離度量標準。
您可以谷歌聚類的分類/離散屬性,第一次點擊之一:ROCK: A Robust Clustering Algorithm for Categorical Attributes。
你也可以看看affinity propagation作爲一個可能的解決方案。但爲了克服連續/離散的困境,您需要定義一個函數來估計離散狀態。
我實際上會向用戶展示一對離散屬性,並要求他們定義它們的接近度。你會給他們一個從[同義詞..非常外國]或類似的範圍。有很多人這樣做,你會得到一個非線性屬性值被廣泛接受的接近函數。
R是聚類的好工具 - 標準方法是使用daisy
計算混合數據上的相異矩陣,然後使用agnes
與該矩陣進行聚類。
cba
module on CRAN包括基於ROCK對二元預測變量進行聚類的函數。
如何將每個分類屬性轉換爲一系列N-1二元指示符屬性(其中N是類別數)? 你不應該害怕高維度,因爲稀疏表示(例如可以使用mahout的SequentialAccessSparseVector
)。 一旦你這樣做了,你可以使用經典的K-means或任何標準的僅用於數字的聚類算法。