【问题标题】:Create multivariate similarity graph创建多元相似度图
【发布时间】:2014-06-25 00:02:31
【问题描述】:

我正在尝试在R 的多元数据集上学习和实施谱聚类。我有 9 个自变量和 1 个二进制因变量。

作为谱聚类的第一步,我需要根据给定的数据集创建一个图表(我有大约 1000 个观察值)。因为我才刚刚开始,我并不真正关心用于创建图形的方法,但如果它使用 k 近邻会更好。

我在包cccd 中遇到了一个函数nng,它创建了图表。 我使用了以下内容:

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 中实现光谱聚类的分步教程,但找不到。任何指向任何此类资源的指针也将不胜感激。

【问题讨论】:

    标签: r graph cluster-analysis knn spectral


    【解决方案1】:

    看起来 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 矩阵不会削减它。

    【讨论】:

    • 感谢您的回答,但它似乎不适用于我的数据集。你的 data 有 50 个元素(都属于 1 个变量),而我的 data 是一个有 10 个变量的数据框。也就是说,我的ncol已经是9了,就是这个问题的原因。我仍然遇到同样的错误。
    • 嗯,数据在我看来确实像一个向量。这就是为什么在发布问题时提供示例数据总是有帮助的。无论如何,该函数似乎只喜欢具有 2 或 3 列的矩阵。所以也许你传入了错误类型的数据。文档没有那么描述性。也许您可以查阅他们提供的参考资料,看看该方法是否适用于更高维度:D.J. Marchette,用于统计模式识别的随机图,John Wiley & Sons,2004 年。
    猜你喜欢
    • 2021-01-09
    • 1970-01-01
    • 1970-01-01
    • 2017-06-13
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2021-08-11
    • 1970-01-01
    相关资源
    最近更新 更多