相关疑难解决方法(0)

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

在随机森林中,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)))
Run Code Online (Sandbox Code Playgroud)

使用 Predict_proba roc-auc …

machine-learning python-3.x random-forest scikit-learn

3
推荐指数
1
解决办法
5547
查看次数