拟合模型时更改默认 RandomForestClassifier 的 "score" 函数?
Change default RandomForestClassifier's "score" function when fitting the model?
我使用 sklearn
中的 RandomForestClassifier
执行拟合操作:
clf.fit(X_train,y_train,sample_weight=weight)
我不知道如何更改评估指标,我认为这只是准确性。
我问这个是因为我看到使用 XGBOOST 包可以精确指定此指标。示例:
clf.fit(X_train, y_train, eval_metric="auc", eval_set=[(X_eval, y_eval)])
所以,我的问题是:我可以对 sklearn
中的 RandomForestClassifier
做同样的事情吗?我需要根据 AUC 指标来衡量我的表现。
好吧,到目前为止我所做的是将分类器包装到一个 GridSearchCV
中,我可以在其中指定评分方法。
所以:GS = grid_search.GridSearchCV(forest_clf, parameters, scoring='roc_auc',verbose=10)
适合我。
但如果可以从分类器本身执行,我愿意接受任何建议,或者如果这不是正确的方法,我愿意接受任何理论解释。
正如 Guiem Bosch 提到的,获得不同评分方法的最佳方式是通过 GridSearchCV。事实上 RandomForestClassifier
作为评分方法具有准确性。
但是,我不太确定你的问题到底是什么意思。您可以随时通过 运行 在测试集上导入不同的评分函数来检查分类器的其他评分方法,方法是从 sklearn.metrics
.
中导入分类器。
这里要小心:
使用 GridSearchCV
和 scoring=['roc_auc', 'recall']
等,对于您指定的每个评分指标,您将获得网格参数的最佳分类器。例如,根据您在 fitted
参数上指定的分类器,您将获得 'roc_auc' 分数或 'recall' 分数的最佳分类器(超参数集)。但是,如果您只有一组超参数并且您正在使用 GridSearchCV
来获得不同的评分方法,那么您可以使用来自 sklearn.metrics
.
的各个模块来更好地做到这一点
如果您的意思是希望根据不同的方法优化分类器,那么您应该检查 criterion
参数。
我认为您不能更改 RandomForestClassifier 的评分方法使用的指标。
但是这段代码应该给你 auc:
from sklearn.metrics import roc_auc_score
roc_auc_score(y_eval, clf.predict_proba(X_eval))
我使用 sklearn
中的 RandomForestClassifier
执行拟合操作:
clf.fit(X_train,y_train,sample_weight=weight)
我不知道如何更改评估指标,我认为这只是准确性。
我问这个是因为我看到使用 XGBOOST 包可以精确指定此指标。示例:
clf.fit(X_train, y_train, eval_metric="auc", eval_set=[(X_eval, y_eval)])
所以,我的问题是:我可以对 sklearn
中的 RandomForestClassifier
做同样的事情吗?我需要根据 AUC 指标来衡量我的表现。
好吧,到目前为止我所做的是将分类器包装到一个 GridSearchCV
中,我可以在其中指定评分方法。
所以:GS = grid_search.GridSearchCV(forest_clf, parameters, scoring='roc_auc',verbose=10)
适合我。
但如果可以从分类器本身执行,我愿意接受任何建议,或者如果这不是正确的方法,我愿意接受任何理论解释。
正如 Guiem Bosch 提到的,获得不同评分方法的最佳方式是通过 GridSearchCV。事实上 RandomForestClassifier
作为评分方法具有准确性。
但是,我不太确定你的问题到底是什么意思。您可以随时通过 运行 在测试集上导入不同的评分函数来检查分类器的其他评分方法,方法是从 sklearn.metrics
.
这里要小心:
使用
的各个模块来更好地做到这一点GridSearchCV
和scoring=['roc_auc', 'recall']
等,对于您指定的每个评分指标,您将获得网格参数的最佳分类器。例如,根据您在fitted
参数上指定的分类器,您将获得 'roc_auc' 分数或 'recall' 分数的最佳分类器(超参数集)。但是,如果您只有一组超参数并且您正在使用GridSearchCV
来获得不同的评分方法,那么您可以使用来自sklearn.metrics
.如果您的意思是希望根据不同的方法优化分类器,那么您应该检查
criterion
参数。
我认为您不能更改 RandomForestClassifier 的评分方法使用的指标。
但是这段代码应该给你 auc:
from sklearn.metrics import roc_auc_score
roc_auc_score(y_eval, clf.predict_proba(X_eval))