我有2个不平衡类,5万个样本,阳性在集合中出现%5。数据是二维的
问题是,我使用ExtraTreesClassifier。oob_score_看起来不错,但是当我用交叉验证检查f1分数时。cross_val_score,我得到的值很低。我完全糊涂了,我的分类器是好还是垃圾。
from sklearn.ensemble import ExtraTreesClassifier
trees = ExtraTreesClassifier(bootstrap=true, oob_score=True,n_estimators=100,class_weight="auto")
for i in range(1, 101):
trees.set_params(n_estimators=i)
trees.fit(x,y)
print trees.oob_score_
它打印0.9199550.9193530.919353…增加。
当我做
from sklearn import cross_validation as cval
cv = cval.StratifiedKFold(y, 2)
cval.cross_val_score(trees, x, y, scoring="f1", cv=cv)
结果array([0.01604747, 0.01250169])
谁能开导我一下?出袋评分指标是准确性。考虑到数据的不平衡,结果是正常的。
有一个暂停的pull请求允许选择评分指标https://github.com/scikit-learn/scikit-learn/pull/3723
现在,您仍然可以使用oob_decision_score_属性计算oob f1-score。