机器学习(三)树模型

机器学习(三)树模型

3.1 划分选择
3.1.1 信息增益
熵的定义如下,熵越小,纯度越高

Entropy(D)=k=1|y|pklogpk(3.1.1) (3.1.1) E n t r o p y ( D ) = − ∑ k = 1 | y | p k l o g p k

信息增益定义如下,属性a有v个取值
Gain(D,a)==Entropy(D)H(D|a)Entropy(D)v=1V|Dv||D|Entropy(Dv)(3.1.2) G a i n ( D , a ) = E n t r o p y ( D ) − H ( D | a ) (3.1.2) = E n t r o p y ( D ) − ∑ v = 1 V | D v | | D | E n t r o p y ( D v )

信息增益越大,意味着使用属性a进行划分所获得纯度越大,ID3使用信息增益来划分属性
信息增益越容易偏向选择特征值较多的特征

3.1.2 信息增益率

Gain_ratio(D,a)=Gain(D,a)IV(a)(3.1.3) (3.1.3) G a i n _ r a t i o ( D , a ) = G a i n ( D , a ) I V ( a )

IV(a)=v=1V|Dv||D|log|Dv||D|(3.1.4) (3.1.4) I V ( a ) = − ∑ v = 1 V | D v | | D | l o g | D v | | D |

信息增益率对取值较少的特征有偏好 信息增益率 C4.5 启发式 先找信息增益高于平均的属性,再选择增益率最高的

3.1.3 基尼系数

Gini==k=1|y|kkpkpk1v=1|y|p2k(3.1.5) G i n i = ∑ k = 1 | y | ∑ k ′ ≠ k p k p k ′ (3.1.5) = 1 − ∑ v = 1 | y | p k 2

基尼系数直观来说,反映的是从数据集D中抽取两个样本,其类标记不一样的概率,Gini越高数据集纯度越高
Gini_index(D,a)=v=1V|Dv||D|Gini(Dv)(3.1.6) (3.1.6) G i n i _ i n d e x ( D , a ) = ∑ v = 1 V | D v | | D | G i n i ( D v )

选择Gini指数较小的作为划分的标准

3.2 剪枝
预剪枝:
  每个结点划分时估计,若不能提升泛化性能 则停止分裂 将其作为叶节点
  降低了过拟合的风险 很多特征没有展开,但 有些特征在当前的划分不能带来提升泛化性能 在之后可能会提升,带来了欠拟合的风险

后剪枝:
  自底向上,对非叶结点考察,若将子树替换为叶节点能够带来泛化性能提升 则 将子树替换为叶节点
  相对于预剪枝 后剪枝保留了更多的分支,欠拟合风险小 泛化性能优于预剪枝
  时间花销太大 它是树训练完成之后的从低向上的

3.3 连续值与缺失值处理
连续值处理 二分法 大小排序后 划分点 取两边的中点
缺失值处理 计算属性信息增益率时 只考虑无缺失值的样本,然后乘以一定的权重

3.3 CART二叉树
3.3.1 分类问题 Gini index
生成过程:
  对个特征 A,对它的所有可能取值 a,将数据集分为 A=a,和 A!=a 两个子集,计算集合 D 的基尼指数

Gini_index(D,A)=|DA=a||D|Gini(DA=a)+|DAa||D|Gini(DAa)(3.3.1) (3.3.1) G i n i _ i n d e x ( D , A ) = | D A = a | | D | G i n i ( D A = a ) + | D A ≠ a | | D | G i n i ( D A ≠ a )

  遍历所有特征,计算所有可能的分割点,选择D的基尼指数最小值对应的特征作为特征值与切分点
  重复以上过程直至满足停止条件

停止条件:
  结点的样本个数小于给定阈值
  样本集的基尼系数小于给定阈值
  没有更多的特征

3.3.1 回归问题

f(x)=i=1McmI(xRm)(3.3.2) (3.3.2) f ( x ) = ∑ i = 1 M c m I ( x ∈ R m )

  数据空间被划分成了 R1~Rm 单元,每个单元上有一个固定的输出值 cm,每个单元上的 cm,可以使得这个平方误差最小化,易知当 cm 为相应单元上的所有实际值的均值时,可以达到最优

生成过程:
  假设,我们选择变量 xj x j 为切分变量,它的取值 s 为切分点,那么就会得到两个区域
  当 j 和 s 固定时,我们要找到两个区域的代表值 c1,c2 使各自区间上的平方差最小

minj,s[minc1xiR1(j,s)(yic1)2+minc2xiR2(j,s)(yic2)2](3.3.3) (3.3.3) min j , s [ min c 1 ∑ x i ∈ R 1 ( j , s ) ( y i − c 1 ) 2 + min c 2 ∑ x i ∈ R 2 ( j , s ) ( y i − c 2 ) 2 ]

   cm=ave(y1|xiRm) c m = a v e ( y 1 | x i ∈ R m ) 对应输出的均值
  对固定的 j 只需要找到最优的 s,然后通过遍历所有的变量,我们可以找到最优的 j,并得到两个区间

总结:
  考虑数据集 D 上的所有特征 j,遍历每一个特征下所有可能的取值或者切分点 s,将数据集 D 划分成两部分 D1 和 D2
  分别计算上述两个子集的平方误差和,选择最小的平方误差对应的特征与分割点,生成两个子节点。
  对上述两个子节点递归调用步骤(1)(2),直到满足停止条件。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值