python - 如何在sklearn中获得随机森林中的决策函数

标签 python machine-learning scikit-learn random-forest grid-search

我使用以下代码通过 gridsearchcv 获取 randomforest 的优化参数。

x_train, x_test, y_train, y_test = train_test_split(X, y, random_state=0)
rfc = RandomForestClassifier(random_state=42, class_weight = 'balanced')
param_grid = { 
    'n_estimators': [200, 500],
    'max_features': ['auto', 'sqrt', 'log2'],
    'max_depth' : [4,5,6,7,8],
    'criterion' :['gini', 'entropy']
}
k_fold = StratifiedKFold(n_splits=10, shuffle=True, random_state=0)
CV_rfc = GridSearchCV(estimator=rfc, param_grid=param_grid, cv= 10, scoring = 'roc_auc')
CV_rfc.fit(x_train, y_train)
print(CV_rfc.best_params_)
print(CV_rfc.best_score_)

现在,我想将调整后的参数应用到 X_test。为此,我做了以下事情,

pred = CV_rfc.decision_function(x_test)
print(roc_auc_score(y_test, pred))

但是,decision_function 似乎不支持 randomforest,因为我收到以下错误。

AttributeError: 'RandomForestClassifier' object has no attribute 'decision_function'.

还有其他方法吗?

如果需要,我很乐意提供更多详细信息。

最佳答案

如果您打算获得一个模型评分函数,以便评分可用于 auc_roc_score,那么您可以选择 predict_proba()

y_pred_proba = CV_rfc.predict_proba(x_test)
print(roc_auc_score(y_test, y_pred_proba[:,1]))

关于python - 如何在sklearn中获得随机森林中的决策函数,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/55605681/

相关文章:

python - 将字符串拆分为空白列表,当下一个字符不是破折号时不包括单个空格

python - 如何确定 CherryPy 是否正在缓存响应?

python - 在Python中以两点之间的角度绘制椭圆

rest - 部署带有依赖项的 REST API

python - 如何在 Google ML Engine 上部署使用自定义包训练的模型?

python - 如何将 sklearn 管道转换为 pyspark 管道?

python - Orange PCA 和 scikit-learn PCA 的结果不同

Python - 重新启动 for 循环的方法,类似于 "continue"for while 循环?

machine-learning - 二元交叉熵惩罚 one-hot 向量的所有分量

concurrency - 如何使用 Flask 和 Gunicorn 获得 1000 个请求的并发