决策树(cont)
互信息与决策树 由随机变量 X X X与 Y Y Y之间互信息的计算公式: I ( X ;
Y ) = H ( X ) ? H ( X ∣ Y ) I(X;
Y) = H(X) - H(X|Y) I(X;
Y)=H(X)?H(X∣Y)表示随机变量Y含有X的多少信息。
- 若 H ( X ∣ Y ) H(X|Y) H(X∣Y)较小,则说明给定 Y Y Y时 X X X的信息量减少。
- 在决策树中 Y Y Y表示某一特定的属性。 Y = y i Y = y_i Y=yi?表示该属性的取值为 y i y_i yi?。
- 反应在决策树中表现为由随机变量属性 Y Y Y的取值划分 X X X,得到的样本的纯度提升,即信息量减少。这正是我们的目标。
- 于是在划分阶段,每次只需要选择 H ( X ∣ Y ) H(X|Y) H(X∣Y)较小的即I(X; Y)较大的对应的属性。在决策树中,使用样本的频率代替概率即可(称为样本熵)即用样本的类别频率近似随机变量 X X X的概率分布,用该特定属性每个取值的样本姘居近似随机变量 Y Y Y的概率分布。
文章图片
信息增益 由第一部分的分析,如果选择属性 A A A进行切分(即 Y Y Y的分布对应于属性A的每一取值的频率,属性A的取值一共有k个),信息增益的计算公式为: G a i n A = E n t r o p y ( p ) ? ∑ i = 1 k n i n E n t r o p y ( i ) Gain_{A} = Entropy(p) - \sum_{i = 1}^{k}\frac{n_i}{n}Entropy(i) GainA?=Entropy(p)?i=1∑k?nni??Entropy(i)
其中 E n t r o p y ( p ) Entropy(p) Entropy(p)表示所有样本的熵, E n t r o p y ( i ) Entropy(i) Entropy(i)表示划分后第 i i i个属性取值下所有样本的熵。
- 缺点:倾向于选择切分分支较多的属性。
- 计算实例:
文章图片
- 当一个结点上所有样本属于同一个类别,停止扩展
- 当一个结点上所有样本具有相似的属性值,停止扩展
- 提早结束
- 欠拟合(underfitting)和过拟合(Overfitting)(结点数过多)
文章图片
文章图片
- 防止Overfitting的准则- Given two models of similar generalization errors, one
should prefer the simpler model over the more complex
model - For complex models, there is a greater chance that it was
fitted accidentally by errors in data
- Given two models of similar generalization errors, one
- n个布尔属性的真值表一共有 2 n 2^n 2n行(因为每个属性均有2个取值T或F)
- 每一行共有2种取值即真假
- 因此共有 2 2 n 2^{2^n} 22n种真值表,每一个真值表与一颗决策树对应。
文章图片
- 基本原理是对于一组给定的实例数据 D , 如果要对其进行保存 ,为了节省存储空间, 一般采用某种模型对其进行编码压缩,然后再保存压缩后的数据。同时, 为了以后正确恢复这些实例数据,将所用的模型也保存起来。
- 所以需要保存的数据长度( 比特数) 等于这些实例数据进行编码压缩后的长度加上保存模型所需的数据长度
文章图片
- n个观测数据组成的训练样本集合X = ( x 1 , x 2 ? x n ) X = (x_1,x_2\cdots x_n) X=(x1?,x2??xn?),目标值 T = ( t 1 , t 2 ? t n ) T = (t_1,t_2\cdots t_n) T=(t1?,t2??tn?).这里的每个训练样本都是标量。
f ( x ) = ∑ n = 0 ∞ f n ( x 0 ) n ! ( x ? x 0 ) n f(x) = \sum_{n = 0}^{\infty} \frac{f^n(x_0)}{n!}(x - x_0)^n f(x)=n=0∑∞?n!fn(x0?)?(x?x0?)n
因此考虑使用多项式函数拟合曲线。即假设空间为: y ( x ; w ) = w 0 + w 1 x + w 2 x 2 + ? + w m x m y(x; \mathbf{w}) = w_0 + w_1x+w_2x^2+\cdots+w_mx^m y(x; w)=w0?+w1?x+w2?x2+?+wm?xm优化的目标函数为 E ( w ) = 1 2 ∑ i = 1 n ( y ( x i ; w ) ? t i ) 2 E(\mathbf{w}) = \frac{1}{2} \sum_{i = 1}^{n}(y(x_i; w) - t_i)^2 E(w)=21?i=1∑n?(y(xi?; w)?ti?)2优化目标为$ arg ? min ? w E ( w ) \mathop{\arg\min}\limits_{\mathbf{w}} E(\mathbf{w}) wargmin?E(w)
这里 w = ( w 0 , w 1 ? w m ) T \mathbf{w} = (w_0,w_1\cdots w_m)^T w=(w0?,w1??wm?)T
令 X i = ( x i 0 , x i 1 ? x i m ) X_i = (x_i^0,x_i^1\cdots x_i^m) Xi?=(xi0?,xi1??xim?),即第i个样本的0-m次幂组成的列向量。再令 X  ̄ = [ X 1 X 2 ? X n ] \overline{X} = \left[\begin{matrix} X_1 \\ X_2 \\ \vdots \\X_n \end{matrix}\right] X=??????X1?X2??Xn????????.最后,令 T = ( t 1 , t 2 ? t n ) T T = (t_1,t_2 \cdots t_n)^T T=(t1?,t2??tn?)T。则最终的优化目标可以写作: arg ? min ? w 1 2 ( X  ̄ w ? T ) T ( X  ̄ w ? T ) \mathop{\arg\min}\limits_{\mathbf{w}} \frac{1}{2}(\overline{X}\mathbf{w}-T)^T(\overline{X}\mathbf{w}-T) wargmin?21?(Xw?T)T(Xw?T)
为了求出上述式子的解析解,只需令 d E d w = 0 \frac{dE}{d\mathbf{w}} = 0 dwdE?=0。
而 E ( w ) = 1 2 ( w T X  ̄ T ? T T ) ( X  ̄ w ? T ) = 1 2 ( w T X  ̄ T X w ? 2 w T X  ̄ T T + T T T ) E(w) = \frac{1}{2}(\mathbf{w}^T\overline{X}^T - T^T)(\overline{X}\mathbf{w} - T) \\ = \frac{1}{2}(\mathbf{w}^T\overline{X}^TX\mathbf{w} - 2\mathbf{w}^T\overline{X}^TT+T^TT) E(w)=21?(wTXT?TT)(Xw?T)=21?(wTXTXw?2wTXTT+TTT)第二步成立是因为标量的转置和自身相等。
d E d w = X  ̄ T X  ̄ w ? X  ̄ T T \begin{aligned} \frac{dE}{d\mathbf{w}} &= \overline{X}^T\overline{X}\mathbf{w} - \overline{X}^TT \end{aligned} dwdE??=XTXw?XTT?得到 w = ( X  ̄ T X  ̄ ) ? 1 X  ̄ T T \mathbf{w} = (\overline{X}^T\overline{X})^{-1}\overline{X}^TT w=(XTX)?1XTT
注:有关一些此正规方程优化的补充知识:
- 定理:如果一个函数是凸函数,那么这个函数的最优解 x ? x^* x?的充分必要条件是: ? f ( x ? ) = 0 \nabla f(x^*) = 0 ?f(x?)=0
- 而线性最小二乘目标函数是凸函数。
- 定理:上述的normal equation必有解。有可能有唯一解,有可能有无穷多解。参见线性回归什么时候会fail
- 上述的矩阵是有可能不可逆的,这时可以调用伪逆pinv求出方程的一个特解,这个特解也是使得最小二乘损失最小的解。
- 因为这个特解也满足条件? f ( x ? ) = 0 \nabla f(x^*) = 0 ?f(x?)=0,由上面定理可知确实是一个最优解。
推荐阅读
- 机器学习|哈工大2020机器学习实验一(多项式拟合正弦曲线)
- python|哈工大 机器学习实验一 多项式拟合 含python代码
- 大数据|一文读懂元宇宙,AI、灵境计算...核心技术到人文生态
- 机器学习|机器学习(七)过拟合问题与正则化
- 笔记|Verilog 语法task和function不可以使用initial和always
- OpenCV|【opencv】最近邻插值、双线性插值、双三次插值(三次样条插值)
- 人脸识别|机器学习之人脸识别face_recognition使用
- 机器学习|机器学习----支持向量机 (Support Vector Machine,SVM)算法原理及python实现
- 人工智能|机器学习方法之支持向量机(Support Vector Machine,SVM)