Logistic回归代码中predict_proba(X_test)[:,1]的[:,1]有何作用?
predict_proba(X_test)[:,1] 作用说明 你当前实现多分类逻辑回归用的是**一对多(OvR)**的常规思路:每遍历到一个类别origin,就单独训练一个二分类模型,这个模型只做二选一判断:样本属于当前origin类,或者不属于当前类。
首先明确二分类场景下predict_proba()的返回结构:
- 方法返回值是形状为
(测试样本数, 2)的二维numpy数组 - 索引为0的列:存储每个样本被判定为**负类(不属于当前origin类)**的概率
- 索引为1的列:存储每个样本被判定为**正类(属于当前origin类)**的概率
[:,1]是numpy数组的标准切片语法,没有特殊逻辑:
- 第一个维度对应样本行,位置写
:表示选中所有行,也就是覆盖全部测试样本 - 第二个维度对应概率列,位置写
1表示只选取索引为1的列 - 整段切片的作用就是提取所有测试样本属于当前遍历到的
origin类别的预测概率,和代码注释标注的计算目标完全匹配。
你看到的提示里提到的testing_probs[1],这里的1不是数组的列索引,是存储结果用的字典键:你在循环里是以类别值为键,把对应类别的预测概率存进testing_probs字典的,所以testing_probs[1]取到的,就是专门识别origin=1类别的二分类模型输出的全量样本预测概率结果。
对应代码片段:
for origin in unique_origins: # Select testing features. X_test = test[features] # Compute probability of observation being in the origin. testing_probs[origin] = models[origin].predict_proba(X_test)[:,1]
内容的提问来源于stack exchange,提问作者Python_lover
相关产品推荐
相关产品推荐

