scikit-learn 中预测与 predict_proba 之间的区别
Difference between predict vs predict_proba in scikit-learn
假设我创建了一个模型,我的目标变量是 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()
用于预测 实际 class (在你的情况下 0
、1
或 2
).
predict_proba()
用于预测class概率
根据您分享的示例输出,
predict()
会输出 class 0
因为 0
的 class 概率是 0.6.
[0.6, 0.2, 0.2]
是 predict_proba
的输出,它简单地表示 class 的概率 class 是 0
、1
和2
分别是0.6
、0.2
和0.2
。
现在,正如文档中提到的 predict_proba
,生成的数组是根据您一直使用的标签排序的:
The returned estimates for all classes are ordered by the label of
classes.
因此,在您的 class 标签为 [0, 1, 2]
的情况下,predict_proba
的相应输出将包含相应的概率。 0.6
是实例被class化为0
的概率,0.2
是实例被分类为1
和[=13=的概率]分别。
更全面的解释,请参考TDS上的文章What is the difference between predict() and predict_proba() in scikit-learn。
假设我创建了一个模型,我的目标变量是 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()
用于预测 实际 class (在你的情况下0
、1
或2
).predict_proba()
用于预测class概率
根据您分享的示例输出,
predict()
会输出 class0
因为0
的 class 概率是 0.6.[0.6, 0.2, 0.2]
是predict_proba
的输出,它简单地表示 class 的概率 class 是0
、1
和2
分别是0.6
、0.2
和0.2
。
现在,正如文档中提到的 predict_proba
,生成的数组是根据您一直使用的标签排序的:
The returned estimates for all classes are ordered by the label of classes.
因此,在您的 class 标签为 [0, 1, 2]
的情况下,predict_proba
的相应输出将包含相应的概率。 0.6
是实例被class化为0
的概率,0.2
是实例被分类为1
和[=13=的概率]分别。
更全面的解释,请参考TDS上的文章What is the difference between predict() and predict_proba() in scikit-learn。