什麼是最好的集羣算法用於聚集超過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. 使用python和DBSCAN集羣高維數據
- 2. 維護Cassandra集羣
- 3. 低維和高維數據
- 4. OLAP多維數據集 - 數據多維數據集
- 5. 如何在羣集中繪製多維數據
- 6. 報廢維基百科,使用集羣管理此數據
- 7. Netty高可用性羣集
- 8. 數據集羣方法
- 9. 瞭解數據庫維度和多維數據集維度
- 10. 數據庫中的羣集或數據庫中的羣集意味着什麼?
- 11. kmeans集羣中的集羣錯誤數
- 12. 喂多維數據集
- 13. 多維數據集配置
- 14. Armadillo C++: - 高效訪問多維數據集結構中的列
- 15. 集羣的NodeJS高內存使用率
- 16. 谷歌地圖高級羣集
- 17. Windows羣集 - 軟件的高可用性
- 18. SonarQube高可用性和集羣
- 19. 高度分佈式集羣編程
- 20. 集羣共享高速緩存
- 21. SSAS多維數據集處理選項 - 禁用多維數據集
- 22. MS Excel - 使用多維數據集維度ID查找多維數據集維度名稱;可能嗎?
- 23. 用於存儲的數據庫集羣
- 24. 爲使用羣集準備數據
- 25. 二進制數據的羣集技術
- 26. H2數據庫集羣恢復
- 27. 將Redis數據遷移到羣集
- 28. 數據庫集羣 - 異步任務
- 29. 數據庫集羣如何工作?
- 30. 爲SQL Server集羣準備數據庫
關於多少個數據點,您擁有多少個羣集?是否有一些點已知類標籤?如何使用羣集?對於如此廣泛的可能性,沒有「最佳算法」。也許閱讀[聚類分析]的上半部分(http://en.wikipedia.org/wiki/Cluster_analysis),然後再詢問。 – denis