先从N个样本中随机抽N个(有放回),形成一个新的,然后在在里面取m个特征(有降维的效果),从而每个树都不一样,进行降维决策树,从而来求出正确率最高的树,即正确的逻辑在所有树种脱颖而出
3.6 集成学习方法之随机森林
3.6.1 什么是集成学习方法
3.6.2 什么是随机森林
随机
森林:包含多个决策树的分类器
3.6.3 随机森林原理过程
训练集:
N个样本
特征值 目标值
M个特征
随机
两个随机
训练集随机 - N个样本中随机有放回的抽样N个
bootstrap 随机有放回抽样
[1, 2, 3, 4, 5]
新的树的训练集
[2, 2, 3, 1, 5]
特征随机 - 从M个特征中随机抽取m个特征
M >> m
降维
第一个参数为交叉验证的参数
其中max_feature 便是求m若设置auto和sqrt,则是对M求平方根
代码实现:
网格搜索加随机森林可以达到在指定树数量和深度后,选出最优的解!
再次注意网格搜索相当于是进行筛选最优超参数的作用
结果:
y_predict:
[0 0 0 0 1 1 1 0 0 1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 1 0 0 0 1 1 0 1 0 1 0 0 0
0 0 0 0 0 0 0 0 0 1 1 0 1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 1 0 0 1 0 0 0
0 1 0 0 0 1 0 1 0 0 0 0 0 0 0 0 0 0 0 1 0 1 0 1 0 1 0 0 0 0 0 0 0 0 0 0 1
0 1 0 0 0 0 0 0 0 0 0 1 0 0 1 1 0 1 0 0 0 0 0 0 0 0 0 0 0 1 1 0 0 0 0 1 1
1 0 0 0 0 0 0 0 0 0 0 0 0 0 1 1 0 1 0 0 0 0 1 0 0 0 0 0 1 1 1 1 0 0 0 0 0
0 0 0 1 1 1 0 0 0 0 1 1 1 0 0 0 0 0 0 0 0 0 1 0 0 0 0 0 1 1 0 0 0 0 0 1 0
0 0 1 0 0 0 0 0 0 1 0 0 0 0 1 0 1 0 0 0 1 0 0 1 0 0 0 0 1 0 1 0 0 0 0 1 0
0 1 1 1 0 0 1 1 1 0 1 0 0 0 0 0 0 0 1 0 0 0 0 0 0 0 0 0 0 0 1 0 0 0 0 1 1
0 0 0 1 0 0 0 0 0 0 0 0 0 0 0 0 0 1 0 0 0 0 0 0 1 1 0 1 0 0 0 0 1]
直接比对真实值和预测值:
831 True
261 True
1210 True
1155 True
255 True
762 True
615 True
507 True
1175 True
301 True
1134 True
177 True
183 False
125 False
1093 True
1304 False
1124 True
798 False
1101 True
1239 False
1153 True
1068 False
846 True
148 True
478 True
642 True
1298 True
540 True
28 True
130 True
...
194 True
663 True
1209 True
117 False