Sklearn多分类逻辑回归predict_proba输出列与类别映射关系咨询
多分类逻辑回归predict_proba输出列的类别映射逻辑
好问题!这绝对是刚上手多分类模型时容易踩的小坑,我来给你掰扯清楚:
首先,你猜的没错——对于你的类别[-1,0,1],predict_proba输出的[.25, .5, .25]确实是第0位对应-1、第1位对应0、第2位对应1。但背后的逻辑不是“猜”出来的,而是由模型的classes_属性决定的。
具体来说:
- 以常用的scikit-learn
LogisticRegression为例,模型在训练时会自动把训练数据中的所有类别按数值升序排序,然后把这个排序后的类别列表存入classes_属性里。不管你的训练数据里类别是按什么顺序出现的,最终classes_都是排序后的结果。 - 如果是字符串类别(比如
["red", "blue", "green"]),那classes_会按字典序排序,对应的predict_proba输出列也会遵循这个顺序。
最稳妥的验证方式,就是训练完模型后直接打印这个属性:
print(logreg.classes_) # 对于你的情况,输出会是 array([-1, 0, 1])
这样你就能100%确定每一列对应的类别,完全不用靠记忆或者猜测~
内容的提问来源于stack exchange,提问作者David Flasterstein
相关产品推荐
相关产品推荐

