scikit-learn 中 predict 与 predict_proba 的区别

Fab*_*ana 6 python classification machine-learning prediction scikit-learn

假设我创建了一个模型,我的目标变量是0,12。似乎如果我使用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]
Run Code Online (Sandbox Code Playgroud)

假设我同时使用 predict 和predict_proba. 如果在索引 3 中,我得到了上面的结果predict_proba,在 predict 结果的索引 3 中,我应该看到 0。是这种情况吗?我试图了解如何在同一模型上使用predict和使用两者predict_proba相互关联。

Gio*_*ous 25

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

从您共享的示例输出中,

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

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

所有类别的返回估计值按类别标签排序。

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


如需更全面的解释,请参阅TDS 上scikit-learn 中的 Predict() 和 Predict_proba() 之间的区别是什么

  • @Giorgos,请注意我的问题是关于这两者的确切索引之间的关系。另外,我想知道您的答案是否有拼写错误,有两个作为 Predict() 的输出 (4认同)