一.信息增益

划分数据集前后信息发生的变化叫做信息增益
熵:


n是分类的数目

二.熵的计算

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

三.按照给定特征划分数据集

def splitDataSet(dataSet, axis, value):retDataSet = []for featVec in dataSet:if featVec in dataSet:reduceFeatVec = featVec[:axis]reduceFeatVec.extend(featVec[axis+1:])reduceFeatVec.append(reduceFeatVec)return retDataSet

四.选择最好的数据集划分方式

def chooseBestFeatureToSplit(dataSet):numFeatures = len(dataSet[0])-1baseEntropy = calcShannonEnt(dataSet)bestInfoGain=0.0;bestFeature = -1for i in range(numFeatures):featList = [example[i] for example in dataSet]uniqueVals = set(featList)newEntropy = 0.0for value in uniqueVals:subDataSet =splitDataSet(dataSet,i,value)prob = len(subDataSet)/float(len(dataSet))newEntropy+=prob*calcShannonEnt(subDataSet)infoGain = baseEntropy-newEntropyif (infoGain>bestInfoGain):bestInfoGain = infoGainbestFeature =ireturn bestFeature

sklearn——决策树基础概念相关推荐

  1. (自学)sklearn决策树基础知识|解决centos7.8 graphviz报错不能画图的问题

    sklearn常规流程: from sklearn import tree #导入需要的模块 clf = tree.DecisionTreeClassifier()#实例化 clf = clf.fit ...

  2. 机器学习的9个基础概念和10种基本算法总结

    https://blog.csdn.net/libaqiangdeliba/article/details/41901387 1.基础概念: (1) 10折交叉验证:英文名是10-fold cross ...

  3. 从基础概念到数学公式,这是一份520页的机器学习笔记(图文并茂)

    导读:近日,来自SAP(全球第一大商业软件公司)的梁劲(Jim Liang)公开了自己所写的一份 520 页的学习教程(英文版),详细.明了地介绍了机器学习中的相关概念.数学知识和各种经典算法.完整的 ...

  4. 机器学习入门 笔记(二) 机器学习基础概念

    第二章 机器学习基础概念 1.机器的数据 2.机器学习的主要任务 3.监督学习和非监督学习 4.批量.在线学习.参数.非参数学习 5.哲学思考 6.环境的搭建 1.机器的数据 我们以鸢尾花的数据为例. ...

  5. 机器学习——基础概念

    一. 机器学习基础概念 总结过层中,我结合了头歌上的相关公开课程:详见 (一).什么是机器学习? 机器学习致力于通过计算的手段,利用经验来改善系统的性能. "经验"-->通常 ...

  6. 【统计学习】25个必须掌握的数据分析基础概念

    16个必须掌握的数据分析基础概念 1. 描述性统计 2. 假设性检验 2.1 参数检验 2.2 非参数检验 3. 置信度分析 4. 列联表分析 5. 相关分析 6. 方差分析 7. 回归分析 8. 聚 ...

  7. 机器学习笔记(一)numpy的使用、机器学习基础概念

    目录 1.numpy 1.1.创建 numpy.array 1.1.1.常规创建 numpy.array 的方法 1.1.2.其他创建 numpy.array 的方法 1.1.2.其他创建随机数 ra ...

  8. 决策树基础—比特化Bits,信息熵,条件熵,联合熵

    决策树基础-比特化Bits,信息熵,条件熵,联合熵 比特化(Bits) 一般化的比特化 信息熵 条件熵 联合熵 知道了决策树的直观理解,接下来了解一些决策树要用到了知识 比特化(Bits) 假设我现在 ...

  9. 深度学习:基础概念陈述及P-R曲线绘制案例(Python)

    文章目录 @[toc] 一.概念陈述 1.1引例 1.2机器学习与深度学习 1.3基础概念 1.4机器学习与统计学的对比 二.数据集(dataset) 2.1数据集的数学表示 2.2训练集和测试集 2 ...

  10. 机器学习实战教程(二):决策树基础篇之让我们从相亲说起

    机器学习实战教程(二):决策树基础篇之让我们从相亲说起 一.前言 二.决策树 三.决策树的构建的准备工作 1.特征选择 (1)香农熵 (2)编写代码计算经验熵 (3) 信息增益 (4) 编写代码计算信 ...

最新文章

  1. java中匿名内部类详解_java 中匿名内部类的实例详解
  2. 解决GitHub加载不出图片问题
  3. linux php后门,Linux_一个初级的linux后门制作方法,众所周知,Linux的文件权限如: - phpStudy...
  4. 攻防世界-Reverse-666(图解详细)
  5. 从HBase中移除WAL?3D XPoint技术带来的变革
  6. linux联想电脑wifi密码,联想笔记本Y7000—ubuntu16.4无法开启wifi的解决办法
  7. 终端安全 | 全面适配国产系统,打造政企合规终端
  8. Intel® Nehalem/Westmere架构/微架构/流水线 (4) - 执行引擎
  9. 类的自动转换和强制类型转换
  10. PDF区域文本提取工具
  11. 计算机怎么改鼠标标志,图文帮你如何自定义电脑鼠标指针的图标
  12. 国内开源镜像站地址汇总
  13. 小打卡软件测试,考勤打卡软件大测评,这款打卡软件你有在用吗?
  14. 答疑解惑 | 关于PMBOK第七版,常见问题合集【附电子版】
  15. 罗格斯大学计算机科学属哪个学院,罗格斯大学工程学院信息介绍以及申请条件详细解读...
  16. Hazelcast IMDG参考中文版手册-第四章-配置
  17. 电影评分预测系统分析
  18. 好文回顾:中国游戏编年史 中国游戏的二十年(5)
  19. 在全民直播的背景下,金融机构做直播带货是必须的吗?
  20. chrome扩展程序科学_扩展科学知识的最佳网站

热门文章

  1. 简书android 输入法设置,Android输入法弹出流程
  2. PHP导航栏管理,zblog导航栏管理设置的几种方法
  3. php文章上一篇,thinkphp5实现文章上一篇,下一篇
  4. new file会创建文件吗_520了!除了new个对象,你还会用supplier创建对象吗?
  5. mysql 5.1 开启慢查询_mysql开启慢查询
  6. 递归和迭代_斐波那契数列的实现:递归方式和迭代方式
  7. MySQL:设置字段默认为当前时间
  8. Go基础:数组、切片与指针
  9. C#:“System.Web.Mvc.Controller.File(byte[], string)”是一个“方法”,这在给定的上下文中无效
  10. Linux下防止rm -frv 删除错误的解决办法