什么是" sklearn.cluster.k_means"和" sklearn.cluster.KMeans"什么时候我应该使用其中一个?

时间:2017-12-23 21:30:35

标签: scikit-learn cluster-analysis k-means

我对#34; sklearn.cluster.k_means"之间的区别感到困惑。和" sklearn.cluster.KMeans"什么时候我应该使用其中一个?

1 个答案:

答案 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中的其他示例轻松地实现此目的。