gpt4 book ai didi

python - sklearn KMeans 中的 fit() 与 fit_predict() 方法

转载 作者:行者123 更新时间:2023-12-05 01:30:48 27 4
gpt4 key购买 nike

我们在sklearn.cluster.KMeans上建立模型有两种方法。第一个是 fit(),另一个是 fit_predict()。我的理解是,当我们在 KMeans 模型上使用 fit() 方法时,它给出了一个属性 labels_ ,它基本上保存了观察所属的信息到哪个集群。 fit_predict() 也有 labels_ 属性。

所以我的问题是,

  1. 如果 fit() 满足需求,那么为什么要使用 fit_predict()
  2. 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/

27 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com