机器学习入门之《机器学习实战》菜鸟学习笔记(三)决策树
小标 2018-10-22 来源 : 阅读 2249 评论 0

摘要:本文主要向大家介绍了机器学习入门之《机器学习实战》菜鸟学习笔记(三)决策树,通过具体的内容向大家展现,希望对大家学习机器学习入门有所帮助。

本文主要向大家介绍了机器学习入门之《机器学习实战》菜鸟学习笔记(三)决策树,通过具体的内容向大家展现,希望对大家学习机器学习入门有所帮助。

老规矩,Talk is cheap, show me your code.


#-*-coding:utf-8-*-
from math import log

def calcShannonEnt(datsSet):
    #长度
    numEntries = len(dataSet)
    #字典统计
    labelCounts = {}
    #遍历特征
    for featVec in dataSet:
        #最后一维特征(分类)
        currentLabel = featVec[-1]
        #如果不在字典中,则添加进字典
        #可以写成labelCounts[labelCount] = labelCounts.get(currentLabel,0) + 1
        if currentLabel not in labelCounts.key():
            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

这段代码很简单,可能对于最后几句话理解起来有些困难。那我们一起来分析一下。
什么是信息增益和熵呢?学过信息论的同学肯定知道,那么对于没有学过的同学呢?不要着急,我们一起来看看。
首先 信息增益和熵是一回事,就是一个事情两个名字而已。那么什么是熵呢?
熵就是信息的期望值,在信息世界,熵越高,则能传输越多的信息,熵越低,则意味着传输的信息越少。ok,那么什么是信息呢?是如何用数学语言描述呢?信息的定义就是:

-ln(p)

很简单是不,那么我们应该怎么理解呢?首先p代表某个分类出现的概率。比如,均匀色子出现6的概率为1/6,硬币正面朝上的概率为1/2。那么又为什么取对数呢?

本文由职坐标整理并发布,希望对同学们有所帮助。了解更多详情请关注职坐标人工智能机器学习频道!

本文由 @小标 发布于职坐标。未经许可,禁止转载。
喜欢 | 0 不喜欢 | 0
看完这篇文章有何感觉?已经有0人表态,0%的人喜欢 快给朋友分享吧~
评论(0)
后参与评论

您输入的评论内容中包含违禁敏感词

我知道了

助您圆梦职场 匹配合适岗位
验证码手机号,获得海同独家IT培训资料
选择就业方向:
人工智能物联网
大数据开发/分析
人工智能Python
Java全栈开发
WEB前端+H5

请输入正确的手机号码

请输入正确的验证码

获取验证码

您今天的短信下发次数太多了,明天再试试吧!

提交

我们会在第一时间安排职业规划师联系您!

您也可以联系我们的职业规划师咨询:

小职老师的微信号:z_zhizuobiao
小职老师的微信号:z_zhizuobiao

版权所有 职坐标-一站式AI+学习就业服务平台 沪ICP备13042190号-4
上海海同信息科技有限公司 Copyright ©2015 www.zhizuobiao.com,All Rights Reserved.
 沪公网安备 31011502005948号    

©2015 www.zhizuobiao.com All Rights Reserved