本文介绍了在随机林中使用Forecast()和Predict_Proba()进行计算时,ROC_AUC_Score不同的处理方法,对大家解决问题具有一定的参考价值,需要的朋友们下面随着小编来一起学习吧!
问题描述
在随机林中预测()和预测_Proba()产生不同的ROC_AUC_Score。
我知道Forecast_Proba()给出了概率,比如在二进制分类的情况下,它会给出两个对应于两个类别的概率。Forecate()给出它预测的类。
#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)))
使用PROJECT_PROBA ROC-AUC:0.8199550985878832的列车集随机森林
使用PRODITC_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。 这篇关于在随机林中使用Forecast()和Predict_Proba()进行计算时,ROC_AUC_Score不同的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持!