假设我创建了一个模型,我的目标变量是0
、1
或2
。 似乎如果我使用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。是这样吗?我试图了解在同一模型上使用predict
和predict_proba
如何相互关联。
-
predict()
用于预测实际类(在您的情况下为0
、1
或2
之一)。 -
predict_proba()
用于预测类概率
从您共享的示例输出中,
predict()
将输出类0
,因为0
的类概率为 0.6。[0.6, 0.2, 0.2]
是predict_proba
的输出,简单地表示类0
、1
和2
的类概率分别为0.6
、0.2
和0.2
。
现在,正如文档在predict_proba
中提到的,生成的数组是根据您一直使用的标签进行排序的:
所有类的返回估计值按 类。
因此,在类标签[0, 1, 2]
的情况下,predict_proba
的相应输出将包含相应的概率。0.6
是实例被分类为0
的概率,0.2
是实例分别被分类为1
和2
的概率。
有关更全面的解释,请参阅文章 在 TDS 上的 scikit-learn 中的 predict() 和 predict_proba() 有什么区别。