机器学习-决策树实现-python

今天翻自己的书库的时候,才发现了之前买的一本《机器学习导论》。随手翻了翻,就直接看到了之前看到的决策树实现的问题理论。

闲来无事,也就得写点代码来play 一下:

决策树的概念想必大家都十分熟悉,特别想我们小时候玩的跳方格的游戏。或者说我们之前玩的你猜我猜的游戏,猜不对继续猜,总有一天你会猜对额

为了确定从哪一个特征来进行判别,我们需要一个衡量标准来分类。

1…香农熵

2…信息增益

那我们来实现第一个……香农熵

from math import log
def calcShannonEnt(dataset)
       numEntries =len(dataset):
        labelCounts={}
        for featureVector  in dataset :
        currentLabel=featVec[-1]
        if currentLabel not in labelCounts.keys():
            labelCounts[currentLabel]=0
        labelCounts[currentLabels]+=1
shannonEnt=0.0
for key in labelCounts:
        prob=float(labelCounts[key])/numEntries
        shannonEnt-=prob*log(prob,2)
return shannonEnt

这个代码借鉴了机器学习实战的代码,事实上该段代码具有可重复利用性。

时间: 2024-07-29 20:51:56

机器学习-决策树实现-python的相关文章

决策树的python实现

决策树的Python实现 2017-04-07 Anne Python技术博文 前言: 决策树的一个重要的任务 是为了理解数据中所蕴含的知识信息,因此决策树可以使用不熟悉的数据集合,并从中提取出一系列规则,这些机器根据数据集创建规则的过程,就是机器学习的过程. 决策树优点: 1:计算复杂度不高 2:输出结果易于理解 3:对中间值的缺失不敏感 4:可以处理不相关特征数据 缺点:可能会产生过度匹配问题 使用数据类型:数值型和标称型 基于Python逐步实现Decision Tree(决策树),分为以

【Python】决策树的python实现

[Python]决策树的python实现 2016-12-08 数据分析师Nieson 1. 决策树是什么? 简单地理解,就是根据一些 feature 进行分类,每个节点提一个问题,通过判断,将数据分为几类,再继续提问.这些问题是根据已有数据学习出来的,再投入新数据的时候,就可以根据这棵树上的问题,将数据划分到合适的叶子上. 2. 决策树有什么算法? 常用的几种决策树算法有ID3.C4.5.CART: ID3:选择信息熵增益最大的feature作为node,实现对数据的归纳分类. C4.5:是I

机器学习算法与Python实践之(三)支持向量机(SVM)进阶

机器学习算法与Python实践之(三)支持向量机(SVM)进阶 机器学习算法与Python实践之(三)支持向量机(SVM)进阶 [email protected] http://blog.csdn.net/zouxy09 机器学习算法与Python实践这个系列主要是参考<机器学习实战>这本书.因为自己想学习Python,然后也想对一些机器学习算法加深下了解,所以就想通过Python来实现几个比较常用的机器学习算法.恰好遇见这本同样定位的书籍,所以就参考这本书的过程来学习了. 在这一节我们主要是

机器学习算法与Python实践之(四)支持向量机(SVM)实现

机器学习算法与Python实践之(四)支持向量机(SVM)实现 机器学习算法与Python实践之(四)支持向量机(SVM)实现 [email protected] http://blog.csdn.net/zouxy09 机器学习算法与Python实践这个系列主要是参考<机器学习实战>这本书.因为自己想学习Python,然后也想对一些机器学习算法加深下了解,所以就想通过Python来实现几个比较常用的机器学习算法.恰好遇见这本同样定位的书籍,所以就参考这本书的过程来学习了. 在这一节我们主要是

机器学习算法与Python实践之(二)支持向量机(SVM)初级

机器学习算法与Python实践之(二)支持向量机(SVM)初级 机器学习算法与Python实践之(二)支持向量机(SVM)初级 [email protected] http://blog.csdn.net/zouxy09 机器学习算法与Python实践这个系列主要是参考<机器学习实战>这本书.因为自己想学习Python,然后也想对一些机器学习算法加深下了解,所以就想通过Python来实现几个比较常用的机器学习算法.恰好遇见这本同样定位的书籍,所以就参考这本书的过程来学习了. 在这一节我们主要是

机器学习算法与Python实践之(七)逻辑回归(Logistic Regression)

机器学习算法与Python实践这个系列主要是参考<机器学习实战>这本书.因为自己想学习Python,然后也想对一些机器学习算法加深下了解,所以就想通过Python来实现几个比较常用的机器学习算法.恰好遇见这本同样定位的书籍,所以就参考这本书的过程来学习了. 这节学习的是逻辑回归(Logistic Regression),也算进入了比较正统的机器学习算法.啥叫正统呢?我概念里面机器学习算法一般是这样一个步骤: 1)对于一个问题,我们用数学语言来描述它,然后建立一个模型,例如回归模型或者分类模型等

【机器学习】多项式回归python实现

[机器学习]多项式回归原理介绍 [机器学习]多项式回归python实现 [机器学习]多项式回归sklearn实现 使用python实现多项式回归,没有使用sklearn等机器学习框架,目的是帮助理解算法的原理. 使用一个简单的数据集来模拟,只有几条数据. 代码 从数据集中读取X和y. 为X添加二次方项,用Z替换. 给Z添加 1 列,初始化为 1 ,用来求偏置项. 划分训练集和测试集. 将Z和y的训练集转换为矩阵形式. 和线性回归类似,使用正规方程法,先验证矩阵的可逆性. 去掉Z中全为1的列. 使

机器学习-决策树的基本思想

机器学习-决策树的基本思想 决策树算法是最早的机器学习算法之一. 算法框架 1.决策树主函数 各种决策树的主函数都大同小异,本质上是一个递归函数.该函数的主要功能是按照某种规则生长出决策树的各个分支节点,并根据终止条件结束算法.一般来讲,主函数需要完成如下几个功能. (1)输入需要分类的数据集和类别标签 (2)根据某种分类规则得到最优的划分特征,并创建特征的划分节点--计算最优特征子函数 (3)按照该特征的每个取值划分数据集为若干部分--划分数据集子函数 (4)根据划分子函数的计算结果构建出新的

【机器学习笔记之二】决策树的python实现

本文结构: 是什么? 有什么算法? 数学原理? 编码实现算法? 1. 是什么? 简单地理解,就是根据一些 feature 进行分类,每个节点提一个问题,通过判断,将数据分为几类,再继续提问.这些问题是根据已有数据学习出来的,再投入新数据的时候,就可以根据这棵树上的问题,将数据划分到合适的叶子上. 2. 有什么算法? 常用的几种决策树算法有ID3.C4.5.CART: ID3:选择信息熵增益最大的feature作为node,实现对数据的归纳分类.C4.5:是ID3的一个改进,比ID3准确率高且快,