郭卫东 发表于 2025-10-22 04:20:00

【决议树】分类属性的选择

实现决议树算法最关键的一点就是怎样从全部的特性属性中选择一个最优的属性对样本举行分类,这种最优可以明白为盼望分别后每种种别中的样本尽大概同类,也就是富足“纯净”。
1.信息增益(ID3)

须要先相识信息墒,墒表现一个体系内部的杂乱水平,墒越大越杂乱。信息墒的公式:
https://dis.qidao123.com/imgproxy/aHR0cHM6Ly9pLWJsb2cuY3NkbmltZy5jbi9kaXJlY3QvMWZjZjNhMzU4MTlmNGUyMzg2ZjgxNzdmNzZkZjIzMTAucG5n
   信息墒的最大值,就是当各类样本出现的比例类似时出现,代入公式可求。
对于公式的明白直接看deepseek的回复,比力正确形象:
https://dis.qidao123.com/imgproxy/aHR0cHM6Ly9pLWJsb2cuY3NkbmltZy5jbi9kaXJlY3QvYWIzNzc2ZDk5ZDk4NDI1Nzg3NjA0Y2UxYjdmYzEyZWYucG5nI3BpY19jZW50ZXI=
相识了信息墒的寄义,假设如今有一个样本空间D,信息墒为E。D根据特性属性x可以分别为 D1, D2, D3 三个子样本空间,各个子样本空间样本数占总样本空间比例 k1, k2, k3,每个子样本空间根据公式也可以盘算出自己的信息墒,假设为 E1, E2, E3,那么以这个特性属性分别后D的信息墒为 各个子样本空间信息墒*权重 之和,即 k1*E1 + k2*E2 + k3 *E3,这个值越大,表现用特性属性x对样本空间分别后的分类结果越差。越小表现分类结果越好,能更有用地将数据分别为纯度更高的子集。因此,须要做的就是盘算出每个特性属性分别后的信息墒,优先用信息墒最小的谁人特性属性分别,此时能得到最大的信息增益。
然后在子样本空间中用剩下的特性属性重复这个流程,循环往复…,得到一棵分类结果最好的树。
下面是周志华呆板学习书中对信息增益的界说:
https://dis.qidao123.com/imgproxy/aHR0cHM6Ly9pLWJsb2cuY3NkbmltZy5jbi9kaXJlY3QvOTNmZjQ5YmRjZWMyNDllNGI1ODM3ZjMxYjJkMWNhMWIucG5n
2.信息增益率(C4.5)

信息增益的选择方式倾向于选择属性值较多的属性,由于如许分别后子空间的信息墒最小,信息增益最大,但轻易造成过拟合模子返回本领差的题目,好比在用户的(id、性别、年岁、体重、各种查抄指标…)中拿用户的id去推测是否抱病,正确但没故意义。
此时通过在上一步信息增益的根本上,除以一个属性固有值(类似于墒值),来平衡属性值较多的属性的信息增益。
这个属性固有值的公式是:
https://dis.qidao123.com/imgproxy/aHR0cHM6Ly9pLWJsb2cuY3NkbmltZy5jbi9kaXJlY3QvODQ3ZDBkN2ZlYmNiNDE4YThhY2YyNzk0MmUzMjJkYTcucG5n
a表现特性属性,V表现值范例的数量,D表现总样本数,Dv表现每个取值下样本数量。
对于这个公式的明白:
https://dis.qidao123.com/imgproxy/aHR0cHM6Ly9pLWJsb2cuY3NkbmltZy5jbi9kaXJlY3QvNzUxM2MyNTdkMTZhNDBlOTg3Mzc5NzgzNjdhMTgzNjYucG5nI3BpY19jZW50ZXI=
以是信息增益率的公式为:
https://dis.qidao123.com/imgproxy/aHR0cHM6Ly9pLWJsb2cuY3NkbmltZy5jbi9kaXJlY3QvNTdkMjY5NTkxYzQ3NDhmMzhkNzdmZDNhYTZiODIyNjkucG5n
根据增益率对分别属性的选择,
https://dis.qidao123.com/imgproxy/aHR0cHM6Ly9pLWJsb2cuY3NkbmltZy5jbi9kaXJlY3QvNDc3M2U5OThlODBjNDRhMTgxMGQ1Y2Y0Y2JlMmUyNWQucG5n
对这种“启发式选择”的明白:
https://dis.qidao123.com/imgproxy/aHR0cHM6Ly9pLWJsb2cuY3NkbmltZy5jbi9kaXJlY3QvMzUxMjBmMjU1OTAwNGZkOGFkZmQwMTgwZDUwMzczNGYucG5nI3BpY19jZW50ZXI=
3.基尼指数(CART)

   基尼指数属于CART算法,但CRAT算法并不但有基尼指数一种实现方式(分类: 基尼指数;回归: 均方偏差)。 见【4.三者对比】部门
