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的算法流程:

DEMO示例

算法测试:

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

最新文章

  1. 理解CSS
  2. 我和linux的第二十二天
  3. [转]sed命令详解
  4. (C++) LNK2019: unresolved external symbol.
  5. 选择排序(java版)
  6. RecContentType有哪些
  7. oracle 高版本导出低版本数据库并且导入到低版本数据的方法
  8. [Leetcode] Find the minimum in rotated sorted array
  9. css3部分属性兼容性别扭写法(因为很多我就叫他别扭了,希望全面早早支持css3吧)
  10. Neo4j学习笔记(2)——数据索引
  11. webpack学习笔记——打包后直接访问页面,图片路径错误
  12. vim中自动格式化代码
  13. eclipse 部署项目
  14. 20165223 Linux安装及命令入门
  15. Java - "JUC线程池" 线程状态与拒绝策略源码分析
  16. ASP.NET Web API 2:创建API帮助页面
  17. thinkphp 5.0如何实现自定义404(异常处理)页面
  18. Ubuntu 下iscsi initiator的安装与使用
  19. [NOIp2018]货币系统 背包
  20. netif_start_queue/netif_wake_queue/netif_stop_queue

热门文章

  1. 03.SQLServer性能优化之---存储优化系列
  2. Markdown 图片助手-MarkdownPicPicker
  3. 从0开始搭建SQL Server AlwaysOn 第三篇(配置AlwaysOn)
  4. 数据库优化案例——————某市中心医院HIS系统
  5. 微信开发 :WeixinPayInfoCollection尚未注册Mch 问题解决
  6. CentOS:Yum源的配置
  7. 分享一个MySQL分库分表备份脚本(原)
  8. CentOS下Zabbix安装部署及汉化
  9. POJ1743 Musical Theme [后缀数组]
  10. 2DToolkit官方文档中文版打地鼠教程(三):Sprite Collections 精灵集合