跟我一起数据挖掘(23)——C4.5

简介: C4.5简介 C4.5是一系列用在机器学习和数据挖掘的分类问题中的算法。它的目标是监督学习:给定一个数据集,其中的每一个元组都能用一组属性值来描述,每一个元组属于一个互斥的类别中的某一类。C4.5的目标是通过学习,找到一个从属性值到类别的映射关系,并且这个映射能用于对新的类别未知的实体进行分类。

C4.5简介

C4.5是一系列用在机器学习和数据挖掘的分类问题中的算法。它的目标是监督学习:给定一个数据集,其中的每一个元组都能用一组属性值来描述,每一个元组属于一个互斥的类别中的某一类。C4.5的目标是通过学习,找到一个从属性值到类别的映射关系,并且这个映射能用于对新的类别未知的实体进行分类。

由于ID3算法在实际应用中存在一些问题,于是Quinlan提出了C4.5算法,严格上说C4.5只能是ID3的一个改进算法。

C4.5算法继承了ID3算法的优点,并在以下几方面对ID3算法进行了改进:

1) 用信息增益率来选择属性,克服了用信息增益选择属性时偏向选择取值多的属性的不足;

2) 在树构造过程中进行剪枝;

3) 能够完成对连续属性的离散化处理;

4) 能够对不完整数据进行处理。

C4.5算法有如下优点:产生的分类规则易于理解,准确率较高。其缺点是:在构造树的过程中,需要对数据集进行多次的顺序扫描和排序,因而导致算法的低效。此外,C4.5只适合于能够驻留于内存的数据集,当训练集大得无法在内存容纳时程序无法运行。

C4.5的分类器示意图

我们以一个很典型被引用过多次的训练数据集D为例,来说明C4.5算法如何计算信息增益并选择决策结点。

无标题

由其中四个属性来决定是否进行活动还是取消活动。上面的训练集有4个属性,即属性集合A={OUTLOOK, TEMPERATURE, HUMIDITY, WINDY};而类标签有2个,即类标签集合C={Yes, No},分别表示适合户外运动和不适合户外运动,其实是一个二分类问题。

C4.5的优缺点及算法流程

C4.5算法的优点是:产生的分类规则易于理解,准确率较高。

C4.5算法的缺点是:在构造树的过程中,需要对数据集进行多次的顺序扫描和排序,因而导致算法的低效。

C4.5的算法流程:

image

DEMO示例

算法测试:

https://github.com/zongtui/zongtui-Algorithm-test

目录
相关文章
|
人工智能 算法 数据可视化
K-means聚类算法一文详解+Python代码实例
K-means聚类算法一文详解+Python代码实例
8275 0
K-means聚类算法一文详解+Python代码实例
手机支持北斗系统,该怎么设置?
北斗系统主要提供了导航、定位和授时三大功能,以解决我们‘现在在哪里’和‘现在是什么时间’这两个基本问题。
2238 2
|
人工智能 前端开发 程序员
通义灵码2.0深度评测:当AI程序员握住我的手写代码
体验通义灵码2.0 AI程序员:Deepseek智能编码的魅力
716 4
|
机器学习/深度学习 Shell Linux
安装Code-Server 4.0.1 的一些经验
在服务器上面安装自己的Code-Server,实现随时随地在任何终端任何地点,只要客户端的浏览器支持而且有网()就可以获得统一的编程体验
安装Code-Server 4.0.1 的一些经验
|
NoSQL PHP Redis
Mac PHP安装Redis扩展
php安装redis的扩展 采用pecl命令进行安装; pecl命令,在使用brew 安装php时,已经为我们安装上了,这里我们直接使用即可。 我们先进入php的bin目录看下命令是否存在,对应路径如下: cd /opt/homebrew/Cellar/php@7.3/7.3.32 这里的7.3为我通过brew install [php@7.3]安装的php具体版本号,大家可以通过ls命令查看文件夹下是否存在pecl命令
1829 0
|
存储 安全 网络安全
静态IP与动态IP的使用区别
静态IP与动态IP主要区别在于分配方式与稳定性。静态IP固定不变,适用于远程访问、服务器及需要稳定网络服务的场景,但可能增加安全风险和成本。动态IP自动分配,变化无常,利于大规模网络和移动设备,提高安全性和效率,通常无需额外费用。选择取决于具体需求。
|
存储 自然语言处理 NoSQL
深入解析Elasticsearch的内部数据结构和机制:行存储、列存储与倒排索引之列存(二)
深入解析Elasticsearch的内部数据结构和机制:行存储、列存储与倒排索引之列存(二)
|
JSON NoSQL MongoDB
Compass
【6月更文挑战第8天】Compass
725 9
|
监控
node使用npm一句命令停止某个端口号 xl_close_port
一命令停止某一个端口号,再也不怕端口号被占用了..   1、插件背景     开启项目的时候,跑不起来了?     很多时候的原因就是,依赖版本,依赖的包未安装,再就是端口号被占用     例如:       这时候,我们做法就是:     1、到命令行去找到端口对应到进程号,然后停止这个进程     2、然后就是打开进程监控,在监控中找到对应端口的应用,关闭它。
3565 0

热门文章

最新文章