目的
生成一颗决策树,输入X(各种特征条件)输出Y(该样本分类结果)。
一、分类树选择特征的依赖——基尼指数
- 基尼指数——总体内包含的类别越杂乱,基尼指数就越大
在CART算法中, 基尼不纯度表示一个随机选中的样本在子集中被分错的可能性。
基尼不纯度 = ∑ i = 1 K ( \sum_{i=1}^K( ∑i=1K(样本 i i i被选中的概率 ∗ * ∗ 它被分错的概率)
(当一个节点中所有样本都是一个类时,基尼不纯度为零。)
假设y的可能取值有K个,令 p k p_k pk是样本取值为k的概率,
则基尼指数可以通过如下公式计算:
G i n i ( p ) = ∑ i = 1 K p i ( 1 − p i ) = 1 − ∑ i = 1 K p i 2 Gini(p)=\sum_{i=1}^Kp_i(1-p_i)=1-\sum_{i=1}^K{p_i}^2 Gini(p)=i=1∑Kpi(1−pi)=1−i=1∑Kpi2
在选择根节点属性时,计算每一种属性分类后的基尼指数 G i n i Gini Gini,选择 G i n i Gini Gini最小的那种属性作为该节点的分类依据。
二、例子
头发 | 身高 | 体重 | 性别 |
---|---|---|---|
长 | 中 | 60 | 女 |
短 | 高 | 65 | 男 |
长 | 高 | 70 | 男 |
短 | 矮 | 55 | 女 |
短 | 中 | 50 | 男 |
要对上表的数据构建一颗决策树,它的特征集合A={头发、身高、体重}
1.当选择{头发}分类时,对应的样本数如下表:
长 | 短 | |
---|---|---|
男 | 1 | 2 |
女 | 1 | 1 |
Total | 2 | 3 |
G 长 = 1 − ( 1 2 ) 2 − ( 1 2 ) 2 = 0.5 G_长=1-(\frac{1}{2}){^2} - (\frac{1}{2}){^2} = 0.5 G长=1−(21)2−(21)2=0.5
G 短 = 1 − ( 1 3 ) 2 − ( 2 3 ) 2 = 0.444 G_短={1-}(\frac{1}{3}){^2} - (\frac{2}{3}){^2} = 0.444 G短=1−(31)2−(32)2=0.444
G { 头 发 } = 2 5 ∗ G 长 + 3 5 ∗ G 短 = 0.466 G_{\{头发\}} = \frac{2}{5}*G_长 + \frac{3}{5}*G_短= 0.466 G{
头发}=52∗G长+53∗G短=0.466
2.当选择{身高}分类时,有三种值,对应三种分法,
(1)按照中和非中分类如下表:
中 | 非中 | |
---|---|---|
男 | 1 | 2 |
女 | 1 | 1 |
Total | 2 | 3 |
G 中 = 1 − ( 1 2 ) 2 − ( 1 2 ) 2 = 0.5 G_中={1-}(\frac{1}{2}){^2} - (\frac{1}{2}){^2} = 0.5 G中=1−(21)2−(21)2=