文档章节

决策树

Galy_绿
 Galy_绿
发布于 2016/07/11 00:24
字数 993
阅读 56
收藏 0
点赞 0
评论 0

//个人读书笔记,后期会进行修正
决策树思想来源:每个人大脑中都有类似if-then这样的逻辑判断。在程序设计中最基础的语句就是它。而最早的决策树就是利用这类结构分隔数据的一种分类学习方法

决策实例:书

决策树的算法框架:

决策树的主函数:本质是一个递归函数。

               主函数的功能:①输入需要分类的数据②根据分类规则得到最优的划分特征,并创建特征的划分节点--计算最优特征子函数③划分数据集子函数④进入各自子函数递归⑤检验是否符合递归终止条件⑥重复递归

        计算最优特征子函数---是除了主函数外的最重要函数。决策树的差异都是因为这个函数的差异

                ID3:信息增益    C4.5信息增益率    CART 是节点方差的大小

          划分数据集函数:分隔数据集

            分类器:决策树的分类器是通过遍历整个决策树,使测试集数据找到决策树中叶子节点对应的类别标签。该标签就是分类结果。

 

信息熵

    熵:能量分布的均匀读,越均匀该集就越大

    信息熵:某个特征列向量信息熵越大,就说明该向量的不确定性程度越大

   

信息熵:事物不确定性的度量标准

决策树中,它不仅能用来度量类别的不确定性,也可用来度量包含不同特征的数据样本与类别的不确定性

某特征列向量的信息熵越大--》向量的不确定性程度越大(混乱程度越大)-》优先从该特征向量着手   信息熵为决策树的划分提供了重要的依据和标准

 

信息增益:决策树某个分支上整个数据集信息熵与当前节点信息熵的差值,用Gain(A)

 

ID3算法的决策树生成过程(信息增益)

1.计算对给定样本分类所需的信息熵

2.计算每个特征的信息熵

3.从所有的特征队列中选出信息增益最大的那个作为根节点或内部节点-划分节点,划分整列,首次递归列

4.根据划分节点的不同取值取值类拆分数据集为若干子集,然后删除当前的特征列,再计算剩余特征列的信息熵

5.划分结束的标志:子集中只有一个类别标签,停止划分。

算法待续。(Python)

 

C4.5 信息增益率:客服信息增益选择特征时偏向于特征个数不足的缺点

信息增益率公式

 

Scikit-Learn与回归树

回归算法原理(CART):

CART使用最小剩余方差来判断回归树的最优划分,这个准则期望划分之后的子树与样本点的误差方差最小。决策树会将数据集合切分成很多子模型数据,然后利用线性回归来建模。若每次切分的数据集难以拟合,就继续切分。在这种切分方式下,每个叶子节点都是一个线性回归模型。(这些回归模型也被称作模型书) CART不仅支持整体预测,也支持局部预测。

CART算法流程:

 1.决策树主函数:决策树的主函数是个递归函数,该函数主要按照CART规则生成出决策树的各个分支节点。并根据终止条件结束算法

2.使用最小剩余方差子函数,计算数据集各列最优划分方差,划分列,划分值。

3.二分数据集:根据给定的分隔列和分隔值将数据一分为二,分别返回

 

 

© 著作权归作者所有

共有 人打赏支持
Galy_绿
粉丝 11
博文 132
码字总数 14908
作品 0
海淀

暂无相关文章

收集自网络的wordpress 分页导航的代码教程(全网最全版)

wordpress 分页导航是用来切换文章的一个功能,添加了 wordpress 分页导航后,用户即可自由到达指定的页面数浏览分类文章,而这样的一个很简单功能却有很多朋友在用插件:WP-PageNavi,插件的...

Rhymo-Wu ⋅ 28分钟前 ⋅ 0

微服务 WildFly Swarm 入门

Hello World 就像前面章节中的其他框架一样,我们希望添加一些基本的 Hello-world 功能,然后在其上逐步添加更多的功能。让我们从在我们的项目中创建一个 HolaResources 开始。您可以使用您的...

woshixin ⋅ 35分钟前 ⋅ 0

Maven的安装和Eclipse的配置

1. 下载Maven 下载地址 2. 解压压缩包,放到自己习惯的硬盘中 此处我将其放到了 D:\Tools 目录下。 3. 配置环境变量 右键此电脑 -> 属性 -> 高级系统设置 -> 环境变量。 在系统变量中新建,变...

影狼 ⋅ 42分钟前 ⋅ 0

python pip使用国内镜像的方法

国内源 清华:https://pypi.tuna.tsinghua.edu.cn/simple 阿里云:http://mirrors.aliyun.com/pypi/simple/ 中国科技大学 https://pypi.mirrors.ustc.edu.cn/simple/ 华中理工大学:http://......

良言 ⋅ 43分钟前 ⋅ 0

对于url变化的spa应该如何使用微信jssdk

使用vue单页面碰上微信jssdk config验证失败的坑。第一次成功 之后切换页面全部失败,找到了解决方法,第一次验证成功后保存验证信息 切换页面时验证信息直接拿来用,加一个wx.error() 失败时...

孙冠峰 ⋅ 47分钟前 ⋅ 0

Spring Cloud Gateway 一般集成

SCF发布,带来很多新东西,不过少了点教程,打开方式又和以前的不一样,比如这个SCG,压根就没有入门指导,所以这里写一个,以备后用。 一、集成 pom.xml <dependency> <groupI...

kut ⋅ 51分钟前 ⋅ 0

建造模式

《JAVA与模式》之建造模式

Cobbage ⋅ 今天 ⋅ 0

WePY框架开发的小程序如何在微信web开发者工具中运行起来

一、首先需要安装node.js,安装步骤如下: 首先下载安装包 https://nodejs.org/en/download/ 点击下载相应的zip版本 然后将文件夹解压到任意目录 比如我这里解压到了:C:\Program Files\node...

Helios51 ⋅ 今天 ⋅ 0

使用EnumSet 代替位域(32)

1、位域(Bit field):使用or 运算将几个常量合并到一个集合中 位操作,可以有效地执行 AND 、OR 这样的位操作 但是 位域比int 常量枚举缺点更多 2、java.util 包里面的EnumSet 类是有效的替...

职业搬砖20年 ⋅ 今天 ⋅ 0

没有更多内容

加载失败,请刷新页面

加载更多

下一页

返回顶部
顶部