python 数据分析算法(决策树)
决策树基于时间的各个判断条件,由各个节点组成,类似一颗树从树的顶端,然后分支,再分支,每个节点由响的因素组成
决策树有两个阶段,构造和剪枝
构造: 构造的过程就是选择什么属性作为节点构造,通常有三种节点
1. 根节点:就是树的最顶端,最开始那个节点 (选择哪些属性作为根节点)
2. 内部节点: 就是树中间的那些节点 (选择哪些属性作为子节点)
3. 叶节点: 就是树最底部的节点,也就是决策的结果(什么时候停止并得到目标状态,叶节点)
剪枝: 实现不需要太多的判断,同样可以得到不错的结果,防止过拟合现象发生
过拟合百度百科直观了解一下(https://baike.baidu.com/item/%E8%BF%87%E6%8B%9F%E5%90%88/3359778)
简单介绍就是为了得到一致假设而使假设变得过度严格称为过拟合。
预剪枝是在决策树构造前进行剪枝,在构造过程中对节点进行评估,如果某个节点的划分,在验证集中不能带来准确性的提升,划分则无意义当成叶节点不做划分
后剪枝是在生成决策树后再进行剪枝,通常会从决策树的叶节点开始,逐层向上对每个节点进行评估,减掉与保留差准确性差别不大,或者减掉改节点字数,能在验证集中带来准确性提升,就可以剪枝。
信息熵: 表示了信息的不确定度,下面是计算公式,信息熵越大纯度越低
当不确定性越大,包含的信息量就越大,信息熵就越高

信息增益: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 需要对数据集进行多次扫描,算法效率相对较低

python 数据分析算法(决策树)的更多相关文章
- python数据分析算法(决策树2)CART算法
CART(Classification And Regression Tree),分类回归树,,决策树可以分为ID3算法,C4.5算法,和CART算法.ID3算法,C4.5算法可以生成二叉树或者多叉树 ...
- Python机器学习算法 — 决策树(Decision Tree)
决策树 -- 简介 决策树(decision tree)一般都是自上而下的来生成的.每个决策或事件(即自然状态)都可能引出两个或多个事件,导致不同的结果,把这种决策分支画成图形很像一棵 ...
- Python数据挖掘之决策树DTC数据分析及鸢尾数据集分析
Python数据挖掘之决策树DTC数据分析及鸢尾数据集分析 今天主要讲述的内容是关于决策树的知识,主要包括以下内容:1.分类及决策树算法介绍2.鸢尾花卉数据集介绍3.决策树实现鸢尾数据集分析.希望这篇 ...
- 【读书笔记与思考】《python数据分析与挖掘实战》-张良均
[读书笔记与思考]<python数据分析与挖掘实战>-张良均 最近看一些机器学习相关书籍,主要是为了拓宽视野.在阅读这本书前最吸引我的地方是实战篇,我通读全书后给我印象最深的还是实战篇.基 ...
- Python数据分析【炼数成金15周完整课程】
点击了解更多Python课程>>> Python数据分析[炼数成金15周完整课程] 课程简介: Python是一种面向对象.直译式计算机程序设计语言.也是一种功能强大而完善的通用型语 ...
- [Python数据挖掘]第2章、Python数据分析简介
<Python数据分析与挖掘实战>的数据和代码,可从“泰迪杯”竞赛网站(http://www.tipdm.org/tj/661.jhtml)下载获得 1.Python数据结构 2.Nump ...
- 《Python数据分析与挖掘实战》读书笔记
大致扫了一遍,具体的代码基本都没看了,毕竟我还不懂python,并且在手机端的排版,这些代码没法看. 有收获,至少了解到以下几点: 一. Python的语法挺有意思的 有一些类似于JavaSc ...
- (python数据分析)第03章 Python的数据结构、函数和文件
本章讨论Python的内置功能,这些功能本书会用到很多.虽然扩展库,比如pandas和Numpy,使处理大数据集很方便,但它们是和Python的内置数据处理工具一同使用的. 我们会从Python最基础 ...
- python数据分析系列(1)
目录 python基础 python语言基础 Ipython的一些特性 Python语法基础 Python控制流 lambda表达式 Python的数据结构 元组 列表 字典 集合 列表.集合.字典推 ...
随机推荐
- vcenter新建虚拟机centos7作为虚拟机模板
网卡选项 适配器类型算则E1000 Remote console选项 电源选项 加密 打开电源,连接iso安装系统 按一下tab键,修改网卡为eth0 点击Tab,打开kernel启动选项后,增加ne ...
- 【原创】大叔算法分享(5)聚类算法DBSCAN
一 简介 DBSCAN:Density-based spatial clustering of applications with noise is a data clustering algorit ...
- kafka_2.11-2.1.0测试
kafka测试启动创建topic ./kafka-topics.sh --create --zookeeper dip005:2181,dip006:2181,dip007 --replication ...
- Vuex数据可视化
参考:https://gitee.com/hjm100/codes/46towe9v28a1bxfqhc7kl34 Vuex虽然能存储数据,但是一刷新就没有了,如果要实现数据持久化,就需要用vuex- ...
- AD证书导入文档(单向认证)
AD证书或者SSL证书导入的方法步骤(在root用户下操作) 1. 将证书命名为AD-PRO.cer,并确定证书的颁发. 2. 将/app/ad_cert/keystore下的原有证书删除掉和文件 ...
- sass进阶—变量运算
/*变量操作 (两个变量之间的运算符需要用空格隔开,否则会报错.)==,!= <,>,<=,>=+,-,*,/,% */ $width1:50px;$width2:100px; ...
- SQL数据库分页OFFSET FETCH NEXT
SELECT * FROM dbo.UMS_System_Menu AS USM ORDER BY USM.MenuCode OFFSET ROW --跳过前10条 ROW ONLY --取20条
- 一、ESP8266入门(基于LUA开发)
序 一入坑便停不下来... 还挺有意思的哈,233,,,, 资料杂,自己一个一个去找确实浪费了不少时间,而且大多还都是英文的,需要硬着头皮看. 这次实践入门,更是对英语的重要确信无疑.Github必须 ...
- Spark安装部署| 运行模式
Spark 一种基于内存的快速.通用.可扩展的大数据分析引擎: 内置模块: Spark Core(封装了rdd.任务调度.内存管理.错误恢复.与存储系统交互): Spark SQL(处理结构化数据). ...
- java实现哈夫曼编码
java实现哈夫曼编码 哈夫曼树 既然是学习哈夫曼编码,我们首先需要知道什么是哈夫曼树:给定n个权值作为n个叶子结点,构造一棵二叉树,若带权路径长度达到最小,称这样的二叉树为最优二叉树,也称为哈夫 ...