赞
踩
集成学习通过建立几个模型来解决单一预测问题。工作原理:生成多个分类器/模型,各自独立地学习和做出预测。这些预测再结合成组合预测,因此由于任何一个单分类的预测。
只要单分类器的表现不太差,集成学习的结果总是要好于单分类器的
采样-学习-集成
举例说明:
目的:将圆和方块分类
步骤:
1,采样不同数据集
2,训练分类器
3,平权投票,获取最终结果
对每个点,看平均状态是在左在右,这样划分
4,最终实现
随机森林是一个包含多个决策树的分类器,并且其输出的类别是由于个别树输出类别的众数而定的。
随机森林 = Bagging + 决策树
步骤:
1,一次随机选出一个样本,有放回的抽样,,重复N次(有可能重复样本)
2,随机选择m个特征,m<<M(全部特征),建立决策树
问题:
1,为什么要随机抽样训练集?
如果不进行随机抽样,每棵树的训练集都一样,那么最终训练出的树分类结果也是完全一样的
2,为什么要有放回的抽样?
如果不是有放回的抽样,每棵树的训练样本都是不同的,没有交集,这样每棵树都是有偏的,都是绝对片面的,即每棵树训练出来都是有很大的差异的。
随机森林的过程中,有放回的抽样,总有一部分样本我们选不到。
没有被选择到的数据,称之为out-of-bag(OOB)数据。当数据足够多,对任意一组数据(xn,yn)是包外数据的概率为1/e~36.8%
包外数据的用途:
sklearn.ensemble.RandomForestClassifier(n_estimators=10,criterion='gini',max_depth=None,bootstrap=True,random_state=None,min_samples_split=2)
from sklearn.ensemble import RandomForestClassifier
rf = RandomForestClassifier()
#通过超参数调优
from sklearn.model_selection import GridSearchCV
param = {"n_estimators":[100,120,300],"max_depth":[3,7,11]}
gc = GridSearchCV(rf,param_grid = param,cv=3)
gc.fit(x_train,y_train)
print('随机森林预测结果是:\n',gc.score(x_test,y_test))
Bagging +决策树/线性回归/深度学习。。=bagging集成学习方法
Bagging的优点:
Copyright © 2003-2013 www.wpsshop.cn 版权所有,并保留所有权利。