AffinityPropagation .labels_ 与 .predict()
AffinityPropagation .labels_ vs .predict()
我正在使用 sklearn 的 AffinityPropagation 进行聚类。
使用 clustering.labels_
会产生与对相同训练数据进行 clustering.predict
不同(尽管几乎相同)的结果。
对为什么这是真的有任何见解吗?
不要将 predict
用于除 k-means-family 之外的任何聚类。
如果你这样做 fit
,结果是用亲和力传播计算的。
如果你调用predict
,它不是实际上在做AP。相反,它只是为每个点找到最近的样本。这可能会或可能不会给出与您观察到的相同的结果。由于附近的点很可能是负责的,所以这很有可能是正确的——但它没有进行任何形式的亲和力传播,它是对样本的最近邻分类。
k-means 很好,因为它使用最近中心逻辑。但这通常不适用于集群。通常,聚类算法无法预测样本外数据;你需要一个分类器。
我正在使用 sklearn 的 AffinityPropagation 进行聚类。
使用 clustering.labels_
会产生与对相同训练数据进行 clustering.predict
不同(尽管几乎相同)的结果。
对为什么这是真的有任何见解吗?
不要将 predict
用于除 k-means-family 之外的任何聚类。
如果你这样做 fit
,结果是用亲和力传播计算的。
如果你调用predict
,它不是实际上在做AP。相反,它只是为每个点找到最近的样本。这可能会或可能不会给出与您观察到的相同的结果。由于附近的点很可能是负责的,所以这很有可能是正确的——但它没有进行任何形式的亲和力传播,它是对样本的最近邻分类。
k-means 很好,因为它使用最近中心逻辑。但这通常不适用于集群。通常,聚类算法无法预测样本外数据;你需要一个分类器。