當前位置:編程學習大全網 - 編程語言 - 聚類算法數據分析

聚類算法數據分析

提到聚類算法,K-Means算是略懂數據分析的人都知道的壹種。但K-Means也有其局限性,基本只能處理數值型聚類。而且按距離進行聚類而非密度,無法處理環形圖樣。實際在使用聚類算法時,還有很多技巧性問題。

聚類算法需要各變量間相關性較低,可以采用DataFrame的corr()函數進行相關性計算。另外,聚類的變量要區分離散值和非離散值。對於非離散變量,需要進行標準化或歸壹化;對於離散變量,可以轉換為虛擬變量,並采用{0, 1}編碼。建議采用min-max標準化,這樣和虛擬變量保持相同的相同範圍。

對於包含非離散變量和虛擬變量的數據集(通常情況),建議采用K-Prototype而非K-Means算法進行聚類。在使用時可以標記相關虛擬變量,確保區別處理(實際虛擬變量采用K-Modes,非離散變量采用K-Means,再基於權重a進行結果合並)。

KPrototypes(n_clusters=np).fit(df.values, categorical=[1, 2])

其中的1, 2代表df數據集中的第1, 2列(從0計數)。評估聚類算法可以基於輪廓系數,對比不同的K值,在業務允許範圍內得到最佳K值。建議的輪廓系數函數是silhouette_score,其最大值為1,越接近1越好,可以在不同算法情況下進行相對比較。

除輪廓系數外,還可以降維繪制散點圖(通過TSNE降維),按聚類算法分類對散點進行著色,進而直觀的進行聚類算法分類結果的判斷。

TSNE(n_components=2)

總結來說,整個聚類算法數據分析的操作步驟如下:

1. 構建低相關性變量數據集(通過給高相關性變量設置固定值);

2. 對非離散變量進行min-max歸壹化操作;

3. 對包含虛擬變量的數據集采用K-Prototype聚類算法,對只包含非離散變量的數據集采用K-Means算法;

4. 通過輪廓系數silhouette_score對K值進行循環測試,得到最佳K值;

5. 通過TSNE將數據集降維為兩維顯著特征值,並通過散點圖,配合聚類算法分類結果配色對聚類算法分類結果進行合理判斷;

6. 對聚類算法分類結果,結合業務邏輯進行解釋,確保分類結果支撐業務分析。

  • 上一篇:總結做建模最重要的六個小技巧
  • 下一篇:呈貢註冊公司:公司註冊非學歷類教育培訓機構註冊需要什麽條件
  • copyright 2024編程學習大全網