Intro to Decision Tree

background

Decision Tree可以说是非常早期的机器学习的方法了,到现在仍然有其使用的价值。设想你观察了你的暗恋对象的日常生活习惯,类似,在一个阳关明媚的周末,她会去逛商场,在雨天有时候选择宅在家里看剧,有时候去国图待上一整天,不知不觉你收集了她十年的数据,然后某个阳光明媚的下午,你发现她带着孩子在逛街…言归正传,看一下Decision Tree怎么处理这个分类问题。

Decision Tree Representation

以下是一棵Decision Tree

Intro to Decision Tree

其中方形里面的OutlookHumidityWind表示属性,也就是特征,边的值SunnyHighNormal表示特征值,叶节点YesNo表示分类标签,当然,可以有很多种分类。所以Decision Tree的问题就是当前节点怎么做特征选取的问题。

Which Attribute is the Best Classifier

information theory里的熵在机器学习里的很多算loss的场景里都会用到,大道至简嘛,怎么用最小的信息量对信息做表示。

Intro to Decision Tree

其中P+表示正例,P-表示负例。

Intro to Decision Tree

对于多个分类的entropy计算:

Intro to Decision Tree

最原始的ID3算法如下,其实后续的C4.5只是对ID3的一些改进,以避免overfitting的问题。

Intro to Decision Tree

每一步会对当前的所有特征做information gain计算,每次选取最大的information gain,这样对于ID3算法来说,是无法做backtracking的,也就是hillclimbing得到的可能只是一个局部最优解。

Intro to Decision Tree

Intro to Decision Tree

Intro to Decision Tree

对于以上的例子来说,Humidity算得的information gain比Wind要高,所以当前节点会选择Humidity

How to Represent Bias

对于Decision Tree或者其他机器学习算法来说,有一个统一的规则,more simple more general,也就是大道至简。1320年,哲学上有人提出了一个观点叫Occams’s Razor

Intro to Decision Tree

对于Decision Tree来说,矮树优于高树。

How to Avoid Overfitting

对于overfitting的定义如下,在tensorboard里看初版模型训练记录,可以有直观的感受。

Intro to Decision Tree

如果数据没有噪声,ID3得到的数是可以完全fitting训练集的,怎么防止overfitting呢?

  • 在ID3算法走完之前就停止训练,什么时候停止呢?没有一个明确的标准,有时候可以指定树高,有时候可以指定information gain小于一个阈值的时候停止。
  • 对树做剪枝操作,用validation set去验证剪枝后的准确率。

对于后者来说,使用的较多,对于C4.5来说,最后并没有树的概念了,而是对于所有的路径生成规则,if (A && B && C && ...)这种,然后对规则做剪枝,然后在validation set上做验证。

How to Handle Continuous Attribute Values

对于温度或者一些其他连续值来说,怎么确定特征值分界?确定了特征值分界就相当于变为了离散的特征值。

Intro to Decision Tree

去分类变化的分界点的均值作为临界点,即(48 + 60) / 2 = 54(80 + 90) / 2 = 85做为临界点,但是对于日期来说,每天都是一个明确的分类,这样information gain很高,但是这样会引起严重的overfitting的问题,所以后面提出了另一个思想。

Intro to Decision Tree

Intro to Decision Tree

其中Si表示分类i的数量,S表示总样本数,则分类越细,完全分开的话SplitInformation的值变为log2(N),其中N为样本总量。所以说SplitInformation算是对InformationGain的一个调整。

还有一起其他的计算方式,但是思想不变。

Intro to Decision Tree

Intro to Decision Tree

Tree Hole

Decision Tree算是非常老的机器学习方法了,但是其优势很明显,就是对数据的直观解析性很强。拿着PPT给老板做演示的时候,有理有据,效果挺好。

相关文章: