2014-05-07 69 views
0

我有一個數據矩陣作爲以下給出..我應該使用哪種聚類技術?

它是用戶訪問matrix..each行代表用戶和每列表示由該用戶訪問的網頁的類別。

0 8 1 0 0 8 0 0 0 0 0 0 0 11 2 2 0 
1 0 7 0 0 0 0 0 1 1 0 0 0 0 0 0 1 
1 0 1 1 0 0 0 0 0 1 0 0 0 1 0 0 0 
6 1 0 0 0 2 6 0 0 0 0 1 0 0 0 0 0 
5 3 2 0 2 0 0 0 0 0 1 0 0 0 1 0 0 
2 3 0 1 0 1 0 0 0 0 0 1 0 3 0 0 0 
9 0 1 1 0 0 5 0 0 0 1 2 0 0 0 0 0 
5 1 4 0 0 0 1 0 0 2 0 0 0 9 0 0 0 
5 5 0 2 0 1 0 0 0 0 1 1 0 0 0 0 0 
1 2 0 0 2 3 3 0 0 1 1 0 0 0 4 0 0 
0 1 0 1 0 2 0 0 1 0 0 0 0 2 0 0 0 
5 4 0 0 1 0 0 0 0 0 1 0 0 2 0 0 0 
0 0 0 2 0 0 2 12 1 0 0 0 2 0 0 0 0 
6 1 0 0 0 0 58 15 7 0 1 0 0 0 0 0 0 
1 0 2 0 0 1 1 0 0 0 2 0 0 0 0 0 0 

我需要在其上應用biclustering技術。 這種雙聚類技術將首先生成用戶羣集,然後生成頁面羣集。之後,它將用戶和頁面羣集結合起來以生成雙聚類。 現在我很困惑我應該爲此使用哪種聚類技術。 最好的聚類將從這個矩陣生成相干雙聚類。

+1

您是否有理由需要雙集羣數據,而不僅僅是分析?這是解決矩陣問題的數學解決方案,而不是程序化解決方案。 –

+0

看看[Apache Mahout](https://mahout.apache.org/),他們有很多[算法](https://mahout.apache.org/users/basics/algorithms.html)可能適合您的需求。 – sp00m

+0

是的,我正在處理網絡日誌數據的雙重聚合..我已經從這些數據生成了這個矩陣..但是現在關於聚類方法來執行雙聚類。 – Pratts

回答

0

通過查看矩陣,您無法確定哪種聚類算法最好。你必須嘗試不同的算法(可能是k-means,bayes,最近的鄰居或者你的圖書館有的)。進行交叉驗證(集羣只是一種將用戶歸類到集羣中心的分類)並評估結果。你甚至可以把它打印到圖表上。然後做出決定。沒有決定會是完美的,你總會有錯誤。結果取決於你的期望。也許錯誤更多的結果在你的個人觀點中會有更好的結果。

你有沒有嘗試過任何算法呢?

+0

是的,我已經嘗試了k意味着它的算法..它給出了很好的結果..但問題是k值..選擇最佳的k值。 – Pratts

+0

是的,這確實是一個問題。但是儘管有層次聚類,我聽說過的所有算法都需要固定數量的簇來計算才能運行。 –

1

下面是幾個聚類算法,可以幫助回答這個問題

摘要「的聚類技術我應該用?」

沒有客觀上的「正確」的聚類算法Ref

聚類算法可以根據自己的「集羣模式」進行分類。針對特定類型的模型設計的算法通常會在不同類型的模型上失敗。例如,k-means不能找到非凸集羣,它只能找到圓形集羣。

因此,瞭解這些「集羣模式」成爲關鍵,理解如何不同的聚類算法/方法中進行選擇。典型的羣集模型包括:

[1]連接模式:構建基於距離的連接模型。如分層聚類。當我們需要根據樹木切割高度進行不同的分區時使用。 R函數:統計軟件包中的hclust。

[2]質心模式:由表示由單個均值向量每個簇構建模型。當我們需要清晰的分區時使用(與後面描述的模糊聚類相對)。 R函數:統計包中的kmeans。

[3]分佈模型:生成基於統計分佈模型,例如通過最大期望算法使用多變量正態分佈。用於羣集形狀可以是任意的,而不同於假定爲圓形羣集的k-均值。 R功能:羣集軟件包中的羣集。

[4]密度模型:生成基於簇在數據空間連接密集區域的模型。例如DBSCAN和OPTICS。用於羣集形狀可以是任意的,不同於假定爲圓形羣集的k-均值。R函數dbscan在包dbscan中。

[5]子空間模型:生成基於兩個集羣成員和相關屬性的模型。例如,雙聚類(也稱爲聯合聚類或雙模式聚類)。在需要同時進行行和列聚類時使用。 R函數biclust在biclust包中。

[6]組模型:根據分組信息構建模型。例如協同過濾(推薦算法)。 R函數Recommender in recommenderlab包。

[7]基於圖的模型:基於派系構建模型。社區結構檢測算法嘗試在有向或無向圖中找到稠密子圖。例如igraph包中的R函數cluster_walktrap。

Kohonen自組織特徵映射:基於神經網絡建立模型。 R功能在kohonen包中。

[9]光譜聚類:基於非凸集羣結構構建模型,或者當中心的度量不是整個聚類的合適描述時。 R函數specc在kernlab包中。

[10]子空間聚類:對於高維數據,距離函數可能會產生問題。羣集模型包括羣集的相關屬性。例如,R包HDclassif中的hddc函數。

[11]序列聚類:相關的組序列。 rBlast軟件包。

親和傳播:基於數據點之間的消息傳遞構建模型。在運行算法之前,不需要確定羣集的數量。某些計算機視覺和計算生物學任務比較好,例如,聚類人臉圖片和識別調控轉錄本,比k-means,Ref Rpackage APCluster。

[13]流聚類:生成基於數據比如電話記錄,金融交易等如R包BIRCH [連續到達模型https://cran.r-project.org/src/contrib/Archive/birch/]

[14]文獻聚類(或文本聚類):構建模型基於SVD。它用於主題提取。例如胡蘿蔔[http://search.carrot2.org]是一個開源的搜索結果聚類引擎,可以將文檔聚類爲專題類別。

潛類級模型:它將一組觀察到的多變量變量與一組潛變量聯繫起來。 LCA可用於協作過濾。 R功能recommenderlab軟件包中的Recommender具有協作過濾功能。

雙聚類:用於同時對雙模數據的行和列進行聚類。例如包裝biclust中的R功能biclust。軟聚類(fuzzy clustering):每個對象在一定程度上屬於每個聚類。例如fclust包中的R Fclust函數。

相關問題