【Python机器学习】3.1. 决策树理论(基础)

发布于:2025-03-18 ⋅ 阅读:(17) ⋅ 点赞:(0)

喜欢的话别忘了点赞、收藏加关注哦(关注即可查看全文),对接下来的教程有兴趣的可以关注专栏。谢谢喵!(=・ω・=)
在这里插入图片描述

3.1.1. 常用的分类方法

在之前的文章中我们介绍了以下的这些分类方法:

  • 逻辑回归:在知道标签的情况下来寻找决策边界
    请添加图片描述

  • KMeans、KNN和MeanShift:在不知道标签的情况下进行划分
    请添加图片描述
    请添加图片描述

MeanShift:
请添加图片描述

3.1.2. 新的分类方法:决策树

这里我们介绍一个新的分类方法:决策树。

它的特点在于会形成多层的“是否判断”:
请添加图片描述

3.1.3. 逻辑回归 vs. 决策树

我们用一个例子来了解一下决策树,顺便借此把它和逻辑回归做一个清晰的分析:

根据用户的学习动力、能力提升意愿、兴趣度、空余时间,判断其是否适合学习AI的课程。假设判断需要4个因素——学习,能力、兴趣、时间。

逻辑回归解法

使用逻辑回归来解决这个问题会需要先建立一个模型:
Z = w 1 × 动力 + w 2 × 时间 + w 3 × 兴趣 + w 4 × 能力 Z = w_1 \times 动力 + w_2 \times 时间 + w_3 \times 兴趣 + w_4 \times 能力 Z=w1×动力+w2×时间+w3×兴趣+w4×能力

  • 其中 w 1 w_1 w1 w 2 w_2 w2 w 3 w_3 w3 w 4 w_4 w4是权重参数

再搭配上逻辑回归的逻辑(Sigmod)函数:
P ( x ) = 1 1 + e − x P(x) = \frac{1}{1 + e^{-x}} P(x)=1+ex1
即可算出 P ( x ) P(x) P(x),也就是适合学习某个课程的概率。

决策树解法

而使用决策树会使用到如下的框架:

yes
no
no
yes
no
yes
no
yes
是否特别想了解或学习AI
适合
是否想提升能力
不适合
是否对AI感兴趣
不适合
每周有1小时学习时间
不适合
适合

总结

逻辑回归的思路是把所有的因子都一次性都给模型,然后让它建立一个方程,预测出对应的概率。

决策树则是进行很多是否(if-else)的判断。

3.1.3. 决策树的定义

决策树是一种对实例进行分类树形结构,通过多层判断区分目标所属类别。

其本质是通过多层判断,从训练数据集中归纳出一组分类规则。

它的优点在于:

  • 计算量小,运算速度快
  • 易于理解,可以清晰地查看各属性的重要性

它的缺点在于:

  • 没有考虑到属性间的相关性
  • 样本类别分布不均时,容易影响模型表现

3.1.4. 决策树求解核心问题

假设给定训练数据集:

D = { ( x 1 , y 1 ) , ( x 2 , y 2 ) , . . . , ( x N , y N ) } D = \{(x_1, y_1), (x_2, y_2), ..., (x_N, y_N)\} D={(x1,y1),(x2,y2),...,(xN,yN)}

其中, x i = ( x i ( 1 ) , x i ( 2 ) , . . . , x i ( m ) ) T x_i = (x_i^{(1)}, x_i^{(2)}, ..., x_i^{(m)})^T xi=(xi(1),xi(2),...,xi(m))T 为输入实例, m m m 为特征个数, y i ∈ { 1 , 2 , 3 , . . . , K } y_i \in \{1,2,3,...,K\} yi{1,2,3,...,K}为类标记, i = 1 , 2 , . . . , N i = 1,2,...,N i=1,2,...,N N N N 为样本容量。

我们的目标是根据训练数据集结构创建一个决策树模型,使它能对实例进行正确的分类。

决策树求解的核心问题就在于特征选择。更具体地说是:每一个节点应该选用哪个特征。

节点之后无非就是yesor的分叉,选择节点本身的特征是比较关键的。

3.1.5. 决策树求解举例

我们还是使用上文的那个简单例子:

根据用户的学习动力、能力提升意愿、兴趣度、空余时间,判断其是否适合学习AI的课程。假设判断需要4个因素——学习,能力、兴趣、时间。

数据如下:

ID 动力 想提升能力 有兴趣 时间 类别
1 一般
2 一般
3 很强
4 一般
5 一般
6 一般
7 一般
8 一般
9 很强
10 很弱

这些数据有些因子有3种分支,有的只有2种:

动力
很强
意愿
很弱
时间

建立决策树我们就得决定是以哪个因子作为顶点,这点非常重要,因为不同的特征决定不同的决策树:是以动力呢?还是以时间呢?亦或者是以其它因子呢?

我们一般有3种方法:

  • ID3(下一篇文章会详细介绍)
  • C4.5
  • CART