决策树:ID3、C4.5、CART算法与Python实现

2023-12-31 17:48

本文主要是介绍决策树:ID3、C4.5、CART算法与Python实现,希望对大家解决编程问题提供一定的参考价值,需要的开发者们随着小编来一起学习吧!

一、决策树的基本概念

决策树(Decision Tree)算法是一类常用的机器学习算法,在分类问题中,决策树算法通过样本中某一些属性的值,将样本划分到不同的类别中。
决策树跟人在做决策的思考方式很想像,先考虑重点选项,不符合则可最优先做出决策。

长得帅
不帅
才华横溢
会认字
教练级
小白
热爱
早鸭子
相亲对象
有才吗?
不去
喜欢羽毛球吗?
不去
喜欢游泳吗?
不去

1. 划分标准

在决定是否去见相亲对象时,该女提出了4个特征来做决策,这些特征在做决策的过程中是存在一定顺序的,首先选择了相貌,可能是因为她是外貌协会,这个通不过就不打算再考虑后续的特征了,决策性较强。
在决策树的算法中,通常用标准来确定特征的先后顺序:信息增益(Information Gain)、增益率(Gain Ratio)和基尼指数(Gini Index)。
首先介绍一下 熵(Entropy) 的概念,熵是度量样本集合纯度最常用的指标,对于包含m个训练样本的数据集:D{(X(1),y(1)),…,(X(m),y(m))}, 在数据集D中,第k类的样本所占的比例为pk,则数据集D的信息熵为:
E n t r o p y ( D ) = − ∑ k = 1 k p k   l o g 2   p k Entropy(D) =- \sum_{k=1}^k p_k\space log_2\space p_k Entropy(D)=k=1kpk log2 pk
其中,k表示数据集D中类别的个数,pk为类别k的数量占数据集总数量的比例。

假定有10个相亲对象,各特征值如下:

相关对象相貌才华羽毛球游泳是否去见
1会识字小白热爱不去
2不帅会识字教练级热爱不去
3不帅会识字小白早鸭子不去
4不帅才华横溢小白热爱不去
5不帅会识字小白热爱不去
6不帅会识字小白早鸭子不去
7才华横溢教练级热爱
8不帅会识字小白早鸭子不去
9不帅会识字小白热爱不去
10不帅会识字教练级早鸭子不去

以如上数据为例,其信息熵为:
E n t r o p y ( D ) = − ∑ k = 1 2 p k   l o g 2   p k = − ( 1 10 l o g 2 1 10 + 9 10 l o g 2 9 10 ) = 0.469 Entropy(D) =- \sum_{k=1}^2 p_k\space log_2\space p_k=-({1 \over 10} log_2{1 \over 10} + {9 \over 10} log_2{9 \over 10}) =0.469 Entropy(D)=k=12pk log2 pk=(10

这篇关于决策树:ID3、C4.5、CART算法与Python实现的文章就介绍到这儿,希望我们推荐的文章对编程师们有所帮助!



http://www.chinasem.cn/article/556742

相关文章

Python中模块graphviz使用入门

《Python中模块graphviz使用入门》graphviz是一个用于创建和操作图形的Python库,本文主要介绍了Python中模块graphviz使用入门,具有一定的参考价值,感兴趣的可以了解一... 目录1.安装2. 基本用法2.1 输出图像格式2.2 图像style设置2.3 属性2.4 子图和聚

Python使用Matplotlib绘制3D曲面图详解

《Python使用Matplotlib绘制3D曲面图详解》:本文主要介绍Python使用Matplotlib绘制3D曲面图,在Python中,使用Matplotlib库绘制3D曲面图可以通过mpl... 目录准备工作绘制简单的 3D 曲面图绘制 3D 曲面图添加线框和透明度控制图形视角Matplotlib

一文教你Python如何快速精准抓取网页数据

《一文教你Python如何快速精准抓取网页数据》这篇文章主要为大家详细介绍了如何利用Python实现快速精准抓取网页数据,文中的示例代码简洁易懂,具有一定的借鉴价值,有需要的小伙伴可以了解下... 目录1. 准备工作2. 基础爬虫实现3. 高级功能扩展3.1 抓取文章详情3.2 保存数据到文件4. 完整示例

使用Python实现IP地址和端口状态检测与监控

《使用Python实现IP地址和端口状态检测与监控》在网络运维和服务器管理中,IP地址和端口的可用性监控是保障业务连续性的基础需求,本文将带你用Python从零打造一个高可用IP监控系统,感兴趣的小伙... 目录概述:为什么需要IP监控系统使用步骤说明1. 环境准备2. 系统部署3. 核心功能配置系统效果展

基于Python打造一个智能单词管理神器

《基于Python打造一个智能单词管理神器》这篇文章主要为大家详细介绍了如何使用Python打造一个智能单词管理神器,从查询到导出的一站式解决,感兴趣的小伙伴可以跟随小编一起学习一下... 目录1. 项目概述:为什么需要这个工具2. 环境搭建与快速入门2.1 环境要求2.2 首次运行配置3. 核心功能使用指

Python实现微信自动锁定工具

《Python实现微信自动锁定工具》在数字化办公时代,微信已成为职场沟通的重要工具,但临时离开时忘记锁屏可能导致敏感信息泄露,下面我们就来看看如何使用Python打造一个微信自动锁定工具吧... 目录引言:当微信隐私遇到自动化守护效果展示核心功能全景图技术亮点深度解析1. 无操作检测引擎2. 微信路径智能获

Python中pywin32 常用窗口操作的实现

《Python中pywin32常用窗口操作的实现》本文主要介绍了Python中pywin32常用窗口操作的实现,pywin32主要的作用是供Python开发者快速调用WindowsAPI的一个... 目录获取窗口句柄获取最前端窗口句柄获取指定坐标处的窗口根据窗口的完整标题匹配获取句柄根据窗口的类别匹配获取句

利用Python打造一个Excel记账模板

《利用Python打造一个Excel记账模板》这篇文章主要为大家详细介绍了如何使用Python打造一个超实用的Excel记账模板,可以帮助大家高效管理财务,迈向财富自由之路,感兴趣的小伙伴快跟随小编一... 目录设置预算百分比超支标红预警记账模板功能介绍基础记账预算管理可视化分析摸鱼时间理财法碎片时间利用财

在 Spring Boot 中实现异常处理最佳实践

《在SpringBoot中实现异常处理最佳实践》本文介绍如何在SpringBoot中实现异常处理,涵盖核心概念、实现方法、与先前查询的集成、性能分析、常见问题和最佳实践,感兴趣的朋友一起看看吧... 目录一、Spring Boot 异常处理的背景与核心概念1.1 为什么需要异常处理?1.2 Spring B

Python中的Walrus运算符分析示例详解

《Python中的Walrus运算符分析示例详解》Python中的Walrus运算符(:=)是Python3.8引入的一个新特性,允许在表达式中同时赋值和返回值,它的核心作用是减少重复计算,提升代码简... 目录1. 在循环中避免重复计算2. 在条件判断中同时赋值变量3. 在列表推导式或字典推导式中简化逻辑