数据挖掘十大经典算法学习之C4.5决策树分类算法及信息熵相关

Definition

决策树学习时应用最广的归纳推理算法之一。[1]它是一种逼近离散值函数的方法,对噪声数据有很好的健壮性且能够学习析取表达式。CLS ID3C4.5CART均是决策树学习算法。

[1]归纳学习成立存在一个基本假设:任一假设如果在足够大的训练样例集中很好地逼近目标函数,它也能在未见实例中很好地逼近目标函数。“泛化能力”

决策树学习的归纳偏置是优先选择较小的树。

决策树通过把实例从根节点排列到某个叶子节点来分类实例,叶子节点即为实例所属的分类。树上的每一个结点指定了对实例的某个属性的测试,并且该结点的每一个后继分支对应于该属性的一个可能值。分类实例的方法是从这个树的根结点开始,测试这个结点指定的属性,然后按照给定实例的该属性值对应的树枝向下移动。然后这个过程在以新结点为根的子树上重复。

-1为根据天气情况判断是否适合出去玩的数据集。

-1

 

Outlook

Temperature

Humidity

Windy

Play

1

sunny

hot

high

FALSE

no

2

sunny

hot

high

TRUE

no

3

overcast

hot

high

FALSE

yes

4

rainy

mild

high

FALSE

yes

5

rainy

cool

normal

FALSE

yes

6

rainy

cool

normal

TRUE

no

7

overcast

cool

normal

TRUE

yes

8

sunny

mild

high

FALSE

no

9

sunny

cool

normal

FALSE

yes

10

rainy

mild

normal

FALSE

yes

11

sunny

mild

normal

TRUE

yes

12

overcast

mild

high

TRUE

yes

13

overcast

hot

normal

FALSE

yes

14

rainy

mild

high

TRUE

no

 

-1画出了一颗学习到的决策树。这个树根据天气情况分类“是否适合出去玩”。

-1

Problem

为了使决策树最优,哪一个属性将在树的根节点被测试?分类能力最好的属性被选作树的根结点的测试。采用不同测试属性及其先后顺序将会生成不同的决策树。

定义一个统计属性,称为“信息增益”(information gain),用来衡量给定的属性区分训练样例的能力。度量信息增益的标准为“熵”(entropy)。信息量就是不确定性的多少,熵越大,信息的不确定性越大。

自信息量:log(1/P)

H(x)=−xXP(x)log2P(x)  //P(x)表示x发生的概率。

信息增益:Gain(S,A)Entropy(S)−vValues(A) |Sv |/|S| Entropy(Sv)

Values(A)是属性A所有可能值得集合,SvS中属性A的值为v的子集。该等式的第一项就是原集合S的熵,第二项是用A分类后S的熵的期望值。第二项描述的期望熵就是每个子集的熵的加权和,权值为属于Sv的样例占原始样例S的比例|Sv |/|S|

以表-1中的数据集为例。该数据集S14个样例,9个正例(play=yes),5个负例(play=no)。

Entropy(S)=-(9/14)log2(9/14)-(5/14)log2(5/14)=0.940

整个数据集S中:Outlook=sunny,6; Outlook=rainy,4;Outlook=overcast,4.

 

Outlook

Temperature

Humidity

Windy

Play

1

sunny

hot

high

FALSE

no

2

sunny

hot

high

TRUE

no

3

overcast

hot

high

FALSE

yes

4

rainy

mild

high

FALSE

yes

5

rainy

cool

normal

FALSE

yes

6

rainy

cool

normal

TRUE

no

7

overcast

cool

normal

TRUE

yes

8

sunny

mild

high

FALSE

no

9

sunny

cool

normal

FALSE

yes

10

rainy

mild

normal

FALSE

yes

11

sunny

mild

normal

TRUE

yes

12

overcast

mild

high

TRUE

yes

13

overcast

hot

normal

FALSE

yes

14

rainy

mild

high

TRUE

no

Outlook=sunny, play=yes,2;Outlook=sunny, play=no,3;5个实例。

Entropy(Ssunny)= -(2/5)log2(2/5)-(3/5)log2(3/5)=0.971

 

Outlook

Temperature

Humidity

Windy

Play

1

sunny

hot

high

FALSE

no

2

sunny

hot

high

TRUE

no

3

overcast

hot

high

FALSE

yes

4

rainy

mild

high

FALSE

yes

5

rainy

cool

normal

FALSE

yes

6

rainy

cool

normal

TRUE

no

7

overcast

cool

normal

TRUE

yes

8

sunny

mild

high

FALSE

no

9

sunny

cool

normal

FALSE

yes

10

rainy

mild

normal

FALSE

yes

11

sunny

mild

normal

TRUE

yes

12

overcast

mild

high

TRUE

yes

13

overcast

hot

normal

FALSE

yes

14

rainy

mild

high

TRUE

no

Outlook=rainy, play=yes,3;Outlook=rainy, play=no,2;5个实例。

Entropy(Srainy)= -(3/5)log2(3/5)-(2/5)log2(2/5)=0.971

 

Outlook

Temperature

Humidity

Windy

Play

1

sunny

hot

high

FALSE

no

2

sunny

hot

high

TRUE

no

3

overcast

hot

high

FALSE

yes

4

rainy

mild

high

FALSE

yes

5

rainy

cool

normal

FALSE

yes

6

rainy

cool

normal

TRUE

no

7

overcast

cool

normal

TRUE

yes

8

sunny

mild

high

FALSE

no

9

sunny

cool

normal

FALSE

yes

10

rainy

mild

normal

FALSE

yes

11

sunny

mild

normal

TRUE

yes

12

overcast

mild

high

TRUE

yes

13

overcast

hot

normal

FALSE

yes

14

rainy

mild

high

TRUE

no

Outlook=overcast, play=yes,4;Outlook= overcast, play=no,0;4个实例。

Entropy(Sovercast)= -(4/4)log2(4/4)-(0/4)log2(0/4)=0  //熵的定义中规定,如果所有成员属于同一类,那么熵为0

Gain(S,Outlook)Entropy(S)−vValues(Outlook) |Sv |/|S| Entropy(Sv)

=Entropy(S)−(5/14)* Entropy(Ssunny) −(5/14)* Entropy(Srainy) −4/14 * Entropy(Sovercast)

=0.940-(5/14)* 0.971-(5/14)* 0.971-0=0.246

同样,可以计算Gain(S,Wind)=0.048Gain(S,Humidity)=0.151Gain(S,Temperature)=0.029

属性Outlook的信息增益最大,也就是说,它能够减少的信息不确定性最多。因此,选择Outlook作为根节点的决策属性。

 

Also.to be continued. 需新增信息增益率相关知识。

Acknowledgements&References

部分材料采自于实验室董X同学的讲座,谢谢董X友情提供资料。理论知识部分摘自于Tom M.Mithchell的《机器学习》。

你可能感兴趣的:(数据挖掘学习笔记)