0

我试图通过与 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

问题

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

1 回答 1

0

OPTICS 没有固定数量的集群。这不是k-means。

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

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

于 2018-04-14T10:51:32.310 回答