0415学习笔记:3决策树

转载 2018年04月15日 17:29:27

1.决策树--》处理分类问题。最常使用的数据挖掘算法。专家系统中经常使用

2.优势:数据形式容易理解,计算复杂度不高,对中间值缺失不敏感,可处理不相关特征数据。

缺:可能过度匹配

3.信息增益:

    划分数据集:无序数据变得有序--》》使用信息论度量信息

如何计算信息增益?(集合信息的度量方式称为熵--信息的期望值)

3-1计算给定数据的熵

#coding:utf-8
from math import log

def calcShannonEnt(dataSet):
    numEntries = len(dataSet) #数据集的总数
    labelCounts = {} #建立数据字典
    for featVec in dataSet:
        currentLabel = featVec[-1] #键:最后一列的数值
        if currentLabel not in labelCounts.keys():
            labelCounts[currentLabel] = 0
        labelCounts[currentLabel] += 1 #每个键都记录当前类别出现的字数
    shannonEnt = 0.0
    for 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

实现具有动态主机IP的域名解析

[ 作者: wenhuah   添加时间: 2001-5-2 12:24:33 ]来源:www.chinaaid.com.cn目的利用一台INTERNET DNS HOST 将域名定向到家中(个人)的...
  • ju_feng
  • ju_feng
  • 2002-03-27 08:51:00
  • 635

Python3《机器学习实战》学习笔记(三):决策树实战篇之为自己配个隐形眼镜

上篇文章讲述了机器学习决策树的原理,以及如何选择最优特征作为分类特征。本篇文章将在此基础上进行介绍。主要内容包括:决策树构建、决策树可视化、使用决策树进行分类预测、决策树的存储和读取、sklearn实...
  • c406495762
  • c406495762
  • 2017-07-28 15:30:33
  • 9995

Python3《机器学习实战》学习笔记(二):决策树基础篇之让我们从相亲说起

有读者反映,说我上篇文章Python3《机器学习实战》学习笔记(一):k-近邻算法(史诗级干货长文),太长了。一看那么长,读的欲望都降低了。既然如此,决策树的内容,我就分开讲好了。本篇讨论决策树的原理...
  • c406495762
  • c406495762
  • 2017-07-21 16:44:27
  • 12633

Kaldi决策树状态绑定学习笔记

  • 2017年04月08日 11:51
  • 5.58MB
  • 下载

Kaldi决策树状态绑定学习笔记(一)

Kaldi决策树状态绑定学习笔记(一)——如何累积相关统计量?在这个笔记中,我会首先介绍与决策树相关的几个数据结构和统计量,然后介绍累积统计量的主程序和主要函数。...
  • u010731824
  • u010731824
  • 2017-04-08 14:41:09
  • 1717

《统计学习方法》笔记(六)--决策树

可以用于分类和回归,书中只介绍分类树用于分类 定性:是一种判别式模型 思路:利用训练数据,根据损失函数最小化的原则建立决策树模型,对于新的数据利用建立的决策树进行分类 决策树学习的主要步骤:特征...
  • si_ma_yu_he
  • si_ma_yu_he
  • 2015-06-30 08:43:17
  • 577

机器学习(周志华)读书笔记-(四)决策树

决策树        决策树-一种常见的机器学习方法,是一种简单但是广泛使用的分类器。通过训练数据构建决策树,可以高效的对未知的数据进行分类。通过对属性的选择划分形成一个树形的结构,最终对相似事物根...
  • dingyahui123
  • dingyahui123
  • 2017-08-22 17:16:49
  • 595

Kaldi决策树状态绑定学习笔记(二)

Kaldi决策树状态绑定学习笔记(二)——如何自动生成问题集?Kaldi决策树中使用的问题集并不是手工设计的,而是通过之前得到的统计量自动生成的。在这个笔记中,我会首先介绍自动生成问题集所用到的主程序...
  • u010731824
  • u010731824
  • 2017-04-08 14:31:30
  • 1251

[机器学习]机器学习笔记整理06-决策树应用

数据集训练集RID,age,income,student,credit_rating,class_buys_computer 1,youth,high,no,fair,no 2,youth,high,...
  • BaiHuaXiu123
  • BaiHuaXiu123
  • 2017-04-03 18:06:02
  • 1252

《机器学习实战》学习笔记:决策树的实现

决策树是个极其易懂的算法,也是最常用的数据挖掘算法,决策树允许机器根据数据集创造规则,其实这就是机器学习的过程。专家系统中经常会使用到决策树及其变种,而且决策树给出的结果往往可以匹敌在当前领域具有几十...
  • liyuefeilong
  • liyuefeilong
  • 2015-09-02 23:41:54
  • 2282
收藏助手
不良信息举报
您举报文章:0415学习笔记:3决策树
举报原因:
原因补充:

(最多只允许输入30个字)