文档章节

python 数据分析算法(决策树)

o
 osc_fmg49rzg
发布于 2019/03/21 10:08
字数 1062
阅读 66
收藏 0

决策树基于时间的各个判断条件,由各个节点组成,类似一颗树从树的顶端,然后分支,再分支,每个节点由响的因素组成

决策树有两个阶段,构造和剪枝

构造: 构造的过程就是选择什么属性作为节点构造,通常有三种节点

1. 根节点:就是树的最顶端,最开始那个节点  (选择哪些属性作为根节点)

2. 内部节点: 就是树中间的那些节点    (选择哪些属性作为子节点)

3. 叶节点: 就是树最底部的节点,也就是决策的结果(什么时候停止并得到目标状态,叶节点)

剪枝: 实现不需要太多的判断,同样可以得到不错的结果,防止过拟合现象发生

过拟合百度百科直观了解一下(https://baike.baidu.com/item/%E8%BF%87%E6%8B%9F%E5%90%88/3359778)

简单介绍就是为了得到一致假设而使假设变得过度严格称为过拟合。

  预剪枝是在决策树构造前进行剪枝,在构造过程中对节点进行评估,如果某个节点的划分,在验证集中不能带来准确性的提升,划分则无意义当成叶节点不做划分

  后剪枝是在生成决策树后再进行剪枝,通常会从决策树的叶节点开始,逐层向上对每个节点进行评估,减掉与保留差准确性差别不大,或者减掉改节点字数,能在验证集中带来准确性提升,就可以剪枝。

信息熵: 表示了信息的不确定度,下面是计算公式,信息熵越大纯度越低

当不确定性越大,包含的信息量就越大,信息熵就越高

(log 函数图像也可以理解 ,下面函数0到1 之间对应的是概率,当概率接近1的时候,说明纯度很高(概率),纵坐标值很小,

信息熵很小,当概率接近0的时候,纯度很低,信息熵就很大了,注意,这里是负值,公式前面也有个负号,然后合并就为正)

 

 

信息增益:ID3 算法   指划分可以带来纯度的提高,信息熵的下降,父节点的信息熵减去所有子节点的信息熵,计算过程中,会计算子节点归一化的信息熵   下面是计算公式

公式中D是父亲节点,Di 是子节点,Gain(D,a) 中的a作为D节点的属性选择

归一化子节点的信息熵,就是公式中的Di/D    信息增益最大可以作为父亲节点,再重复进行判断到最后得出

C4.5算法

1 采用信息增益率   信息增益率 = 信息增益/属性熵    信息增益的同事,属性熵也会变大

2 采用悲观剪枝  ID3 中容易产生过拟合现象, 这个方法可以提升决策树的泛华能力,属于后剪枝的一种,比较剪枝前后这个节点的分类错误率来觉得是否对其进行剪枝

3 离散化处理连续属性   C4.5可以处理连续属性的情况,对连续属性进行离散化处理,就是对值进行计算,而不是分为几等分(高,中,底) C4.5   选择具有最高信息增益的划分所对应的阈值

4 处理缺失值  C4.5 也可以处理,假如数据集存在较少的缺失值,  对子节点归一化计算信息增益,然后计算信息增益率,由于有对应的缺失值,所以信息增益率*占权比重,(比如7个数据,少了一个*6/7)所以在属性确实的情况下也可以计算信息增益

ID3和C4.5比较,  ID3算法简单,确定是对噪声敏感,少量错误会产生决策树的错误,C4.5 进行了改进,长上面可以看出,但是C4.5 需要对数据集进行多次扫描,算法效率相对较低

 

o
粉丝 0
博文 500
码字总数 0
作品 0
私信 提问
加载中
请先登录后再评论。

暂无文章

为什么数组[idx ++] + =“a”在Java 8中增加一次idx,在Java 9和10中增加两次?

问题: For a challenge, a fellow code golfer wrote the following code : 对于挑战, 一位代码高尔夫球手 编写了以下代码 : import java.util.*;public class Main { public static ......

富含淀粉
20分钟前
11
0
这三个博弈论新趋势,正深刻影响深度强化学习道翰天琼认知智能未来机器人接口API

博弈论在现代人工智能(AI)解决方案中正扮演着至关重要的角色,深度强化学习(DRL)正是积极拥抱博弈论的头等公民。 从单智能体程序到复杂的多智能体深度强化学习环境,博弈论原理贯穿了 AI...

jackli2020
21分钟前
5
0
Web右键菜单实现思路

需要的知识 阻止事件冒泡 event.stopPropagation() 阻止默认行为 event.preventDefault() CSS定位 事件处理程序 oncontextmenu 思路 预先编写好右键菜单的DOM 在需要右键菜单的DOM元素上添加...

AioDiage
22分钟前
0
0
点击提交form

<form action="/search" id="search_form"> <input type="text" name="keywords" value="" placeholder="Furniture Handles" class="jhser" /> <span class="serBtn" onclick="docu......

子枫Eric
35分钟前
18
0
oracle查询、修改、删除、插入语句

表结构如下 create table test ( id int, xm varchar2(5), age varchar2(3) ) 内有数据格式 id xm age 1 张三 14 2 李四 20 查询语句 select * from test;#*号为返回全部字段 select id,xm f......

椰子牛奶
38分钟前
13
0

没有更多内容

加载失败,请刷新页面

加载更多

返回顶部
顶部