在scikit-learn中,一些聚类算法同时使用{{1>}和predict(X)
方法,例如 KMeans 和 MeanShift ,而其他算法只有后者,如 SpectralClustering 。根据文件:
fit_predict(X)
我真的不明白两者之间的区别,它们似乎与我相同。
答案 0 :(得分:4)
为了使用'预测',您必须首先使用'适合'方法。所以使用'fit()'然后'predict()'绝对与使用'fit_predict()'相同。但是,在您需要知道模型的初始化参数而不是使用'fit_predict()'的情况下,只能使用'fit()',您将获得运行您的标签结果。关于数据的模型。
答案 1 :(得分:2)
fit_predict
通常用于无监督机器学习转换估计器。
基本上,fit_predict(x)
相当于fit(x).predict(x)
。
答案 2 :(得分:1)
在这里添加答案可能为时已晚,只是为了将来有人可能会受益
我认为在 kmeans 中有预测而在 dbscan 中只有 fit_predict 的原因是
在 kmeans 中,您可以根据所考虑的集群数量获得质心。因此,一旦您使用 fit()
训练了您的数据点,您就可以使用它predict()
一个新的单个数据点以分配给特定集群。
在 dbscan 中,您没有质心,根据您定义的 min_samples
和 eps
(被视为邻居的两点之间的最小距离),形成了簇。该算法返回所有数据点的集群标签。这种行为解释了为什么没有 predict() 方法来预测单个数据点。其他用户已经解释了 fit() 和 fit_predict() 之间的区别 -
在另一种空间聚类算法中,hdbscan 为我们提供了使用 approximate_predict()
进行预测的选项。值得探索。
再次根据我探索的源代码理解。任何专家都可以突出任何差异。