从相似性矩阵中识别异常值
Identify outliers from similarity matrix
我有一个 nxn 维的 numpy 矩阵,其中 [i,j] 元素是两个对象之间的相似性分数(0-1,1 相同,0 相反)(在这种情况下,我正在分析颜色调色板,因此它是调色板 i 和调色板 j 之间的相似度得分)。我想确定哪些对象是“离群值”(使用此处松散的定义)。我能想到的最接近的是使用 DBSCAN 之类的东西并确定哪些对象似乎不适合。有更好的方法吗?
我会选择 Markov clustering。
本质上,该算法是在图上随机游走。
如果你有邻近矩阵,随机游走非常容易实现。
算法大致是:
- 标准化矩阵。
- 提高它的大幂(
M**n
)。
- 查看节点之间的连接强度。
我有一个 nxn 维的 numpy 矩阵,其中 [i,j] 元素是两个对象之间的相似性分数(0-1,1 相同,0 相反)(在这种情况下,我正在分析颜色调色板,因此它是调色板 i 和调色板 j 之间的相似度得分)。我想确定哪些对象是“离群值”(使用此处松散的定义)。我能想到的最接近的是使用 DBSCAN 之类的东西并确定哪些对象似乎不适合。有更好的方法吗?
我会选择 Markov clustering。
本质上,该算法是在图上随机游走。
如果你有邻近矩阵,随机游走非常容易实现。 算法大致是:
- 标准化矩阵。
- 提高它的大幂(
M**n
)。 - 查看节点之间的连接强度。