【问题标题】:Multidimensional Vectorclustering with dbscans OPTICS in R在 R 中使用 dbscans OPTICS 进行多维向量聚类
【发布时间】:2018-04-10 21:07:58
【问题描述】:

我试图通过与 OPTICS 算法的语义相关性来聚类一个单词矩阵。

我有一个这样的矩阵:

我想将每一行视为一个向量(约 260 维)并将彼此最接近的术语聚类。

到目前为止我的代码:

require("dbscan")
require("readxl")

list <- read_excel(choose.files())
list_only_colnames <- read_excel(choose.files())[1]

Matrix<- matrix(unlist(as.double(list$Column2)),266,266,TRUE)

list_only_colnames <- unlist(list_only_colnames)
colnames(Matrix) <- list_only_colnames
rownames(Matrix) <- list_only_colnames

### run OPTICS
res <- optics(Matrix, eps = 10,  minPts = 0,4)
res

问题

  • 在集群方面如何显示行名?
  • 首先如何设置集群数量?

【问题讨论】:

    标签: r semantic-analysis optics-algorithm


    【解决方案1】:

    OPTICS 没有固定数量的簇。这不是 k 均值。

    相反,它是数据驱动的:您根据图中的山谷选择集群,这些山谷对应于密集区域。如果只有一个密集区域,那么所有可能都只是一个集群。有些数据只是没有多个集群。

    由于您的输入数据似乎是一个相似矩阵,我不认为将每一行都视为特征向量是正确的方法。这会在您的数据中引入偏见。而是在此处使用 dist=1-sim 作为预先计算的距离矩阵。

    【讨论】:

    • 为什么你认为我需要使用距离矩阵而不是相似度矩阵?我想出了如何使用光学对我的数据进行聚类,看起来效果很好。
    • 然后计算相似向量的距离。这将“有效”,但语义非常奇怪。如果您阅读手册,它需要数据向量,或者您需要设置 search="dist" 并传递 distance 矩阵。 阅读文档
    猜你喜欢
    • 2015-12-20
    • 2021-07-21
    • 2022-05-10
    • 2014-10-04
    • 2012-05-30
    • 2012-09-28
    • 1970-01-01
    • 2015-09-22
    • 2014-03-07
    相关资源
    最近更新 更多