我对 "sklearn.cluster.k_means "和 "sklearn.cluster.KMeans "之间的区别感到困惑,当我应该使用它们中的一个?
从 sklearn词汇表: "我们为许多算法提供了专门的函数接口,而估计器类则提供了更一致的接口。" k_means()
只是一个包装器,它返回的结果是 KMeans.fit()
:
cluster_centers
_,labels_
,inertia_
,n_iter_
KMeans
是一个按照开发指南设计的类,用于 sklearn对象. KMeans
和sklearn中的其他分类器对象一样。必须实施 的方法。
fit()
,transform()
和 score()
.并可以实现其他方法,如 predict()
. 使用的主要好处是 KMeans
在...上 k_means()
是你可以很容易地访问在 KMeans
. 例如,如果你想用你的训练模型来进行 predict
未见数据属于哪个集群。
from sklearn.clustering import KMeans
est = KMeans()
KMeans.fit(X_train)
cluster_labels = est.predict(X_test)
如果你使用功能API, 要应用预测,你将不得不寻找的引擎盖下的。KMeans.predict()
来了解如何做到这一点。
功能设计并不是对所有的sklearn对象都能实现,但你可以使用sklearn的其他例子来指导你自己轻松实现。