【发布时间】:2019-05-22 20:32:52
【问题描述】:
我正在使用来自 sklearn 的 AffinityPropagation 进行聚类。
使用clustering.labels_ 与在相同的训练数据上使用clustering.predict 产生不同(尽管几乎相同)的结果。
你知道为什么这是真的吗?
【问题讨论】:
标签: python machine-learning scikit-learn cluster-analysis
我正在使用来自 sklearn 的 AffinityPropagation 进行聚类。
使用clustering.labels_ 与在相同的训练数据上使用clustering.predict 产生不同(尽管几乎相同)的结果。
你知道为什么这是真的吗?
【问题讨论】:
标签: python machine-learning scikit-learn cluster-analysis
不要将predict 用于除 k-means-family 之外的任何聚类。
如果您执行fit,则使用亲和力传播计算结果。
如果你调用predict,它不是实际上在做AP。相反,它只是为每个点找到最近的样本。正如您所观察到的,这可能会或可能不会给出相同的结果。由于近点最有可能负责,因此这很有可能是正确的 - 但它没有进行任何形式的亲和性传播,它是示例的最近邻分类。
k-means 很好,因为它使用最近中心逻辑。但这通常不适用于聚类。一般来说,聚类算法无法预测样本外数据;你需要一个分类器。
【讨论】: