如何检查新点是否在现有簇内 (Python)

How to check a new point is inside the exist clusters (Python)

我对聚类有点困惑,例如K-均值聚类。 我已经为训练和测试部分创建了集群我想知道新点是否已经在集群中或者它们是否可以在集群中? 我的想法是找到每个集群的中心,并在训练数据中找到每个集群中的最远点,然后在测试部分,如果新点的距离大于阈值(例如最远点的 1.5 倍),则它不能在集群中!

这个想法是否有效且正确,是否有任何 python 功能可以做到这一点?

还有一个问题: 有人可以帮助我理解 kmeans.fit() 和 kmeans.predict() 之间的区别吗?我在两个函数中得到了相同的结果!!

感谢任何帮助

一般情况下,当你拟合K-means算法时,你会得到聚类中心作为结果。

因此,如果要测试新点属于哪个簇,则必须计算每个簇中心到该点的距离,并将点标记为最近的簇中心标签。

如果您使用 scikit-learn

Predict(X) 方法预测 X 中每个样本所属的最近簇。

Fit(X) - 拟合数据,或者换句话说计算聚类中心。

Here 是如何在 scikit-learn

中使用 K-means 的好例子