学习内容:
1.CART树
2.算法原理
3.损失函数
4.分裂结点算法
5.正则化
6.对缺失值处理
7.优缺点
8.应用场景
9.sklearn参数
1.CART树
CART算法是一种二分递归分割技术,把当前样本划分为两个子样本,使得生成的每个非叶子结点都有两个分支,因此CART算法生成的决策树是结构简洁的二叉树。由于CART算法构成的是一个二叉树,它在每一步的决策时只能是“是”或者“否”,即使一个feature有多个取值,也是把数据分为两部分。在CART算法中主要分为两个步骤
将样本递归划分进行建树过程
用验证数据进行剪枝
2.算法原理
输入:训练数据集DDD,停止计算的条件;
输出:CART决策树。
根据训练数据集,从根结点开始,递归地对每个结点进行一下操作,构建二叉决策树:
1)设结点的训练数据集为DDD,计算现有特征对该点数据集的基尼指数。此时,对每个特征A,对其可能取的每个值aaa,根据样本点计算对A=aA=aA = a的测试为“是”或“否”讲DDD分割成D1D1D_1和D2D2D_2两部分,计算A=aA=aA = a时的基尼指数。
2)在所有 可能的特征AAA以及他们所有可能的切分点aaa中,选择基尼指数最小的特征及其对应的切分点作为最优切分点,依最有特征与最优切分点,从现结点生成两个子结点,将训练数据集依特征分配到两个子结点中去。
3)对两个子结点递归地调用1),2),直至满足停止条件。
4)生成CART决策树。
3.损失函数
L=∑xi≤Rm(yi?f(xi))2+K∑i=1Ω(fk)L=∑xi≤Rm(yi?f(xi))2+∑i=1KΩ(fk)L = \sum\limits_{x_i \leq R_m}//代码效果参考:http://www.ezhiqi.com/zx/art_7490.html (y_i - f(xi))^2 + \sum\limits{i=1}^K \Omega (f_k)
4.分裂结点算法
使用基尼指数用于分裂结点的依据
概率分布的基尼指数定义为:Gini(p)=K∑k=1pk(1?pk)=1?K∑k=1p2kGini(p)=∑k=1Kpk(1?pk)=1?∑k=1Kpk2Gini(p) = \sum\limits_{k=1}^K p_k (1-pk) = 1 - \sum\limits{k=1}^K p_k^2
如果样本那集合D根据特征A是否取某一可能值aaa被分割成D1D1D_1和D2D2D_2两部分,即D1={<span class="mjx-char MJXc-TeX-main-R" style="padding-to