导入错误。无法导入 kmeans_plusplus

Import error. Can't import kmeans_plusplus

我正在尝试使用 scikit-learn 复制聚类模型的示例:

import sklearn
sklearn.__version__

Returns:

'0.23.2'

并且:

from sklearn.cluster import kmeans_plusplus

Returns 错误信息:

ImportError: cannot import name 'kmeans_plusplus' from 'sklearn.cluster' (C:\Users\sddss\anaconda3\lib\site-packages\sklearn\cluster\__init__.py)

没有 kmeans_plusplus class 或版本 0.23.2 的模块。您需要导入 KMeans 并将 init 关键字参数设置为 kmeans++ 以获得您想要的行为

from sklearn.cluster import KMeans
kmeans = KMeans(init='k-means++')

根据documentationkmeans_plusplus

New in version 0.24.

所以它不适用于您正在使用的版本 0.23.2。

不过,这应该不是一个真正的问题; scikit-learn 中已有的“好旧的”K-Means 之间的唯一区别是根据 kmeans++ 算法对聚类中心进行初始化;这在标准 KMeans 中已经可用。来自 standard KMeans documentation 关于 init 论点:

'k-means++' : selects initial cluster centers for k-mean clustering in a smart way to speed up convergence

因此,您需要做的只是使用带有参数 init='kmeans++':

的 scikit-learn 的“vanilla”KMeans
from sklearn.cluster import KMeans
kmeans = KMeans(n_clusters=n_clusters, init='kmeans++')