机器学习实战读书笔记--决策树
1、决策树的构造
createBranch伪代码:
检测数据集中的每个子项是否属于同一分类:
IF SO RETURN 类标签
ELSE
寻找划分数据集的最好特征
划分数据集
创建分支节点
FOR 每个划分的子集
调用函数createBranch并增加返回结果到分支节点中
RETURN 分支节点
划分数据集的大原则:将无序的数据变的更加有序。在划分数据集之前之后信息发生的变化称为信息增益,获得信息增益最高的特征就是最好的选择
熵定义为信息的期望值。熵越大越离散。
计算给定数据集的香农熵
def calcShannonEnt(dataSet):numEntries = len(dataSet)labelCounts = {}for featVec in dataSet: #the the number of unique elements and their occurancecurrentLabel = featVec[-1]if currentLabel not in labelCounts.keys(): labelCounts[currentLabel] = 0labelCounts[currentLabel] += 1shannonEnt = 0.0for key in labelCounts:prob = float(labelCounts[key])/numEntriesshannonEnt -= prob * log(prob,2) #log base 2return shannonEnt
2.决策树的构造算法
ID3算法
ID3算法是一种分类决策树算法。他通过一系列的规则,将数据最后分类成决策树的形式。分类的根据是用到了熵这个概念。熵在物理这门学科中就已经出现过,表示是一个物质的稳定度,在这里就是分类的纯度的一个概念。公式为:
C4.5算法
C4.5与ID3在核心的算法是一样的,但是有一点所采用的办法是不同的,C4.5采用了信息增益率作为划分的根据,克服了ID3算法中采用信息增益划分导致属性选择偏向取值多的属性。信息增益率的公式为:
分母的位置是分裂因子,他的计算公式为:
CART算法
CART算法对于属性的值采用的是基于Gini系数值的方式做比较,gini某个属性的某次值的划分的gini指数的值为:
,pk就是分别为正负实例的概率,gini系数越小说明分类纯度越高
转载于:https://www.cnblogs.com/davidwang456/p/9752979.html
机器学习实战读书笔记--决策树相关推荐
- 机器学习实战---读书笔记: 第11章 使用Apriori算法进行关联分析---2---从频繁项集中挖掘关联规则
#!/usr/bin/env python # encoding: utf-8''' <<机器学习实战>> 读书笔记 第11章 使用Apriori算法进行关联分析---从频繁项 ...
- 机器学习实战读书笔记(2)决策树
信息熵是什么? 1. 信息论之父 C. E. Shannon 在 1948 年发表的论文"通信的数学理论( A Mathematical Theory of Communication )& ...
- 机器学习实战读书笔记(1)
机器学习的主要任务: 分类:将实例数据划分到合适的分类中 回归:主要用于预测数值型数据 分类和回归属于监督学习,监督学习必须知道预测什么,即目标变量的分类信息 无监督学习:数据没有类别信息,也不会给定 ...
- 机器学习实战读书笔记--朴素贝叶斯
1.朴素贝叶斯法是基于贝叶斯定理与特征条件独立假设的分类方法, 最为广泛的两种分类模型是决策树模型(Decision Tree Model)和朴素贝叶斯模型(Naive Bayesian Model, ...
- 机器学习实战读书笔记(一)机器学习基础
http://sourceforge.net/projects/numpy/files/ 下载对应版本的numpy,到处下不到,找到一个没python2.7 用pip吧, pip install nu ...
- 机器学习实战读书笔记--logistic回归
1. 利用logistic回归进行分类的主要思想是:根据现有数据对分类边界线建立回归公式,以此进行分类. 2.sigmoid函数的分类 Sigmoid函数公式定义 3.梯度上升法 基本思想:要找个某个 ...
- 机器学习实战读书笔记--k邻近算法KNN
k邻近算法的伪代码: 对未知类别属性的数据集中的每个点一次执行以下操作: (1)计算已知类别数据集中的点与当前点之间的距离: (2)按照距离递增次序排列 (3)选取与当前点距离最小的k个点 (4)确定 ...
- 机器学习实战读书笔记(3)朴素贝叶斯
贝叶斯定理 要理解贝叶斯推断,必须先理解贝叶斯定理.后者实际上就是计算"条件概率"的公式. 所谓"条件概率"(Conditional probability), ...
- 机器学习实战 - 读书笔记(04) - 朴素贝叶斯
核心公式 - 贝叶斯准则 \[p(c|x) = \frac{p(x|c)p(c)}{p(x)}\] p(c|x) 是在x发生的情况下,c发生的概率. p(x|c) 是在c发生的情况下,x发生的概率. ...
最新文章
- 【转】通过Hibernate将数据 存入oracle数据库例子
- centos执行-查看,复制,删除-命令的脚本
- java接口注入对象的意义_Java Web系列:Spring依赖注入基础
- 一个实现生产和消费的例子(并且使用了接口和反射技术,动态调用方法)小框架...
- Java Adapter Pattern(适配器模式)
- 线程重命名java_线程重命名(Netty)和设计模式Decorator
- Day04 dom详解及js事件
- js 里不能使用${pageContext.request.contextPath}解决方案
- LSTM反向传播公式推导
- 用where in遇到null时的解决方法1
- 企业如何制作自己的公司网站?
- 硬件:详细讲解台式电脑上的常用的几个接口!
- 请输入星期几的第一个字母来判断一下是星期几
- PSD文件解析接口项目
- Ubuntu 16.04LTS安装后需要做的事
- 相似对角化的意义(转载)
- APM应用性能管理工具Pinpoint测评
- 机顶盒boot分区读写
- 新浪短信WEBSERVICE--本文转载
- 《港囧》徐峥:不会互联网思维的导演不是好产品经理
热门文章
- MySQL数据库az排序_RDS Mysql Single-AZ和Multi-AZ性能差异
- spring boot第六讲
- 图片渲染延迟_前向渲染与延迟渲染
- 服务器安装系统时无法创建新的分区,重装系统出现“我们无法创建新的分区,也找不到现有的分区”...
- mysql分库分表事务控制_数据库分库分表之后,你是如何解决事务问题?
- kotlin内联函数let、with、run、apply、also
- bash 判断 os 版本_鸿蒙OS手机将至,华为手机用户提问,老款机器能升级吗?
- 计算机视觉编程——多视图几何
- 字典的最大深度 python 实现
- pyspark dataframe基本用法