人工智能-集成学习

1、 集成学习算法介绍

1.1 什么是集成学习

集成学习通过建立几个模型来解决单一预测问题。工作原理:生成多个分类器/模型,各自独立地学习和做出预测。这些预测再结合成组合预测,因此由于任何一个单分类的预测。
人工智能-集成学习_第1张图片

1.2 机器学习的两个核心任务

  1. 如何优化训练数据 —解决欠拟合问题
  2. 如何提示泛化性能 —解决过拟合问题

1.3集成学习中的boosting和bagging

只要单分类器的表现不太差,集成学习的结果总是要好于单分类器的
人工智能-集成学习_第2张图片

2、Bagging和随机森林

2.1 Bagging

采样-学习-集成
举例说明:
目的:将圆和方块分类
人工智能-集成学习_第3张图片
步骤:
1,采样不同数据集
人工智能-集成学习_第4张图片
2,训练分类器
人工智能-集成学习_第5张图片
3,平权投票,获取最终结果
对每个点,看平均状态是在左在右,这样划分
人工智能-集成学习_第6张图片
4,最终实现
人工智能-集成学习_第7张图片

2.2 随机森林

随机森林是一个包含多个决策树的分类器,并且其输出的类别是由于个别树输出类别的众数而定的。
随机森林 = Bagging + 决策树
人工智能-集成学习_第8张图片
步骤:
1,一次随机选出一个样本,有放回的抽样,,重复N次(有可能重复样本)
2,随机选择m个特征,m< 问题:
1,为什么要随机抽样训练集?
如果不进行随机抽样,每棵树的训练集都一样,那么最终训练出的树分类结果也是完全一样的
2,为什么要有放回的抽样?
如果不是有放回的抽样,每棵树的训练样本都是不同的,没有交集,这样每棵树都是有偏的,都是绝对片面的,即每棵树训练出来都是有很大的差异的。

2.3 包外估计

随机森林的过程中,有放回的抽样,总有一部分样本我们选不到。
没有被选择到的数据,称之为out-of-bag(OOB)数据。当数据足够多,对任意一组数据(xn,yn)是包外数据的概率为1/e~36.8%

人工智能-集成学习_第9张图片
包外数据的用途:

  • 当基学习器是决策树时,可使用包外样本来剪枝,或用于估计决策树各结点的后验概率以辅助对训练样本点的处理
  • 当基学习器是神经网络时,可使用包外样本来辅助早期停止以减小过拟合

2.4 随机森林API

sklearn.ensemble.RandomForestClassifier(n_estimators=10,criterion='gini',max_depth=None,bootstrap=True,random_state=None,min_samples_split=2)

人工智能-集成学习_第10张图片
人工智能-集成学习_第11张图片

2.5 随机森林预测案例

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的优点:

  • 均可在原有算法上提高约2%的泛化正确率
  • 简单、方便、通用
    p0792

你可能感兴趣的:(人工智能,人工智能,集成学习,决策树)