Clustering

通過稀疏數據聚類進行用戶細分

  • March 2, 2016

想像一下,我有 10 萬個用戶和 1k 個類別。對於每個用戶,最多 5 個類別,我知道他們花了多少錢。顯然我的數據非常稀疏。

現在我想按用戶在不同類別上花費的錢對他們進行分組。這樣,我可以將某些類別中“便宜”和某些其他類別中“勢利”的用戶分組在一起。

在通過計算它們偏離類別均值的標準偏差次數來標準化值之後,我嘗試了 k-means 聚類,但我最終發現一個集群越來越大,而其他集群縮小為僅包含少數用戶的集群作為數字k-means 的迭代次數確實增加了。

如何解決稀疏數據問題的聚類?任何指針,建議或想法表示讚賞。

-Means 不太可能在如此高維空間上給出有意義的集群(參見例如Curse of Dimensionality)。

我同意評論中的建議:您需要減少數據的維數,然後執行-意味著減少空間。

但是我不會以正確的方式進行 PCA:對於 PCA,您需要進行mean normalization,這會將稀疏矩陣變成密集矩陣。你可以做的是SVD - 沒有均值歸一化 - 然後應用聚類算法。另請注意,隨機 SVD應該可以正常工作,但速度更快。

您可以在非負矩陣分解中應用的另一種可能有趣的技術。由於您的數據只包含正值(如果我得到正確的話),NMF 應該很好地解決這個問題。此外,您可以將 NMF 的結果解釋為聚類:當我們在做維 NMF,我們可以將結果矩陣的列視為簇,單元格中的值是觀察與集群的關聯程度.

您可以在“基於非負矩陣分解的文檔聚類”中閱讀有關將 NMF 應用於聚類的更多信息。作者:Xu、Wei、Xin Liu 和 Yihong Gong ( pdf )。

引用自:https://stats.stackexchange.com/questions/199501

comments powered by Disqus