2014-05-07 21 views
0

我想學習和R在多元數據集執行譜​​聚類。我有9個獨立變量和1個二進制因變量。創建多元相似度圖形

作爲第一步到譜聚類,我需要創建從給定的數據集(I具有約1000的觀察結果)的曲線圖。因爲我剛剛開始,我並不在意創建圖的方法,但如果它使用k最近的鄰居,它會更好。

我碰到一個功能nng在其中創建圖形軟件包cccd來了。 我用下面的:

knnGraph<-nng(as.matrix(data[2:10]),k=3) 

這運行正常,只是當我嘗試使用plot(knnGraph)以可視化的圖形,我收到以下錯誤:

Error in layout.norm(layout, -1, 1, -1, 1) : 
    `layout' should have 2 or three columns 

我不知道如何進行, 任何幫助將非常感激。 我也試圖找到一個循序漸進的教程來實現R中的譜聚類,但無法找到它。任何指向任何此類資源的指針都將非常感謝。

回答

0

看來好像NNG希望至少一個二維矩陣。這個例子似乎運行

library(cccd) 
data<-runif(50) 
knnGraph<-nng(matrix(data[2:10], ncol=2),k=3) 
plot(knnGraph) 

注意,我改變as.matrixmatrix並添加nol=2給它一個第二個維度。我從來沒有使用該功能,也不是包之前,所以我不知道什麼是真正想在該參數的,但它看起來像由as.matrix(data[2:10])是不會削減它返回的9X1矩陣。

+0

謝謝您的回答,但它似乎並沒有與我的數據集的工作。你的data有50個元素(全部屬於1個變量),而我的data是一個有10個變量的數據幀。換句話說,我的'ncol'已經是9了,這是造成這個問題的原因。我仍然得到同樣的錯誤。 – Patthebug

+0

好吧,數據確實看起來像一個向量我。這就是爲什麼發佈問題時提供示例數據總是有幫助的。無論如何,該函數似乎只喜歡2列或3列的矩陣。所以也許你傳遞了錯誤的數據類型。該文件不是描述性的。也許你可以參考他們提供的參考資料,看看該方法是否可以在更高的維度上工作:_D.J。 Marchette,Random Graphs for Statistical Pattern Recognition,John Wiley&Sons,2004._ – MrFlick