我正在scikit learn中训练一个RandomForestClassifier关于二进制分类问题。我想最大限度地提高我对该模型的auc评分。我知道这在0.13稳定版本中是不可能的,但在0.14出血边缘版本中是可能的。
我试过了,但结果似乎更糟:
ic = RandomForestClassifier(n_estimators=100, compute_importances=True, criterion='entropy', score_func = auc_score);
这是作为模型的参数工作还是仅在gridsearchCV中工作?
如果我在gridsearchCV中使用它,它会使模型更好地适应auc_score
的数据吗?我还想尝试最大化recall_score
。
我很惊讶上面没有出现错误。在GridSearchCV中,只能将AUC用于模型选择。如果您在那里使用它(scoring='roc_auc'
iirc),这意味着将选择具有最佳auc的模型。这并没有使各个模型在这一分数方面变得更好。不过,它仍然值得一试。
我发现了一篇期刊文章,该文章讨论了具有随机林的高度不平衡类。尽管它的目标是在Hadoop集群上运行RDF,但同样的技术似乎也能很好地解决较小的问题:
del Río,S.,López,V.,Benítez,J.M.,&埃雷拉F.(2014)。关于使用随机森林对不平衡大数据使用MapReduce。信息科学,285112-137。
http://sci2s.ugr.es/rf_big_imb/pdf/rio14_INS.pdf