从相似性矩阵中识别异常值

Identify outliers from similarity matrix

我有一个 nxn 维的 numpy 矩阵,其中 [i,j] 元素是两个对象之间的相似性分数(0-1,1 相同,0 相反)(在这种情况下,我正在分析颜色调色板,因此它是调色板 i 和调色板 j 之间的相似度得分)。我想确定哪些对象是“离群值”(使用此处松散的定义)。我能想到的最接近的是使用 DBSCAN 之类的东西并确定哪些对象似乎不适合。有更好的方法吗?

我会选择 Markov clustering

本质上,该算法是在图上随机游走。

如果你有邻近矩阵,随机游走非常容易实现。 算法大致是:

  1. 标准化矩阵。
  2. 提高它的大幂(M**n)。
  3. 查看节点之间的连接强度。