我使用sklearn软件包构建了RandomForest(RF)。
我的问题是我已经用不同特征组的相同样本训练了RF。
例如,有10,000个样本,我从不同的实验室接收到数据。
FR1经过Lab1的数据训练 FR2经过Lab2的数据训练 ... FR5已使用Lab5的数据进行了训练
每个实验室的功能数量为4,000,因此每个实验室的数据大小为10,000 x 4000
我希望不合并所有数据,而是训练RF,并由多数表决做出最终决定。 多数投票不仅基于实验室,还考虑了各个实验室的所有投票。
例如,所有模型都产生了100棵树,那么我想从100 *(5个实验室)= 500棵树中做出最终决定。不仅是实验室的多数票,而且是各个实验室生产的所有树木的多数票。
您能帮我解决这个问题吗?
谢谢。
答案 0 :(得分:0)
RF通过使用所有树的预测平均值来进行预测。因此,您可以
estimators_
(这是DecisionTrees;在您的示例中为5 * 100),从每个森林中进行预测,然后平均概率/输出。但是我相信这种方法非常等于平均所有RF的输出:
outputs from forest 1: 0.5, 1, 1.5; average: 1
outputs from forest 2: 1, 1.25, 1.5; average: 1.25
average of forests: (1 + 1.25) / 2 = 1.125
average of trees: (0.5 + 1 + 1.5 + 1 + 1.25 + 1.5) / 6 = 6.75 / 6 = 1.125
或更佳的解决方案:在顶部放一些简单模型(LinearRegression / LogisticRegression),该模型获取每个RF的输出并预测最终值。在某些Kaggle比赛中表现出色。简单的模型将帮助您避免过度拟合。