我正在使用sklearn的AffinityPropagation进行聚类。
使用clustering.labels_
产生的结果与对相同训练数据进行clustering.predict
的结果不同(尽管几乎相同)。
对为什么这是真的有任何见解吗?
最佳答案
除k-means-family外,请勿将predict
用于任何群集。
如果执行fit
,则将通过亲和力传播来计算结果。
如果调用predict
,则实际上不是在执行AP。取而代之的是,它只是找到每个点的最近样本。正如您所观察到的,这可能会或可能不会产生相同的结果。由于最有可能是近点,因此很有可能是正确的-但它没有进行任何形式的亲和力传播,因此它是与示例最接近的分类。
k均值很好,因为它使用最近的中心逻辑。但这通常不适用于群集。通常,聚类算法无法预测样本外数据。你需要一个分类器。
关于python - AffinityPropagation .labels_与.predict(),我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/53900542/