- html - 出于某种原因,IE8 对我的 Sass 文件中继承的 html5 CSS 不友好?
- JMeter 在响应断言中使用 span 标签的问题
- html - 在 :hover and :active? 上具有不同效果的 CSS 动画
- html - 相对于居中的 html 内容固定的 CSS 重复背景?
我们在sklearn.cluster.KMeans
上建立模型有两种方法。第一个是 fit()
,另一个是 fit_predict()
。我的理解是,当我们在 KMeans
模型上使用 fit()
方法时,它给出了一个属性 labels_
,它基本上保存了观察所属的信息到哪个集群。 fit_predict()
也有 labels_
属性。
所以我的问题是,
fit()
满足需求,那么为什么要使用 fit_predict()
?fit()
和 fit_predict()
在编写代码时是否可以互换?最佳答案
KMeans
只是 sklearn
拥有的众多模型之一,许多模型共享相同的 API。基本功能是 fit
,它使用示例教授模型,以及 predict
,它使用通过 fit
获得的知识来回答关于潜在新问题的问题值(value)观。
KMeans
将在训练期间自动预测所有输入数据的聚类,因为这样做是算法不可或缺的一部分。它保留它们以提高效率,因为预测原始数据集的标签非常普遍。因此,fit_predict
添加的很少:它调用 fit
,然后返回 .labels_
。 fit_predict
只是调用fit
的便捷方法,然后返回训练数据集的标签。 (fit_predict
没有 labels_
属性,它只是为您提供标签。)
但是,如果您想在一组数据上训练您的模型,然后使用它来快速(并且不更改已建立的集群边界)获得原始数据中不存在的数据点的答案,您需要使用 predict
,而不是 fit_predict
。
在其他模型中(例如 sklearn.neural_network.MLPClassifier
),训练可能是一项非常昂贵的操作,因此您可能不希望每次想要预测某些内容时都重新训练模型;此外,预测结果不一定是作为预测的一部分生成的。或者,正如上面所讨论的,您只是不想更改模型以响应新数据。在这些情况下,您无法从 fit
的结果中获得预测:您需要使用要获得预测的数据调用 predict
。
另请注意,labels_
标有下划线,这是 Python 约定的“请勿触摸它,它是私有(private)的”(在没有实际访问控制的情况下)。只要有可能,您应该改用已建立的 API。
关于python - sklearn KMeans 中的 fit() 与 fit_predict() 方法,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/66793419/
我正在尝试使用三种不同的聚类算法执行一些聚类分析。我按如下方式从 stdin 加载数据 import sklearn.cluster as cluster X = [] for line in sys
我正在尝试使用 kmeans 对我的词向量进行聚类,如所述 here .我正在使用的代码片段 # Set "k" (num_clusters) to be 1/5th of the vocabular
我们在sklearn.cluster.KMeans上建立模型有两种方法。第一个是 fit(),另一个是 fit_predict()。我的理解是,当我们在 KMeans 模型上使用 fit() 方法时,
假设X 是一个典型形式的数组。给定代码。 from sklearn.cluster import MeanShift ms = MeanShift(bin_seeding=True,cluster_a
在 scikit-learn 中,一些聚类算法同时具有 predict(X) 和 fit_predict(X) 方法,例如 KMeans 和 >MeanShift,而其他人只有后者,例如Spectra
我是一名优秀的程序员,十分优秀!