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决策树相关推荐

  1. anaconda中安装xgboost_ML学习笔记之Anaconda中命令形式安装XGBoost(pip install)

    0x00 概述 在没有安装XGBoost之前,import xgboot会出错,如下: # ModuleNotFoundError: No module named 'xgboost' 0x01 安装 ...

  2. 机器学习入门学习笔记:(3.2)ID3决策树程序实现

    前言 之前的博客中介绍了决策树算法的原理并进行了数学推导(机器学习入门学习笔记:(3.1)决策树算法).决策树的原理相对简单,决策树算法有:ID3,C4.5,CART等算法.接下来将对ID3决策树算法 ...

  3. 统计学习方法 学习笔记(十):决策树

    这一个学习笔记将要了解决策树,在研一上机器学习这门课的时候,老师在讲到这一节的时候,举了一个例子我现在还能记得:你们坐在这里上课,就像这个决策树一样,在你人生中的每一个重要结点,你都做出了选择,经过多 ...

  4. 机器学习理论《统计学习方法》学习笔记:第五章 决策树

    机器学习理论<统计学习方法>学习笔记:第五章 决策树 决策树 5.1 决策树模型与学习 5.1.1 决策树模型 5.1.2 决策树与if-then规则 5.1.3 决策树与条件概率分布 5 ...

  5. python数据挖掘学习笔记】十九.鸢尾花数据集可视化、线性回归、决策树花样分析

    #2018-04-05 16:57:26 April Thursday the 14 week, the 095 day SZ SSMR python数据挖掘学习笔记]十九.鸢尾花数据集可视化.线性回 ...

  6. juyter显示决策树图形_关于决策树可视化的treePlotter(学习笔记)

    网上的版本好像好久都没更新了treePlotter是没有人用了么.今天学习的时候发现有些地方已经改了,我改的是在python 3.6 上的运行版本,需要导入matplotlib.pyplot impo ...

  7. 决策树——信息熵的学习笔记

    1 致谢 感谢陈助教的讲解! 陈助教好厉害呀! 2 前言 今天在学习Kaggle数据比赛的相关知识,钟老师第一节课在讲LightGBM,涉及到决策树的相关知识但是我不太了解决策树这些相关的知识,所以需 ...

  8. cart算法_决策树学习笔记(三):CART算法,决策树总结

    点击上方"Python数据科学",选择"星标公众号" 关键时刻,第一时间送达! 作者:xiaoyu 介绍:一个半路转行的数据挖掘工程师 推荐导读:本篇为树模型系 ...

  9. python3《机器学习实战系列》学习笔记----3.2 决策树实战

    前言 一.ID3算法构造决策树 1.1 背景 1.2 信息增益计算 1.3 递归生成决策树 二.使用Matplotlib注解绘制树形图 2.1 Matplotlib注解 2.2 构造注解树 三.测试和 ...

最新文章

  1. AI开发者们,2017年你们过得好吗?
  2. 开源资产管理系统java_开源资产管理软件 GLPI 9.3.1 部署
  3. 配置MM模块material management几个常见的错误
  4. 用matlab跑神经网络模型,怎样在matlab里建立一个BP神经网络模型?
  5. js designMode contentEditable 编辑在线网页
  6. 红帽Linux故障定位技术详解与实例(3)
  7. 赫夫曼树的定义及原理
  8. ipop映射到ftp服务器,设备作为FTP客户端进行文件传输-IPOP
  9. 记录一次VM14虚拟机出问题 Oh no,something has gone wrong!
  10. CSDN账号绑定github(极简办法)
  11. modbus tcp调试助手_wemos D1 arduino项目实战1-TCP协议连接Tlink平台①
  12. 大数据与AI平台:人工智能+大数据赋能产业供应链智能化风控核动力 PPT分享
  13. 批量查排名的工具有哪些?网站关键词可以优化?
  14. 【寒江雪】Go实现策略模式
  15. android图片上传大小限制,Android解决图片上传过大问题
  16. python图灵机器人微信号_IT之家学院:让你的微信号变成自动聊天机器人
  17. 探究MySQL的索引结构选型
  18. TwinCAT3 ADS通讯笔记
  19. Linux 网络之netlink 简介
  20. [svn]svn conflict 冲突解决

热门文章

  1. php调用sqlmapapi.py,SQL注入 SqlmapApi快速上手
  2. 双链路热备份(负载分担)实验
  3. greenplum查询表结构java_Greenplum小把戏 - 几个常用数据库对象大小查询SQL
  4. python画钟表代码_Python技能操作5:用代码做个能挂墙上的大钟表
  5. 自动化行业软件工程师工作第一年总结
  6. 阿里云服务器完全卸载AliYun监控教程
  7. 阿里云服务器证书登录如何配置
  8. 删除Word文档空白页的方法,日常必备!
  9. Docker命令详解
  10. uoj198【CTSC2016】时空旅行