https://dis.qidao123.com/imgproxy/aHR0cHM6Ly9pLWJsb2cuY3NkbmltZy5jbi9kaXJlY3QvM2JhMDI5YzdjYjVjNGIxMmJlZmFiZmU5OGEwODIwN2EucG5n
上图中4.5基尼值的公式中,                                       p                         k                                  p_k               pk​为第k类样本占总样本的比例,                                       p                                 k                            ′                                           p_{k'}               pk′​为非k类样本占的比例(                              1                      −                               p                         k                                  1-p_k               1−pk​)。
为什么这个公式可以反映样本空间的杂乱水平?
   起首                                             p                            k                                       p_k                  pk​的取值在0-1,且全部大概的                                             p                            k                                       p_k                  pk​之和便是1。

显着当全部种别占比相当时最杂乱,假设对于二分类,此时对于k1、k2,所占总样本的比例                                             p                                       k                               1                                                 p_{k_1}                  pk1​​                                              p                                       k                               2                                                 p_{k_2}                  pk2​​都为0.5,对应的                                             p                                       k                               1                               ′                                                 p_{k_1'}                  pk1′​​                                              p                                       k                               2                               ′                                                 p_{k_2'}                  pk2′​​也都为0.5,因此                                             ∑                                       k                               =                               1                                                 ∣                               y                               ∣                                                      p                            k                            2                                       \sum\limits_{k=1}^{|y|} p_k^2                  k=1∑∣y∣​pk2​=                                 0.                                 5                            2                                       0.5^2                  0.52+                                 0.                                 5                            2                                  =                         0.5                              0.5^2=0.5                  0.52=0.5,基尼指数=                                 1                         −                         0.5                         =                         0.5                              1-0.5=0.5                  1−0.5=0.5。

当增大一个                                             p                            k                                       p_k                  pk​时,另一个                                             p                            k                                       p_k                  pk​一定镌汰,当对                                             p                            k                                       p_k                  pk​举行平方运算时,大的                                             p                            k                                       p_k                  pk​增大的那部门一定会大于小的                                             p                            k                                       p_k                  pk​镌汰的那部门,以是                                             ∑                                       k                               =                               1                                                 ∣                               y                               ∣                                                      p                            k                            2                                       \sum\limits_{k=1}^{|y|} p_k^2                  k=1∑∣y∣​pk2​肯定会变得更大,以是终极的基尼值                                 1                         −                                 ∑                                       k                               =                               1                                                 ∣                               y                               ∣                                                      p                            k                            2                                       1-\sum\limits_{k=1}^{|y|} p_k^2                  1−k=1∑∣y∣​pk2​镌汰。
eg:                                             p                                       k                               1                                                 p_{k_1}                  pk1​​=0.6,                                             p                                       k                               2                                                 p_{k_2}                  pk2​​=0.4,                                             ∑                                       k                               =                               1                                                 ∣                               y                               ∣                                                      p                            k                            2                                       \sum\limits_{k=1}^{|y|} p_k^2                  k=1∑∣y∣​pk2​=                                 0.                                 6                            2                                       0.6^2                  0.62+                                 0.                                 4                            2                                  =                         0.52                              0.4^2=0.52                  0.42=0.52,基尼指数=                                 1                         −                         0.52                         =                         0.48                              1-0.52=0.48                  1−0.52=0.48。
而下面属性a的基尼指数公式,着实是度量用a属性分别后的全部子样本空间中各自的杂乱水平,然后乘以各个子样本空间在总样本空间的占比权重,末了汇总求和。以是可以说公式表现的寄义是:用a属性对总样本空间举行分别后,总样本空间的杂乱水平。
因此属性a分别后基尼值越小,表现样本空间越“纯净”,也就是分类结果越好。
   须要留意的是:固然基尼指数的公式理论上支持多分类,但算法实现中只会二分类,递归的天生二叉树。 分类过程中会在每个候选属性中摆列遍历找到基尼指数最小的最优组合,然后找出全局最优分别组合,该组合对应的属性和分别方式作为该节点的分别属性和分类的方式。
对基尼指数的公式及明白:
https://dis.qidao123.com/imgproxy/aHR0cHM6Ly9pLWJsb2cuY3NkbmltZy5jbi9kaXJlY3QvNTQwYTg4OGYxOGNiNGM4MDk2ZTc2YjJlODdjNWRjZTYucG5nI3BpY19jZW50ZXI=
ps.三者对比

https://dis.qidao123.com/imgproxy/aHR0cHM6Ly9pLWJsb2cuY3NkbmltZy5jbi9kaXJlY3QvNDk1MWFkNTRiNmMyNDk2ZTg2Yjk3OWFhOTJhMzM2YTIucG5n
重要关注为什么CART可以做回归,而别的两种实现方式不支持。
由于上面两种核心都是要通过目的值的分类,进而知道概率盘算墒值,只支持目的值为离散型变量。
而CART算法中,可以通过调解属性分别时的依据公式(均方差),实验找到每个候选属性的最优分隔组合,这个分割组合要满足分隔后的两个子集的加权均方偏差最小(目的值的均方偏差),然后选择最优的谁人候选属性分别。之后重复迭代下去…
当做回归推测时,终极落到哪个分类,直接返回这个种别的均值就行。
页: [1]
查看完整版本: 【决议树】分类属性的选择