【数据挖掘】监督学习---决策树

本文深入解析决策树算法,包括ID3、C4.5和CART的原理与Python实现。探讨决策树构建过程,特征选择,剪枝策略,以及算法优缺点。适合初学者和进阶者学习。

决策树定义

决策树及对某个数据集选择某个特征进行分裂,由此对数据进行分类
在这里插入图片描述
在这里插入图片描述

决策树构建过程

特征选择:从训练数据的特征中选择一个特征作为当前节点的分裂标准
决策树生成:根据所选特征评估标准,从上之下递归地生成子节点,直到数据集不可分则停止决策树生长
剪枝:如果决策树层次过于深,就会造成过拟合,需要剪枝来缩小树的结构和规模(包括预剪枝和后剪枝)
注意:决策树的生成是一个递归地过程,在决策树的基本算法中,有三种情况会导致递归返回:
1.当前节点包含的样本权属于同一类别,不需要划分了
2.当前属性集为空,或是所有样本在所有属性上取值相同,无法划分
3.当前节点包含的样本集为空不能划分

决策树算法

ID3 通过信息增益
C4.5 通过信息增益率
CART 通过基尼系数
  • ID3
    以信息论为基础,以信息熵和信息增益为衡量标准,从而实现对数据的归纳分类;
    核心思想:以信息增益度量属性选择,选择分裂后信息增益最大的属性进行分裂
信息熵 在这里插入图片描述
信息增益 在这里插入图片描述

实例:
在这里插入图片描述
在以上案例中,样本个数:14 ;不购买的样本数:5;购买的样本数:9
第一步:计算数据集的信息熵
在这里插入图片描述
第二步确定第一次分裂的属性---->计算每个属性的信息增益,比较大小:

按年龄 在这里插入图片描述
按收入 在这里插入图片描述
按学生 在这里插入图片描述
按信用 在这里插入图片描述
最后比较信息增益 结果第一次按照年龄进行分裂

第三步确定第二次分裂的属性:
分裂过程与第一次相同,基于年龄的数据集之上
在这里插入图片描述
在这里插入图片描述
直到最后节点只有同类的数据就停止分裂

决策树优点 概念简单,计算复杂度不高,可解释性强,输出结果易于理解;数据的准备工作简单;对中间值的缺失不敏感;应用范围广
决策树的缺点 可能会产生过度匹配的问题;信息缺失时处理起来比较困难;信息增益来度量会偏向于取值较多的属性作为分类属性
  • C4.5
    ID3算法,属性只能是离散的,C4.5是对ID3算法的优化
改进1 用信息增益率代替信息增益来选择属性,克服了用信息增益选择属性时偏向选择取值多的属性不足:在这里插入图片描述
改进2 能够完成对连续值属性的离散化处理
改进3 能处理属性值缺失的情况
改进4 在决策树构造完成之后进行剪枝:预剪枝:事先设定需要生成几个层次的树,在完全正确分类训练集之后就停止树的生长;后剪枝:先让整棵树生成,然后再剪枝

实例:
在这里插入图片描述
在这里插入图片描述

  • CART
    ID3只适用于分类,通过每一列的信息增益
    C4.5通过每一列的信息增益率
    而CART通过分类之后的纯度-----基尼系数
    分裂的目的是为了能够让数据变纯,使决策树输出的结果更接近真实值,如果是分类树,CART采用GINI值衡量节点纯度,如果是回归树,采用样本方差衡量节点纯度,节点越不纯,节点分类或者预测的效果就越差;
    CART既可以做分类又可以做回归,是一颗二叉树
    在这里插入图片描述
    实例:
    在这里插入图片描述
按有房情况 在这里插入图片描述 在这里插入图片描述
按婚姻状况 在这里插入图片描述在这里插入图片描述

连续值的分裂:
在这里插入图片描述

ID3python实现

# -*- coding: utf-8 -*-
"""
Created on Sat Mar  7 11:58:40 2020

@author: DELL
"""
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值