2014-05-07 20 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