决策树是一种采用分而治之思想的算法,举个例子:假设样本有4个属性,标签有两类。首先我们通过算法找到一个属性,那么现在问题被分解为两个子问题:只有一个属性的问题和三个属性的问题,我们先解决了前者,再处理后者。如此反复,最终解决整个问题,从而得到了整个决策树。
在展开决策树的讨论前,我们先对符号进行定义:样本集S、属性数k、标签分类种数(v分类问题)v。
1、ID3
ID3决策树对属性进行划分的标准是信息增益(Gain),信息增益是指划分前信息熵和划分后每个子集(按权重)信息熵之和的差值。ID3选择信息增益最大的属性作为划分属性。
简单介绍一下信息熵的概念:
E n t r o p y ( S ) = ∑ i = 1 ∣ S ∣ − p i l o g 2 p i Entropy(S)=\sum^{|S|}_{i=1} -p_ilog_2p_i Entropy(S)=i=1∑∣S∣−pilog2pi
S为样本集合,在信息熵的计算中,一般会默认 l o g 2 0 = 0 log_20=0 log20=0
~
假设有一个属性A将S分为n个子集,我们记为 S 1 、 S 2 . . . S n 。 ∣ S i ∣ 代 表 S i 内 的 样 本 数 S_1、S_2...S_n。|S_i|代表S_i内的样本数 S1、S2...Sn。∣Si∣代表Si内的样本数
那么
G a i n ( S , A ) = E n t r o p y ( S ) − ∑ i = 1 n ∣ S i ∣ ∣ S ∣ E n t r o p y ( S i ) Gain(S,A)=Entropy(S)-\sum_{i=1}^n\frac{|S_i|}{|S|}Entropy(S_i) Gain(S,A)=Entropy(S)−i=1∑n∣S∣∣Si∣Entropy(S