问题描述:
在利用网格搜索对随机森林进行参数调优时,出现错误:
UserWarning: Some inputs do not have OOB scores. This probably means too few trees were used to compute any reliable oob estimates. warn("Some inputs do not have OOB scores. "
随机森林函数定义如下:
RF = RandomForestClassifier(n_jobs=-1,oob_score=True)
GridSearchCV函数定义如下:
gssearch = GridSearchCV(RF, param_grid=param_test1, cv=5)
解决思路:
ob_score:袋外估计(out-of-bag),这个是针对bagging而言的,其本身采取的随机抽样的方式建立起树的模型,那么那些未被抽取到的样本集,也就是未参与建立树模型的数据集就是袋外数据集,我们就可以用这部分数据集去验证模型效果。
而上述验证模型和交叉验证略有相同地方,所以这里代码出错可能是数据验证方式产生冲突
解决办法:
修改随机森林函数定义:
RF = RandomForestClassifier(n_jobs=-1)