问题描述
我正在运行一个随机森林模型的留一法网格搜索。我使用 f1 分数来获得最佳估计量和分数。从这里开始,我如何获得精确率和召回率分数,以便我可以绘制精确率-召回率曲线? X 是样本数据集,y 是目标。
from sklearn.ensemble import RandomForestClassifier
from sklearn.model_selection import gridsearchcv
from sklearn.model_selection import LeaveOneOut
RF = RandomForestClassifier()
param_grid = {
'n_estimators': [10,20,30,50],'criterion': ['gini','entropy'],'max_depth': [10,None]}
grid_search = gridsearchcv(RF,param_grid=param_grid,cv = LeaveOneOut()
score='f1_score')
grid_search.fit(X,y)
解决方法
您可以从数组中收集模型的预测,并使用它来计算精确召回曲线(或您需要的任何其他性能指标)的数据:
$ curl -sX GET -H "Authorization: token ${mytoken}" https://my.company.url/api/v3/orgs/my_sub_org/repos?per_page=200| grep ssh_url | awk -F': ' '{print $2}'
强烈建议您拆分数据集并使用其中的大部分来训练模型,而留下一些数据仅用于测试性能。这样,就可以检查对未见数据进行概括的能力。