当我应该使用其中之一时,“sklearn.cluster.k_means”和“sklearn.cluster.KMeans”有啥区别?
Posted
技术标签:
【中文标题】当我应该使用其中之一时,“sklearn.cluster.k_means”和“sklearn.cluster.KMeans”有啥区别?【英文标题】:what is the difference between "sklearn.cluster.k_means" and "sklearn.cluster.KMeans" when I should use one of them?当我应该使用其中之一时,“sklearn.cluster.k_means”和“sklearn.cluster.KMeans”有什么区别? 【发布时间】:2018-06-05 23:22:42 【问题描述】:当我应该使用其中之一时,我对“sklearn.cluster.k_means”和“sklearn.cluster.KMeans”之间的区别感到困惑?
【问题讨论】:
使用后者。他们都在做同样的事情,但是后者使用的是sklearn的API,而另一个只是一个函数。 【参考方案1】:来自sklearn glossary:“[w]e 为许多算法提供临时函数接口,而估算器类提供更一致的接口。” 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 中的其他示例来指导您自己轻松实现。
【讨论】:
以上是关于当我应该使用其中之一时,“sklearn.cluster.k_means”和“sklearn.cluster.KMeans”有啥区别?的主要内容,如果未能解决你的问题,请参考以下文章
我有一个使用把手的网站,但是当我尝试丰富其中一个页面时出现错误
错误:PLS-00103:在预期以下情况之一时遇到符号“)”