scikit-learn中预测与predict_proba之间的差异



假设我创建了一个模型,我的目标变量是012。 似乎如果我使用predict,答案要么是 0,要么是 1 或 2。但是如果我使用predict_proba,我会得到一行,每行有 3 列,如下所示,例如

model = ... Classifier       # It could be any classifier
m1 = model.predict(mytest)
m2= model.predict_proba(mytest)
# Now suppose  m1[3] = [0.6, 0.2, 0.2]

假设我同时使用预测和predict_proba。 如果在索引 3 中,我得到上述结果和predict_proba的结果,在预测结果的索引 3 中,我应该看到 0。是这样吗?我试图了解在同一模型上使用predictpredict_proba如何相互关联。

  • predict()用于预测实际类(在您的情况下为012之一)。
  • predict_proba()用于预测类概率

从您共享的示例输出中,

  • predict()将输出类0,因为0的类概率为 0.6。
  • [0.6, 0.2, 0.2]predict_proba的输出,简单地表示类012的类概率分别为0.60.20.2

现在,正如文档在predict_proba中提到的,生成的数组是根据您一直使用的标签进行排序的:

所有类的返回估计值按 类。

因此,在类标签[0, 1, 2]的情况下,predict_proba的相应输出将包含相应的概率。0.6是实例被分类为0的概率,0.2是实例分别被分类为12的概率。


有关更全面的解释,请参阅文章 在 TDS 上的 scikit-learn 中的 predict() 和 predict_proba() 有什么区别。

相关内容

  • 没有找到相关文章

最新更新