C4.5算法学习

C4.5属于决策树算法的分类树决策树更是常见的机器学习方法,可以帮助我们解决分类与回归两类问题。以决策树作为起点的原因很简单,因为它非常符合我们人类处理问题的方法,而且逻辑清晰,可解释性好。从婴儿到长者,我们每天都使用无数次!

决策树的总体流程;

总体流程

分而治之(devide and conquer)

自根结点的递归过程

从每一个中间结点寻找一个划分(split and test)的属性

三种停止条件:

当前结点包含的样本属于同一类别,无需划分

当前属性集为空,或是所有样本在所有属性值上取值相同,无法划分

当前结点包含的样本集合为空,不能划分

核心数学概念:熵

信息熵(entropy)是度量样本集合“纯度”最常用的一种指标

 C4.5算法流程

C4.5算法优缺点分析

优点:

(1)通过信息增益率选择分裂属性,克服了ID3算法中通过信息增益倾向于选择拥有多个属性值的属性作为分裂属性的不足;

(2)能够处理离散型和连续型的属性类型,即将连续型的属性进行离散化处理;

(3)构造决策树之后进行剪枝操作;

(4)能够处理具有缺失属性值的训练数据。

缺点:

(1)算法的计算效率较低,特别是针对含有连续属性值的训练样本时表现的尤为突出。

(2)算法在选择分裂属性时没有考虑到条件属性间的相关性,只计算数据集中每一个条件属性与决策属性之间的期望信息,有可能影响到属性选择的正确性。

算法详解:https://blog.csdn.net/zjsghww/article/details/51638126

算法程序

while(当前节点不纯)
1.计算当前节点的类别熵Info(D)(以类别取值计算)

2.计算当前节点的属性熵info(Ai)(按照当前属性取值下的类别取值计算)
3.计算各个属性的信息增益Gain(Ai) = Info(D)-info(Ai)

4.计算各个属性的分类信息度量H(Ai)(按照属性取值计算)

5.计算各个属性的信息增益率 IGR = Gain(Ai)/H(Ai)

and while

当前节点设置为叶子节点

原文地址:https://www.cnblogs.com/normaltang/p/11484771.html

时间: 2024-10-14 05:54:54

C4.5算法学习的相关文章

决策树之C4.5算法学习

决策树<Decision Tree>是一种预测模型,它由决策节点,分支和叶节点三个部分组成.决策节点代表一个样本测试,通常代表待分类样本的某个属性,在该属性上的不同测试结果代表一个分支:分支表示某个决策节点的不同取值.每个叶节点代表一种可能的分类结果. 使用训练集对决策树算法进行训练,得到一个决策树模型,利用模型对未知样本(类别未知)的类别判断时,从决策树根节点开始,从上到下搜索,直到沿某分支到达叶节点,叶节点的类别标签就是该未知样本的类别. 网上有个例子可以很形象的说明利用决策树决策的过程(

02-22 决策树C4.5算法

目录 决策树C4.5算法 一.决策树C4.5算法学习目标 二.决策树C4.5算法详解 2.1 连续特征值离散化 2.2 信息增益比 2.3 剪枝 2.4 特征值加权 三.决策树C4.5算法流程 3.1 输入 3.2 输出 3.3 流程 四.决策树C4.5算法的优缺点 4.1 优点 4.2 缺点 五.小结 更新.更全的<机器学习>的更新网站,更有python.go.数据结构与算法.爬虫.人工智能教学等着你:https://www.cnblogs.com/nickchen121/ 决策树C4.5算

数据挖掘算法学习(五)C4.5

C4.5分类决策树算法,其核心算法是ID3算法.目前应用在临床决策.生产制造.文档分析.生物信息学.空间数据建模等领域.算法的输入是带类标的数据,输出是树形的决策规则. C4.5比ID3的改进: 1)用信息增益率来选择属性,克服了用信息增益选择属性时偏向选择取值多的属性的不足: 2)在树构造过程中进行剪枝: 3)能够完成对连续属性的离散化处理: 4)能够对不完整数据进行处理. C4.5算法优点:产生的分类规则易于理解,准确率较高. C4.5算法缺点:在构造树的过程中,需要对数据集进行多次的顺序扫

