我一直在用sklearn随机分类器做一些实验。我正在多批上训练多个树,并使用以下方法合并它们:
def combine_rfs(rfList):
rf1 = rfList[0]
for i in range(1,len(rfList)):
rf1.estimators_ += rfList[i].estimators_
rf1.n_estimators = len(rf1.estimators_)
return rf1
我注意到,如果我在类别A和类别B中给出相同数量的样本,最终树的分类倾向于40-60%的类别A和40-60%的类别B,尽管我预计它在A中更多,在B中更少
基本上我看到的是,A/B中的样本比例将决定这些类别的分类比例,而不管这些类别在测试数据中的实际比例是多少。你知道吗
如何减轻这种影响?你知道吗
您可以研究stratified cross-validation,这种方法可以确保测试和验证数据集中的相对类频率相同。你知道吗
如果你的训练集相对地包含了大量的类别B,那么你的分类器将会预测更多的实例。分层交叉验证通过使三个集合(训练、测试、验证)更相似,克服了这个问题。你知道吗
相关问题 更多 >
编程相关推荐