我对#34; sklearn.cluster.k_means"之间的区别感到困惑。和" sklearn.cluster.KMeans"什么时候我应该使用其中一个?
答案 0 :(得分:1)
来自sklearn glossary:“ [w]为许多算法提供了临时功能接口,而估计器类提供了更一致的接口。” k_means()
只是返回KMeans.fit()
结果的包装器:
cluster_centers
_,labels_
,inertia_
,n_iter_
KMeans
是根据sklearn objects开发人员指南设计的类。 KMeans
与sklearn中的其他分类器对象一样,用于以下目的的must implement方法:
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中的其他示例轻松地实现此目的。