决策分类树算法之ID3,C4.5算法系列

一.引言 在最开始的时候,我本来准备学习的是C4.5算法,后来发现C4.5算法的核心还是ID3算法,所以又辗转回到学习ID3算法了,因为C4.5是他的一个改进.至于是什么改进,在后面的描述中我会提到. 二.ID3算法 ID3算法是一种分类决策树算法.他通过一系列的规则,将数据最后分类成决策树的形式.分类的根据是用到了熵这个概念.熵在物理这门学科中就已经出现过,表示是一个物质的稳定度,在这里就是分类的纯度的一个概念.公式为: 在ID3算法中,是采用Gain信息增益来作为一个分类的判定标准的.他的定

C4.5算法总结

C4.5是一系列用在机器学习和数据挖掘的分类问题中的算法.它的目标是监督学习:给定一个数据集,其中的每一个元组都能用一组属性值来描述,每一个元组属于一个互斥的类别中的某一类.C4.5的目标是通过学习,找到一个从属性值到类别的映射关系,并且这个映射能用于对新的类别未知的实体进行分类. C4.5由J.Ross Quinlan在ID3的基础上提出的.ID3算法用来构造决策树.决策树是一种类似流程图的树结构,其中每个内部节点(非树叶节点)表示在一个属性上的测试,每个分枝代表一个测试输出,而每个树叶节点存

C4.5算法(摘抄)

1. C4.5算法简介 C4.5是一系列用在机器学习和数据挖掘的分类问题中的算法.它的目标是监督学习:给定一个数据集,其中的每一个元组都能用一组属性值来描述,每一个元组属于一个互斥的类别中的某一类.C4.5的目标是通过学习,找到一个从属性值到类别的映射关系,并且这个映射能用于对新的类别未知的实体进行分类. C4.5由J.Ross Quinlan在ID3的基础上提出的.ID3算法用来构造决策树.决策树是一种类似流程图的树结构,其中每个内部节点(非树叶节点)表示在一个属性上的测试,每个分枝代表一个测

C4.5算法(一)代码实现

入门学习机器学习的十大算法,第一站就是C4.5算法.C4.5是一种决策树算法,属于监督学习.先给一个样本集,从而建立一棵决策树,然后根据这个决策树来对后续的数据做决策. 作为没有相关背景知识和系统学习过的人,当然要边学边记啦.C4.5算法我的学习步骤是这样: step 1: 了解清楚算法的逻辑,以及编程实现 step 2: 其中对连续变量的离散化处理 step 3: C4.5的剪枝 step 4: C4.5算法的spark实现 因为个人认为C4.5算法中比较难和重要的两个点就是对连续变量的离散化

算法学习 - 表达树的建立(后缀表达式法),树的先序遍历,中序遍历,后序遍历

表达树就是根据后缀表达式来建立一个二叉树. 这个二叉树的每个叶子节点就是数,真祖先都是操作符. 通过栈来建立的,所以这里也会有很多栈的操作. 树的先序遍历,中序遍历,后序遍历的概念我就不讲了,不会的自行百度,不然也看不懂我的代码. 下面是代码: // // main.cpp // expressionTree // // Created by Alps on 14-7-29. // Copyright (c) 2014年 chen. All rights reserved. // #includ

我的算法学习之路

关于 严格来说,本文题目应该是我的数据结构和算法学习之路,但这个写法实在太绕口--况且CS中的算法往往暗指数据结构和算法(例如算法导论指的实际上是数据结构和算法导论),所以我认为本文题目是合理的. 这篇文章讲了什么? 我这些年学习数据结构和算法的总结. 一些不错的算法书籍和教程. 算法的重要性. 初学 第一次接触数据结构是在大二下学期的数据结构课程.然而这门课程并没有让我入门--当时自己正忙于倒卖各种MP3和耳机,对于这些课程根本就不屑一顾--反正最后考试划个重点也能过,于是这门整个计算机专业本