【问题标题】:How to plot an affinity cluster using scikit如何使用 scikit 绘制亲和簇
【发布时间】:2019-03-20 11:19:11
【问题描述】:

我正在使用 scikit 的 AffinityPropogation 对一些名称进行聚类,并且我想绘制/可视化这些聚类。我的输入数据具有预先计算的接近度,这就是它的样子:

#sample input data
joe,mike,ali,andrew,sean
.2,.221,.5,.5,.7
.82,0,.1,.72,.0
.7,.88,.7,.2,1
0,0,.4,.8,.9
.3,.03,.07,.003,.2

这是我为集群准备的简单代码:

import numpy as np
import pandas as pd
import sklearn.cluster
import matplotlib.pyplot as plt
from sklearn import metrics

data = pd.read_csv('/pydata/nametokenmatrix.txt')

M = data.as_matrix()
af = sklearn.cluster.AffinityPropagation(affinity="precomputed", damping=0.5)
af.fit(M)

cluster_centers_indices = af.cluster_centers_indices_
labels = af.labels_

在运行此代码时,我确实生成了一些集群,但我不确定如何绘制它以便可视化它们。由于我正在通过聚类来解决问题,因此我想通过绘制不同的算法来比较它们。像here 这样的东西。

谢谢

【问题讨论】:

  • 你的数据点的维度是多少,即 M 的形状?
  • 它的形状大约为 60000 x 60000。其中每个名称是一列,每一行是与每个列\名称的行的预先计算距离。我在帖子中包含了一个示例数据 sn-p。

标签: python scikit-learn cluster-analysis


【解决方案1】:

您需要嵌入亲和度矩阵。

精心调整的非度量 MDS 应该是一个好的开始。

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 2019-12-28
    • 2016-08-24
    • 2020-03-20
    • 2013-07-19
    • 2023-03-30
    • 2018-01-24
    • 2022-09-28
    • 2022-11-05
    相关资源
    最近更新 更多