0415学习笔记:3决策树
1.决策树--》处理分类问题。最常使用的数据挖掘算法。专家系统中经常使用
2.优势:数据形式容易理解,计算复杂度不高,对中间值缺失不敏感,可处理不相关特征数据。
缺:可能过度匹配
3.信息增益:
划分数据集:无序数据变得有序--》》使用信息论度量信息
如何计算信息增益?(集合信息的度量方式称为熵--信息的期望值)
3-1计算给定数据的熵
#coding:utf-8
from math import logdef calcShannonEnt(dataSet):numEntries = len(dataSet) #数据集的总数labelCounts = {} #建立数据字典for featVec in dataSet:currentLabel = featVec[-1] #键:最后一列的数值if currentLabel not in labelCounts.keys():labelCounts[currentLabel] = 0labelCounts[currentLabel] += 1 #每个键都记录当前类别出现的字数shannonEnt = 0.0for key in labelCounts: #计算熵prob = float(labelCounts[key])/numEntries #类别出现的概率shannonEnt -= prob * log(prob,2)return shannonEnt #返回熵def createDataSet():dataSet = [[1,1,'yes'],[1,1,'yes'],[1,0,'no'],[0,1,'no'],[0,1,'no']]labels = ['no surfacing','flippers']return dataSet,labels
测试:
import sys
sys.path.append('/home/yang/Software/pycharm-community-2017.3.4/bin/桌面/PycharmProjects/untitled/k18')
import trees
reload(trees)
myDat,labels = trees.createDataSet()
myDat
trees.calcShannonEnt(myDat)Out[36]: 0.9709505944546686
def createDataSet():
dataSet = [[1,1,'yes'],[1,1,'yes'],[1,0,'no'],[0,1,'no'],[0,1,'no']]
labels = ['no surfacing','flippers']
return dataSet,labels
0415学习笔记:3决策树相关推荐
- anaconda中安装xgboost_ML学习笔记之Anaconda中命令形式安装XGBoost(pip install)
0x00 概述 在没有安装XGBoost之前,import xgboot会出错,如下: # ModuleNotFoundError: No module named 'xgboost' 0x01 安装 ...
- 机器学习入门学习笔记:(3.2)ID3决策树程序实现
前言 之前的博客中介绍了决策树算法的原理并进行了数学推导(机器学习入门学习笔记:(3.1)决策树算法).决策树的原理相对简单,决策树算法有:ID3,C4.5,CART等算法.接下来将对ID3决策树算法 ...
- 统计学习方法 学习笔记(十):决策树
这一个学习笔记将要了解决策树,在研一上机器学习这门课的时候,老师在讲到这一节的时候,举了一个例子我现在还能记得:你们坐在这里上课,就像这个决策树一样,在你人生中的每一个重要结点,你都做出了选择,经过多 ...
- 机器学习理论《统计学习方法》学习笔记:第五章 决策树
机器学习理论<统计学习方法>学习笔记:第五章 决策树 决策树 5.1 决策树模型与学习 5.1.1 决策树模型 5.1.2 决策树与if-then规则 5.1.3 决策树与条件概率分布 5 ...
- python数据挖掘学习笔记】十九.鸢尾花数据集可视化、线性回归、决策树花样分析
#2018-04-05 16:57:26 April Thursday the 14 week, the 095 day SZ SSMR python数据挖掘学习笔记]十九.鸢尾花数据集可视化.线性回 ...
- juyter显示决策树图形_关于决策树可视化的treePlotter(学习笔记)
网上的版本好像好久都没更新了treePlotter是没有人用了么.今天学习的时候发现有些地方已经改了,我改的是在python 3.6 上的运行版本,需要导入matplotlib.pyplot impo ...
- 决策树——信息熵的学习笔记
1 致谢 感谢陈助教的讲解! 陈助教好厉害呀! 2 前言 今天在学习Kaggle数据比赛的相关知识,钟老师第一节课在讲LightGBM,涉及到决策树的相关知识但是我不太了解决策树这些相关的知识,所以需 ...
- cart算法_决策树学习笔记(三):CART算法,决策树总结
点击上方"Python数据科学",选择"星标公众号" 关键时刻,第一时间送达! 作者:xiaoyu 介绍:一个半路转行的数据挖掘工程师 推荐导读:本篇为树模型系 ...
- python3《机器学习实战系列》学习笔记----3.2 决策树实战
前言 一.ID3算法构造决策树 1.1 背景 1.2 信息增益计算 1.3 递归生成决策树 二.使用Matplotlib注解绘制树形图 2.1 Matplotlib注解 2.2 构造注解树 三.测试和 ...
最新文章
- AI开发者们,2017年你们过得好吗?
- 开源资产管理系统java_开源资产管理软件 GLPI 9.3.1 部署
- 配置MM模块material management几个常见的错误
- 用matlab跑神经网络模型,怎样在matlab里建立一个BP神经网络模型?
- js designMode contentEditable 编辑在线网页
- 红帽Linux故障定位技术详解与实例(3)
- 赫夫曼树的定义及原理
- ipop映射到ftp服务器,设备作为FTP客户端进行文件传输-IPOP
- 记录一次VM14虚拟机出问题 Oh no,something has gone wrong!
- CSDN账号绑定github(极简办法)
- modbus tcp调试助手_wemos D1 arduino项目实战1-TCP协议连接Tlink平台①
- 大数据与AI平台:人工智能+大数据赋能产业供应链智能化风控核动力 PPT分享
- 批量查排名的工具有哪些?网站关键词可以优化?
- 【寒江雪】Go实现策略模式
- android图片上传大小限制,Android解决图片上传过大问题
- python图灵机器人微信号_IT之家学院:让你的微信号变成自动聊天机器人
- 探究MySQL的索引结构选型
- TwinCAT3 ADS通讯笔记
- Linux 网络之netlink 简介
- [svn]svn conflict 冲突解决