决策树与元算法

记决策树及元算法

决策树很长一段时间没搞懂树的形成原理,在博客上记录一下方便自己查看,欢迎各位大佬指正。
1.除了数据集和类别之外,最好在建立一个列表用来存放所有的特征,每当一个特征被用作子节点划分类别之后就删除掉这个特征
2.第一步我们要计算数据集的原始熵,这个熵和特征无关,我们利用分类的每个类别的样本数和总样本数计算原始熵,这里只记录原理公式请自行百度。
3.接下来我们划分数据集得到每个特征分类的样本数来求信息熵。如头发特征的长发,短发及对应的分类的样本数。
例如:
首先计算未分类前的熵,总共有8位同学,男生3位,女生5位。
熵(总)=-3/8log2(3/8)-5/8log2(5/8)=0.9544
同学A首先按头发分类,分类后的结果为:长头发中有1男3女。短头发中有2男2女。
熵(同学A长发)=-1/4log2(1/4)-3/4log2(3/4)=0.8113
熵(同学A短发)=-2/4log2(2/4)-2/4log2(2/4)=1
熵(同学A)=4/80.8113+4/81=0.9057
信息增益(同学A)=熵(总)-熵(同学A)=0.9544-0.9057=0.0487
这样我们计算出信息增益,比较大小信息增益最大的特征就是最优分类特征
4.如果特征子节点分类后的类别是同一类(即该类别样本数等于通过该节点的全部样本数,则输出类别),若最后一个特征也分类完成,(即数据集的样本长度为1,只剩下了类别这一项)计算剩下样本中的类别个数,最多的类别就是分类的类别,并输出。
不符合以上两种情况的,则是普通的子节点,通过递归继续3,4的步骤。

元算法

元算法就是对其他算法进行组合的一种方式。也称为集成算法(ensemble method),例如bagging方法和boosting方法。它可以是不同算法的集成;也可以是同一算法在不同设置下的集成;还可以是数据集不同部分分配给不同分类
器之后的集成。
Adaboost有很多优点:
1)adaboost是一种有很高精度的分类器
2)可以使用各种方法构建子分类器,adaboost算法提供的是框架
3)当使用简单分类器时,计算出的结果是可以理解的,而且弱分类器构造极其简单
4)简单,不用做特征筛选
由于adaboost算法是一种实现简单、应用也很简单的算法,应该说是一种很适合于在各种分类场景下应用的算法。adaboost算法的一些实际可以使用的场景:
应用:
用于二分类或多分类的应用场景
用于做分类任务的baseline–无脑化,简单,不会overfitting,不用调分类器
用于特征选择(feature selection)
Boosting框架用于对badcase的修正–只需要增加新的分类器,不需要变动原有分类器
元算法实现过程后续补。

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值