机器学习——决策树与随机森林

版权声明:本文为博主原创文章,遵循 CC 4.0 BY-SA 版权协议,转载请附上原文出处链接和本声明。
本文链接: https://blog.csdn.net/weixin_43972621/article/details/88929971

一、决策树

1.决策树的结构

      决策树为树形结构,主要组成部分为非叶子节点(代表一个属性测试)、分支(代表测试输出)、叶子节点(代表一种类别)。

2.基本思想

      以信息熵为度量构造一颗熵值下降最快的树,到叶子节点的熵值为0(感觉类似于哈夫曼,贪心法)。根节点处熵值最大,熵值为0,表示不确定性为0。

3.决策树学习的算法

      决策树学习的算法的最大优点可以自学习,只需对训练数据进行标注(如:给定决策树的表格X1,X2……Xn,Y),属于有监督学习,从一类无序、无规则的事物中推理出决策树表示的分类规则。

      决策树学习的生成算法,关键是当前状态下选择哪个属性作为分类依据,根据不同的目标函数建立决策树的算法分为三种:ID3算法、C4.5算法、CART算法。

二、信息增益

      当熵和条件熵中的概率由数据统计得到时,所对应的熵和条件熵分别为经验熵和经验条件熵。

      信息增益:表示得知特征A的信息,使得类X的信息不确定性减少的程度。

      定义:特征A对训练数据集的信息增益为g(D,A),定义为集合D的经验熵与特征A给定条件下的D的经验条件熵H(D|A)之差。g(D,A)=H(D)-H(D|A)(即数据集D和特征A的互信息)。

扫描二维码关注公众号,回复: 7620778 查看本文章
熵——Venn图

1.基本记号

      设训练数据集为D,|D|表示其容量,即样本个数。设有K个类Ck ,k=1,2,…,K,|Ck |为属于类Ck 的样本个数(如:分为两类,出去玩|不出去玩,Σk |Ck |=|D|)。设特征A有n个不同的取值{a1 ,a2 …an },根据特征A的取值将D划分为n个子集D1 ,D2 ,…Dn ,|Di |为Di的样本个数(特征“天气”有三种不同的取值“下雨”、“阴天”、“晴天”,Σi |Di |=D)。记子集Di 中属于类Ck的样本的集合为Dik ,|Dik |为Dik 的样本个数(下雨天出去玩的个数|下雨天不出去玩的个数) 。

2.信息增益的计算方法

  • 计算数据集D的经验熵:

  • 计算特征A对数据集D的经验条件熵H(D|A)。

  • 计算信息增益:g(D,A)=H(D) – H(D|A)。

3.其他计算标准

  • 信息增益率:gr(D,A) = g(D,A) / H(A)——C4.5算法用此标准
  • 基尼指数:——CART算法用此标准

4.三种决策树生成算法的比较

      ID3算法:对于取值更多的属性,更容易使得数据更“纯” ,其信息增益更大,决策树会首先挑选这个属性作为树的顶点。结果训练出来的形状是一棵庞大且深度很浅的树,这样的划分是极为不合理的。

      C4.5算法:对ID3进行了改进,可以降低上述的不合理性。

      CART算法:是C4.5算法的一个相似过程。

5.决策树的过拟合

      决策树对训练数据(样本)有很好的分类能力,但对未知的测试数据未必有好的分类能力,泛化能力弱,即可能发生过拟合现象。解决方法:剪枝法、随机森林。

决策树(过拟合)

三、随机森林

1.Bagging策略

  • 从样本集中重采样(有重复的)选出n个样本
  • 在所有属性上,对这n个样本建立分类器(ID3、C4.5、CART、SVM、Logistic回归等)
  • 重复以上两步m次,即获得了m个分类器
  • 将数据放在这m个分类器上,最后根据这m个分类器的投票结果,决定数据属于哪一类
决策树(Bagging策略生成)


2.随机森林

随机森林在bagging基础上做了修改。

3.随机森林/Bagging和决策树的关系

      可以使用决策树作为基本分类器,但也可以使用SVM、Logistic回归等其他分类器,习惯上,这些分类器组成的“总分类
器”,仍然叫做随机森林。

  • 从样本集中用Bootstrap采样选出n个样本;
  • 从所有属性中随机选择k个属性,选择最佳分割属性作为节点建立CART决策树;
  • 重复以上两步m次,即建立了m棵CART决策树;
  •  这m个CART形成随机森林,通过投票表决结果,决定数据属于哪一类。

四、应用

1.将随机森林方法运用于用户个性化推荐领域。对于用户行为数据抽取特征和预测目标进行建模,预测其对某事物感兴趣,从而进行推荐。

  • 通过Haar特征提取等对用户数据分别处理,得到M个特征;N种行为数据形成N*M的矩阵;
  • 随机选择若干特征和样本,得到a*b的小矩阵,建立决策树;
  • 重复K次得到随机森林。
  •  投票方法选择少数服从多数。

2. Kinect

猜你喜欢

转载自blog.csdn.net/weixin_43972621/article/details/88929971
今日推荐