scikit-学习聚类:predict(X)vs.fit_predict(X)

stu*_*nt1 10 machine-learning python-3.x scikit-learn

在scikit-learn中,某些聚类算法同时具有predict(X)fit_predict(X)方法,例如KMeansMeanShift,而另一些仅具有后者,例如SpectralClustering。根据文档:

fit_predict(X[, y]):    Performs clustering on X and returns cluster labels.
predict(X): Predict the closest cluster each sample in X belongs to.
Run Code Online (Sandbox Code Playgroud)

我不太了解两者之间的区别,它们似乎和我一样。

Oer*_*Oer 7

为了使用“预测”,必须首先使用“适合”方法。因此,先使用“ fit()”再使用“ predict()”与使用“ fit_predict()”完全相同。但是,在这种情况下,您只需要了解模型的初始化参数,而不是如果您使用'fit_predict()',就可以从运行过程中获得标签结果在数据上建模。

  • 这并不能完全回答问题。他们在问“为什么`KMeans` 有一个`predict` 方法,但`SpectralClustering` 没有......而且我实际上无法解决这个问题......也许这是一个错误/缺失的功能?我的理解是,作为 scikit-learn API 设计的一部分,所有分类器都应该有一个 `fit` 和一个 `predict` 方法...... (3认同)
  • 那么...我们对 @maxymoo 的问题有答案吗? (2认同)

小智 6

fit_predict 通常用于无监督机器学习转导估计器。

基本上fit_predict(x)相当于fit(x).predict(x).