什麼是最好的集羣算法用於聚集超過100個維度(有時甚至是1000)的數據。如果您知道C,C++或特別是C#中的任何實現,我將不勝感激。高維數據集羣
高維數據集羣
回答
這很大程度上取決於您的數據。見維度的常見問題的詛咒。最近的研究(Houle等人)表明,你不能真正走過數字。可能有成千上萬的維度和數據集羣,當然,甚至有一維數據只是不集羣。這主要是信號與噪聲的問題。這就是爲什麼例如TF-IDF向量的聚類工作得相當好,特別是對於餘弦距離。
但關鍵的一點是,你第一個需要了解你的數據的性質。然後,您可以選擇適當的距離函數,權重,參數和算法。
尤其是,您還需要知道什麼構成了您的羣集。有很多定義,特別是對於高維數據。它們可能在子空間中,它們可能會或可能不會被任意旋轉,它們可能重疊或不重合(例如,k-表示不允許重疊或子空間)。
好吧,我知道一個叫做矢量量化的東西,它是一個很好的算法,可以將多個維度聚集起來。
我已經在數據的100維上使用了k-means,這是非常常見的,所以我敢肯定,它們是任何語言的實現,最糟糕的情況 - 它很容易通過你自己來實現。
在嘗試對其進行聚類之前,可能還需要嘗試一些降維技術,如主成分分析或自動關聯神經網絡。它可以把一個巨大的問題變成一個更小的問題。
之後,去k-means或gaussians的混合物。
你能告訴我關於神經網絡方法的一些信息嗎?但我認爲它必須經過培訓? –
現在這可能已經老了,但我剛剛看到了這個。是的,就像任何網絡一樣,你需要訓練它。這個想法是,你使用N個節點的內部層,N << Dims,然後訓練它在輸出節點上重現輸入數據。這樣做,你迫使網絡放棄一些數據。最大限度地減少輸入和輸出之間的差異將確保保留最豐富的數據。例如:輸入(媽媽的身高,爸爸的身高,爸爸的眼睛顏色);輸出(孩子的身高),內部節點2.在訓練期間,眼睛顏色的權重歸零,因爲它是無關緊要的。 –
LMW-tree項目中的EM樹和K樹算法可以聚類這樣的高維問題。它用C++實現並支持許多不同的表示形式。
我們有新穎的算法聚類由LSH /隨機投影創建的二進制向量,或任何其他發射二進制向量,可通過海明距離進行比較的相似度。
- 1. 將數以百萬計的高維數據集羣化爲集羣
- 2. 使用python和DBSCAN集羣高維數據
- 3. 使用pvclust集羣一維數據
- 4. 維護Cassandra集羣
- 5. 集羣序數據
- 6. 低維和高維數據
- 7. 羣集數據參數
- 8. OLAP多維數據集 - 數據多維數據集
- 9. 報廢維基百科,使用集羣管理此數據
- 10. 如何在羣集中繪製多維數據
- 11. 數據集市與多維數據集
- 12. Netty高可用性羣集
- 13. 當日高/低集羣
- 14. 集羣二進制數據
- 15. 集羣定性數據
- 16. 移動postgresql數據集羣
- 17. 數據集羣方法
- 18. mySQL數據庫:分離/集羣(?)數據
- 19. Elasticsearch集羣數據遷移到新集羣
- 20. 如何使生產數據庫上的羣集PK非羣集?
- 21. 數據庫中的羣集或數據庫中的羣集意味着什麼?
- 22. 瞭解數據庫維度和多維數據集維度
- 23. kmeans集羣中的集羣錯誤數
- 24. SQL OLAP多維數據集和維
- 25. Cassandra重啓集羣進行維護
- 26. 在多維數據集
- 27. 多維數據集配置
- 28. 喂多維數據集
- 29. 次數羣序在LINQ到數據集
- 30. Threejs/WebGL:最適合多維數據集的高性能方法?
關於多少個數據點,您擁有多少個羣集?是否有一些點已知類標籤?如何使用羣集?對於如此廣泛的可能性,沒有「最佳算法」。也許閱讀[聚類分析]的上半部分(http://en.wikipedia.org/wiki/Cluster_analysis),然後再詢問。 – denis