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

原文地址:https://www.cnblogs.com/pythonzwd/p/10561566.html

时间: 2024-10-16 19:08:37

python 数据分析算法(决策树)的相关文章

数据分析算法

数据分析算法 决策树 决策树用于对数据集中的记录进行分类. 假设每条记录都含有若干条属性,决策树根据属性进行分类. ID3算法 如何决定选取哪条属性来进行划分? 判断条件是根据该属性划分后数据集的信息熵最小(信息熵越小表明数据越整齐),也就是熵差值最大. 假设A属性共有n个取值,按照A划分后将获得n个分支,每个分支里的子数据集都删除了A属性. 递归地对分支里的数据集实施划分.最终达到不可分或者所有数据都是相同值为止. 这将生成一颗决策树.利用决策树的叶子节点进行分类 c4.5算法 ID3的扩展,

【机器学习算法-python实现】决策树-Decision tree(1) 信息熵划分数据集

(转载请注明出处:http://blog.csdn.net/buptgshengod) 1.背景 决策书算法是一种逼近离散数值的分类算法,思路比較简单,并且准确率较高.国际权威的学术组织,数据挖掘国际会议ICDM (the IEEE International Conference on Data Mining)在2006年12月评选出了数据挖掘领域的十大经典算法中,C4.5算法排名第一.C4.5算法是机器学习算法中的一种分类决策树算法,其核心算法是ID3算法. 算法的主要思想就是将数据集依照特

【机器学习算法-python实现】决策树-Decision tree(2) 决策树的实现

(转载请注明出处:http://blog.csdn.net/buptgshengod) 1.背景 接着上一节说,没看到请先看一下上一节关于数据集的划分数据集划分.如今我们得到了每一个特征值得信息熵增益,我们依照信息熵增益的从大到校的顺序,安排排列为二叉树的节点.数据集和二叉树的图见下. (二叉树的图是用python的matplotlib库画出来的) 数据集: 决策树: 2.代码实现部分 由于上一节,我们通过chooseBestFeatureToSplit函数已经能够确定当前数据集中的信息熵最大的

python入门、python数据分析(numpy、matplotlib、sklearn等)tensflow、爬虫、机器学习、深度学习、自然语言处理、数据挖掘、机器学习项目实战、python全栈、PHP、java、java web、openCV、hadoop、matlab、android、数据结构算法和刷题等教学视频

扫描二维码加好友购买视频,绝对优惠,谢谢支持. python入门和进阶熟练教学视频 入门: 进阶: python数据分析教学视频 python数据分析晋级班 tensorflow教程及实战 python爬虫教学 机器学习课程 深度学习课程 机器学习项目班 自然语言处理教学视频 python全栈教学视频 数据挖掘视频 PHP教学视频 java java web openCV教学视频 Hadoop教学视频 matlab教学 andriod教学视频 数据结构算法班及面试班 原文地址:https://w

基于Python数据分析与机器学习案例实战教程

课程--基于Python数据分析与机器学习案例实战教程 分享网盘下载--https://pan.baidu.com/s/1jHSaRAY 密码: xk37 课程背景基于数据分析与机器学习领域,使用python作为课程的实战语言,随着大数据与人工智能领域日益火爆,数据分析和机器学习建模成了当下最热门的技术,课程旨在帮助同学们快速掌握python数据分析包以及经典机器学习算法并通过对真实数据集分析进行实战演示. 课程风格通俗易懂,基于真实数据集案例实战. 主体课程分成三个大模块 (1)python数

Python数据分析 从入门到精通 视频教程 教学视频

课程简介: ----------------------课程目录------------------------------ Python数据分析篇第一部分. Python基础第一课:Python的概览--Python的基本介绍.安装与基本语法.变量类型与运算符第二课:了解Python流程控制--条件.循环语句与其他语句第三课:常用函数--函数的定义与使用方法.主要内置函数的介绍第四课:NumPy基础--数组的创建.组合与分割 第二部分 数据分析的准备第五课:了解数据--数据加载.储存与文件格式

Python KNN算法

机器学习新手,接触的是<机器学习实战>这本书,感觉书中描述简单易懂,但对于python语言不熟悉的我,也有很大的空间.今天学习的是k-近邻算法. 1. 简述机器学习 在日常生活中,人们很难直接从原始数据本身获得所需信息.而机器学习就是把生活中无序的数据转换成有用的信息.例如,对于垃圾邮件的检测,侦测一个单词是否存在并没有多大的作用,然而当某几个特定单词同时出现时,再辅以考虑邮件的长度及其他因素,人们就可以更准确地判定该邮件是否为垃圾邮件. 机器学习分为监督学习和无监督学习,其中: (1)监督学

python 数据分析,R语言与数据挖掘|学习资料分享 05

python 数据分析 为什么选 python 做数据分析? 在数据分析和交互.探索性计算以及数据可视化等方面,Python 将不可避免地接近于其他开源和商业的领域特定编程语言/工具,如R.MATLAB.SAS.Stata等.近年来,由于 Python 有不断改良的库(主要是 pandas),使其成为数据处理任务的一大替代方案.结合其在通用编程方面的强大实力,我们完全可以只使用 Python 这一种语言去构建以数据为中心的应用程序. R语言是由 AT&T 贝尔实验室开发的一种用来进行数据探索.统

Python神经网络算法与深度学习视频教程人工智能算法机器学习实战视频教程

38套大数据,云计算,架构,数据分析师,Hadoop,Spark,Storm,Kafka,人工智能,机器学习,深度学习,项目实战视频教程 视频课程包含: 38套大数据和人工智能精品高级课包含:大数据,云计算,架构,数据挖掘实战,实时推荐系统实战,电视收视率项目实战,实时流统计项目实战,离线电商分析项目实战,Spark大型项目实战用户分析,智能客户系统项目实战,Linux基础,Hadoop,Spark,Storm,Docker,Mapreduce,Kafka,Flume,OpenStack,Hiv