我使用sklearn创建了一个分类模型。当我调用函数y_pred2 = clf.predict (features2)
时,它返回了我预测的所有id的列表
y_pred2 = clf.predict(features2)
打印数组
array([**5**, 5, 5, 1, 6, 1, 6, 1, 1, 1])
在这里,我可以毫无问题地将其添加到我的数据框中df ['prediction'] = y_pred2
但我也想记录我的多类别概率的最佳值
y_pred2 = clf.predict_proba(features2)[0]array([0.02670249, 0.23888486, 0.00940765, 0.15213608, 0.02719888, **0.42038983**, 0.07503347, 0.02960037, 0.02064636])
但我也想根据最佳值记录我的多类别的概率,然而predict_proba
函数返回的是我所有类别的数组,我该如何记录我的预测分数的值呢?
例如,根据我的预测,我的最佳类别和第一位置是5,其概率值为0.42038983。C
我如何从数组中提取最佳值并写入我的数据框?
回答:
所以,如果我们将结果视为普通列表,我们可以尝试如下操作
y_pred2 = clf.predict_proba(features2)[0]someclass = y_pred2.index(max(y_pred2)) # 返回类别索引 *最大预测值itsprob = max(y_pred2) # 返回概率 *最大预测值
然后你可以将类别和概率变量添加到数据框中,或者以你喜欢的任何方式处理。我无法重现你的整个场景,因为我不知道你的所有代码