我正在尝试在R
中的多变量数据集上学习和实现谱聚类。我有9个自变量和1个因变量,它是二进制的。
作为光谱聚类的第一步,我需要根据给定的数据集创建一个图形(我有大约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 :(得分:0)
好像nng至少想要一个二维矩阵。这个例子似乎在运行
library(cccd)
data<-runif(50)
knnGraph<-nng(matrix(data[2:10], ncol=2),k=3)
plot(knnGraph)
请注意,我已将as.matrix
更改为matrix
并添加了nol=2
以向其提供第二个维度。我之前从未使用过那个函数,所以我不知道它在那个参数中真正想要的是什么,但看起来as.matrix(data[2:10])
返回的9x1矩阵不会削减它。