当我应该使用其中之一时,“sklearn.cluster.k_means”和“sklearn.cluster.KMeans”之间有什么区别?

Moh*_*ney 6 cluster-analysis k-means scikit-learn

当我应该使用其中之一时,我对“sklearn.cluster.k_means”和“sklearn.cluster.KMeans”之间的区别感到困惑?

Bla*_*ane 3

来自sklearn 术语表:“我们为许多算法提供临时函数接口,而估计器类提供更一致的接口。” k_means()只是一个返回结果的包装器KMeans.fit()

  • cluster_centers_,
  • labels_,
  • inertia_,
  • n_iter_

KMeans是一个按照sklearn 对象开发人员指南设计的类。 KMeans与 sklearn 中的其他分类器对象一样,必须实现以下方法:

  • fit(),
  • transform(), 和
  • score()

并且还可以实现其他方法,例如predict(). KMeans使用over的主要好处k_means()是您可以轻松访问KMeans. 例如,如果您想使用predict未见过的数据所属的集群的训练模型:

from sklearn.clustering import KMeans

est = KMeans()
KMeans.fit(X_train)
cluster_labels = est.predict(X_test)
Run Code Online (Sandbox Code Playgroud)

如果您使用函数式 API,要应用预测,您必须深入了解KMeans.predict()如何执行此操作。

并非所有 sklearn 对象都实现了功能设计,但您可以使用 sklearn 中的其他示例来指导您轻松实现这一点。