gpt4 book ai didi

python-3.x - 在随机森林中使用predict()与predict_proba()计算时ROC_AUC_SCORE是不同的

转载 作者:行者123 更新时间:2023-11-30 09:31:24 26 4
gpt4 key购买 nike

predict() 和 Predict_proba() 在随机森林中给出不同的 roc_auc_score。

据我所知,predict_proba() 给出了概率,例如在二元分类的情况下,它将给出对应于两个类的两个概率。Predict() 给出了它预测的类。

    #Using predict_proba()
rf = RandomForestClassifier(n_estimators=200, random_state=39)
rf.fit(X_train[['Cabin_mapped', 'Sex']], y_train)

#make predictions on train and test set
pred_train = rf.predict_proba(X_train[['Cabin_mapped', 'Sex']])
pred_test = rf.predict_proba(X_test[['Cabin_mapped', 'Sex']].fillna(0))

print('Train set')
print('Random Forests using predict roc-auc: {}'.format(roc_auc_score (y_train, pred_train)))

print('Test set')
print('Random Forests using predict roc-auc: {}'.format(roc_auc_score(y_test, pred_test)))

#using predict()

pred_train = rf.predict(X_train[['Cabin_reduced', 'Sex']])
pred_test = rf.predict(X_test[['Cabin_reduced', 'Sex']])

print('Train set')
print('Random Forests using predict roc-auc: {}'.format(roc_auc_score(y_train, pred_train)))
print('Test set')
print('Random Forests using predict roc-auc: {}'.format(roc_auc_score(y_test, pred_test)))

使用predict_proba roc-auc训练随机森林集:0.8199550985878832

使用 preditc_proba roc-auc 测试集随机森林:0.8332142857142857

使用预测 roc-auc 训练随机森林集:0.7779440793041364

使用预测 roc-auc 测试集随机森林:0.7686904761904761

最佳答案

正如您所说,predict 函数将预测返回为 True/False 值,而 proba 函数返回概率,值介于 1 和 0 之间这就是差异的原因。

AUC 表示“曲线下面积”,如果曲线是 0/1 阶跃函数或由连续值组成的曲线,则 AUC 确实有所不同。

假设您只有一个示例,它应该被分类为False。如果您的分类器产生的概率为 0.7,则 ROC-AUC 值为 1.0-0.7=0.3。如果您使用predict,预测将为True = 1.0,因此 ROC-AUC 将为 1.0-1.0=0.0。

关于python-3.x - 在随机森林中使用predict()与predict_proba()计算时ROC_AUC_SCORE是不同的,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/56397128/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com