数据挖掘知识

免费体验
当前位置: 首页 > 知识库 > 数据挖掘知识 >

关于决策树和adaboost的一些想法

分享到:
时间:2013-10-14 22:09来源:谷歌推广seo网络知识 作者:谷歌优化怎么做
决策树算法据称有很多优点。其中最为人所称道的,就是决策树是一个白箱模型,可以直接从学习结果中观察规律,而且易于理解。如果是用于教学展示,决策树的树状结构确实是很适合理解,但是在真实的机器学习中,这个优点恐怕没有什么用。

       决策树(Decision Tree)是数据挖掘中的一种重要技术,利用树状结构来实现分类。决策树的实现方法主要有C4.5和CART算法,两者思想上没有太大差别,就是衡量“信息纯度”(purity)所使用的函数形式和树的结构有所不同。C4.5使用信息熵的形式来衡量信息纯度的变化,并且使用特征本身的信息熵进行归一化,抵消了类别过多的特征的不合理优势。      

       由于网上介绍C4.5和CART的文章已经很多了(比如),这里就不做展开了,只是单纯谈谈自己的一些想法。

      决策树算法据称有很多优点。其中最为人所称道的,就是决策树是一个白箱模型,可以直接从学习结果中观察规律,而且易于理解。如果是用于教学展示,决策树的树状结构确实是很适合理解,但是在真实的机器学习中,这个优点恐怕没有什么用。如果样品的分类主要由数据的某些特定特征决定,可以直接计算它们的相关,基本的结果也就可以分析出来了;如果分类的结果总是跟多个特征相关,建立起来的决策树实际上也很难看懂。总而言之,这个优点在实际应用中,恐怕没有想象的那么明显。

       决策树的另外一个优点是可以应用于类别型数据,这确实是一个很大的优点。除了决策树之外,常用的适用于类别型数据的算法,似乎就只有朴素贝叶斯分类了。

       至于决策树的缺点,个人觉得一个比较少谈到的是,决策树不能“自然地”处理由多个特征共同决定的分类。

       最简单的就是一个平面上线性可分的两类坐标点。

       如果使用x、y坐标作为样品的特征,很明显决策树不能得到一个完美解,而只能不断地往下生长,通过不断将空间细分来接近解析解。相比之下,SVM不但可以解决线性可分的问题,还可以通过核函数实现非线性分类。因此,在进行决策树分类之前,有必要使用PCA或者LaplacianEigenmap重排原始特征,然而这样决策树方便理解的优势就更是荡然无存了……

       Adaboost算法应该是现在一个比较流行的分类方法,它是一个将多个弱分类器合并成一个强分类器的有效框架,具体的细节可以看百度大神的blog。

       看到Adaboost这个方法,总觉得跟傅立叶分析十分类似,就是将一个理想的分类器分解为多个弱分类器,并且调整它们的权重。由于算法结构的问题,很难有一个分类器可以正好完美地对数据进行分类。如果过分地对分类器强化训练,可能反而会overfitting。因此adaboost的思路就是训练出一堆分类器,google推广,每一个只针对它最有把握,最为合适的部分来分类,最终就可以将全部信息反映出来。这就正如傅立叶分析使用不同频率的谐振函数将任意函数构造出来一样。

       如果是这样的话,就要考虑到两个问题:基函数的正交性和完备性。

       首先是正交性,Adaboost中的弱分类器是对应于样品的不同权重的分布,尽管相互之间并非正交,但是针对的部分重叠较少。因为只有被错分的样品才会被加强权重,就是说每个分类器所对应的主要样品都是其它分类器不重视或者难以分类的。其次是完备性,这个就比较难分析了,毕竟分类器不是解析的函数。不过,我猜想,过于精确的分类器,其完备性可能就不如较弱的分类器,因为结构太复杂,适应性可能就要下降。不过,反过来说,分类器毕竟是训练出来的,所以其实结构本身就跟数据有关。这个需要做点试验才能确定(更可能是做完了也不能确定……)。


(整理:英文推广TuiGuang123.com)
分享到:
------分隔线----------------------------
购买咨询 | 联系我们 | 产品报价 | 付款方式
网站地图 Copyright·深圳市亿推信息技术有限公司 版权所有 粤ICP备13042246号