集成学习:通过构建并结合多个学习器来完成学习任务;

随机深林 属性权重 随机森林确定权重_机器学习

集成学习中主要包括boosting算法和bagging算法;

★boosting算法:(线性集成)关注于降低偏差;

  • 从初始训练集训练一个基学习器
  • 根据①训练效果,对于训练集中的每个样本建立权值wi,表示对每个样本的关注度。当某个样本被误分类的概率很高时,需要加大对该样本的权值。
  • 调整样本分布后,训练下一次的基学习器;
  • 进行迭代后,直至基学习器数量达到指定值T,后采用某种策略将其组合,作为最终模型。(每一步迭代都是一个弱分类器)

代表算法:AdaBoost算法:AdaBoost给每个弱分类器一个权值,将其线性组合最为最终分类器。误差越小的弱分类器,权值越大。

随机深林 属性权重 随机森林确定权重_随机森林_02

★bagging算法:(并行式集成)关注于降低方差

①从原始样本集中使用Bootstraping方法(有放回)随机抽取n个训练样本,共进行k轮抽取,得到k个训练集。(k个训练集之间相互独立,元素可以有重复)

②对于k个训练集,我们训练k个模型(这k个模型可以根据具体问题而定,比如决策树,knn等)

③将模型集合,对于分类问题:由投票表决产生分类结果;对于回归问题:由k个模型预测结果的均值作为最后预测结果。(所有模型的重要性相同)

随机深林 属性权重 随机森林确定权重_机器学习_03

★bagging算法和boosting算法间区别:

  1. 样本选择:Bagging采用的是Bootstrap随机有放回抽样;而Boosting每一轮的训练集是不变的,改变的只是每一个样本的权重。
  2. 样本权重:Bagging使用的是均匀取样,每个样本权重相等;Boosting根据错误率调整样本权重,错误率越大的样本权重越大。
  3. 预测函数:Bagging所有的预测函数的权重相等;Boosting中误差越小的预测函数其权重越大。
  4. 并行计算:Bagging各个预测函数可以并行生成;Boosting各个预测函数必须按顺序迭代生成。

将决策树与这些算法框架进行结合所得到的新的算法:

1)Bagging + 决策树 = 随机森林

2)AdaBoost + 决策树 = 提升树

3)Gradient Boosting + 决策树 = GBDT

◆随机森林(Random Forest):Bagging算法的一种扩展变体;

  • 随机森林包括:“随机”和“森林”两部分;

其中“随机”包括两部分,即训练数据随机和训练特征随机;

  1. 在Bagging算法中,采用有放回的随机抽样,决定了训练数据随机;
  2. 而在随机森林算法中引入了随机特征选择,即在特征集合随机选择特征子集,在子集中选择最优特征用于结点划分,决定了训练特征随机;

其中“森林”即是基于决策树算法的集成。

注:在随机森林算法中,其不仅通过对多棵树进行集成以提高分类效果,同时通过迭代使得森林中的树变得不断优秀(森林中的树使用更好的特征进行分枝);

随机森林算法过程:

  1. 从原始训练集随机有放回采样选出k个样本,生成k个训练集;
  2. 对于k个训练集,分别训练k个决策树模型
  3. 针对每个决策树随机选择特征个数,进行训练(决策树结点分裂过程中不需要剪枝);
  4. 将生成的多棵决策树组成随机森林。

随机深林 属性权重 随机森林确定权重_决策树_04

特征重要程度计算

随机深林 属性权重 随机森林确定权重_决策树_05

Sklearn 框架实现:

随机深林 属性权重 随机森林确定权重_决策树_06

 

随机深林 属性权重 随机森林确定权重_python_07