机器学习实战 -- 决策树
决策树
一、决策树算法简介
决策树算法包含:特征选择,决策树的生成与决策树的剪枝(本文暂不做介绍)。
优点:计算复杂度不高,输出结果易于理解,对中间值的缺失不敏感,可以处理不相关特征数据。
缺点:可能会产生过度匹配问题。
适用数据类型:数值型和标称型。
本文采用 ID3生成算法。
二、工作原理
经验熵(empirical entropy)
H ( D ) = − ∑ k = 1 K ∣   C k   ∣ ∣   D   ∣ log 2 ∣   C k   ∣ ∣   D   ∣ H(D)=-\sum^{K}_{k=1}\frac{|\:C_k\:|}{|\:D\:|}\log_2\frac{|\:C_k\:|}{|\:D\:|} H(D)=−k=1∑K∣D∣∣Ck∣log2∣D∣∣Ck∣
- D D D:训练数据集 D D D
- C k C_k Ck:有 k k k个类; C 1 , C 2 , . . . , C k C_1,C_2,...,C_k C1,C2,...,Ck
- ∣   C k   ∣ |\:C_k\:| ∣Ck∣: C k C_k Ck类的样本个数
- ∣   D   ∣ |\:D\:| ∣D∣:训练数据集 D D D的个数
e g : 数 据 集 D , 分 为 y e s ( C 1 ) 和 n o ( C 2 ) 两 类 , 如 表 1 : eg:数据集D,分为yes(C_1)和no(C_2)两类,如表1: eg:数据集D,分为yes(C1)和no(C2)两类,如表1:
表 1 表1 表1
no surfacing | filppers | 类别 |
---|---|---|
1 | 1 | yes |
1 | 1 | yes |
1 | 0 | no |
0 | 1 | no |
0 | 1 | no |
C 1 C_1 C1类的样本个数为:2,即: ∣   C 1   ∣ = 2 |\:C_1\:|=2 ∣C1∣=2
C 2 C_2 C2类的样本个数为:3,即: ∣   C 2   ∣ = 3 |\:C_2\:|=3 ∣C2∣=3
∣ D ∣ |D| ∣D∣训练数据样本总数为:5,即: ∣   D   ∣ = 5 |\:D\:|=5 ∣D∣=5
H ( D ) = − 2 5 log 2 2 5 − 3 5 log 2 3 5 = 0.97 \begin{aligned} H(D)&=-\frac{2}{5}\log_2\frac{2}{5}-\frac{3}{5}\log_2\frac{3}{5} \\ &=0.97 \end{aligned} H(D)=−52log252−