机器学习之决策树与随机森林

  • 目录
  • 1、了解熵、条件熵、互信息的概念及公式
    • 1.1、熵
    • 1.2、条件熵
    • 1.3、信息增益/互信息
  • 2、了解决策树
    • 2.1、了解决策树的概念和特点以及和熵的关系
    • 2.2、了解树生成的过程
    • 2.3、了解决策树三种算法的区别
    • 2.4、了解决策树的损失函数
    • 2.5、了解解决决策树过拟合的方法
    • 2.6、了解后剪枝的过程
  • 3、了解Bagging和随机森林
  • 4、掌握样本不均衡常用的处理方法
  • 5、随机森林算法常用参数详解

目录

1、了解熵、条件熵、互信息的概念及公式

1.1、熵

熵本身是描述事物的混乱程度的
决策树乃至随机森林最关键的一点就是如何来划分一个节点分裂数据让结果达到最好。
信息熵的作用(即判定特征分裂的好坏)
了解信息熵的表示形式(负号代表x发生的概率越大对应的熵值越小):
这里写图片描述

知道这个信息熵的概念(x发生的概率越大,结果越稳定对应的熵值也就越小;P(X,Y)=H(X)+H(Y)代表X、Y发生的事件的熵相加)

1.2、条件熵

知道条件熵的概念:H(Y|X)表示在X发生的前提下,Y发生新带来的熵。
这里写图片描述

1.3、信息增益/互信息

信息增益即为互信息,信息增益即为相关系数(计算一个特征对类X是否有影响)
信息增益:度量特征A对数据集D的不确定性的减小程度(即不确定减小也就是D发生概率增加)。
这里写图片描述

信息增益即为互信息,信息增益即为相关系数(计算一个特征对类X的影响程度)
信息增益:度量特征A对数据集D的不确定性的减小程度(即不确定减小也就是D发生概率增加)。
这里写图片描述

2、了解决策树

2.1、了解决策树的概念和特点以及和熵的关系

这里写图片描述
这里写图片描述
信息熵又称为经验熵,重点注意下面选取分裂特征的过程。

2.2、了解树生成的过程

树的生成过程:首先你能得到对应的数据集D的经验熵(即根节点的信息熵),之后遍历所有的特征,进行以下步骤:(前提条件是你肯定能得到数据集D的经验熵H(D)公式如下图)。
一、计算特征A对于数据集D的条件熵即H(D|A);
二、计算特征A的信息增益g(D,A)=H(D)-H(D|A);
三、选择信息增益最大的特征作为当前的分裂特征。(信息增益越大,也就说明D在A特征下发生的概率越大,也就说明D对应的信息熵越小。而树生成的过程即是从信息熵大的根节点到信息熵为0的叶子节点)
这里写图片描述

2.3、了解决策树三种算法的区别

这里写图片描述
这里写图片描述
知道gini系数(同信息增益一样也可以作为特征分析的依据)
这里写图片描述

2.4、了解决策树的损失函数

了解评价函数的意义:实际上就是每个叶子结点的熵值和对应的叶子结点上的数据量做一个乘积的加和(这里的N其实就是对H(t)做一个加权处理)
掌握损失函数(又称为评价函数)的表达式以及对应的含义(可不可以理解为:因为叶子节点代表分类的最终结果,那么叶子节点的熵值也就代表分类的好坏的程度,那么所有叶子节点的熵值的加权和也就代表整棵树分类的好坏程度)。
结论:损失函数越小即代表整体的熵值越小,整棵树越稳定,分类的效果越好。
这里写图片描述

2.5、了解解决决策树过拟合的方法

1、剪枝(过程见下文)
2、随机森林
了解剪枝的思路:即如何从Ti到Ti+1
这里写图片描述
了解修正后的损失函数的含义 :实质上就是添加了叶子节点的影响权重值
了解α的公式(C(r):单个根节点的评价函数值。C(R):子树的评价函数值。如下图所示)以及对应的求解过程
这里写图片描述

2.6、了解后剪枝的过程

一、先求出各个内部节点的α值,
二、然后将α值从小到大进行排列得到对应得树T0、T1…
三、按照这个顺序依次进行剪枝的操作直到剪到最后的根节点为止。
四、最终利用test集合去测试看那棵树的损失函数最小就选取哪棵树。

3、了解Bagging和随机森林

知道这个Bagging是什么
这里写图片描述
这里写图片描述
了解随机森林的建立过程
这里写图片描述
这里写图片描述
这里写图片描述

4、掌握样本不均衡常用的处理方法

1、A类随机欠采样:A类样本过多,可以通过随机采取A中的少部分(如20%)样本来和B中的样本汇总作为总的样本。
2、基于聚类的A类的分割:将A类样本进行一个聚类操作,然后随机的选取A中的任何一个类族和B一起构成一个总的样本。
3、B类过采样:B类数据太少,可以不断的复制B类的样本从而使B样本的数量增加满足A样本的要求。
4、B类数据合成:在空间中将两个B样本连接,随机在连线上选取某些点用于生成样本以达到增加样本B的数量的目的。(如下图所示)
5、代价敏感学习(降低A类权值,提高B类权值)
总结:1-4为对样本的处理,5对算法的处理。

5、随机森林算法常用参数详解

详见:https://blog.csdn.net/qq_16633405/article/details/61200502

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/news/456464.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

机器学习之提升算法

1、知道提升、梯度提升是什么意思1.1、提升1.2、梯度提升1.3、了解提升算法的过程 2、残差与残差平方和(residual sum of squares)3、了解GBDT算法4、了解XGBoost算法5、了解Adaboost算法5.1、Adaboost算法的原理5.2、例子 6、偏差和方差 1、知道提升、梯…

Jsoup遍历ul li下的链接信息实例

2019独角兽企业重金招聘Python工程师标准>>> Document doc;try {String URL "www.baidu.com";doc Jsoup.connect(URL).get();Elements ElementsUl doc.getElementsByTag("ul");for (Element elementLi : ElementsUl) {Elements provinceEl …

机器学习之支持向量机(SVM)总结

文章目录1、知道SVM相关的各种概念2、知道目标函数、损失函数、正则项的意义2.1、目标函数2.2、损失函数2.3、正则化(添加噪音避免过拟合)3、了解SVM算法原理4、知道SVM的目标函数5、知道SVM的损失函数以及公式6、知道SVM支持向量机的计算过程6.1、推导过…

机器学习之聚类算法的原理推导及相关知识总结

文章目录1、知道几个关于"差"的概念2、理解相似度度量的各种方法和相互关系2.1、欧氏距离2.2、jaccard相似系数2.3、余弦相似度2.4、Pearson相似系数2.5、相对熵3、掌握掌握K-Means算法3.1、知道聚类的思想3.2、K-Means算法原理3.3、知道K-Mediods聚类3.4、如何选取K…

机器学习之EM算法的原理推导及相关知识总结

文章目录1、知道先验概率和后验概率2、了解高斯混合模型GMM3、通过最大似然估计推导EM算法的过程的实例4、EM算法5、知道pLSA模型1、知道先验概率和后验概率 先验概率(prior probability)是指根据以往经验和分析得到的概率(理解为自定义概率…

机器学习之朴素贝叶斯算法的推理及相关知识总结

文章目录1、朴素贝叶斯公式1.1、贝叶斯公式的应用2、了解贝叶斯网络2.1、知道什么是贝叶斯网络2.2、贝叶斯网络的两种表示形式2.3、掌握全连接的贝叶斯网络的公式2.3、知道条件概率表参数个数分析的方法2.4、掌握变量联合分布概率的公式及含义2.5、知道马尔科夫模型3、了解D-se…

HA机制的大数据集群的搭建过程

文章目录集群规划1、 准备Linux环境1.1、修改Linux主机名1.3、修改主机名和IP的映射关系1.4、关闭防火墙1.5、ssh免登陆(主节点和从节点之间)2、 安装JDK2.1、上传2.2、解压jdk2.3、将java添加到环境变量中2.4、刷新配置2.5、验证3、安装zookeeper3.1、解…

Linux系统7个运行级别图文详解

Linux系统7个运行级别图文详解 当安装linux操作系统时将选择下列那一个操作 ______ A.选择 "图形登录方式" 设定系统开始运行级为4 B.选择 "文本登录方式" 设定系统开始运行级为3 C.选择 "文本登录方式" 设定系…

使用IntelliJ IDEA碰到的问题总结

文章目录问题一:无法创建Java Class文件问题一:无法创建Java Class文件 今天打开项目时,发现右击新建不了java.class文件,于是尝试了以下方法: (1)选择 File——>Project Structure——>…

linux文本处理常用指令总结

引子 作为一个偏爱windows的程序员,以前做文本处理的时候总是喜欢在windows下用notepad等图形化工具处理,比如有时需要把linux服务器上一个文件进行一次全局字符串替换这样简单的操作,还得把文件down到本地编辑好再传回去。这两天买了本《鸟哥…

Linux中chown和chmod的区别和用法

chmod修改第一列内容, chown修改第3、4列内容: chown用法: 用来更改某个目录或文件的用户名和用户组。 chown 用户名:组名 文件路径(可以是绝对路径也可以是相对路径) 例1:chown root:root /tmp/tmp1 就…

玩大数据期间碰到的一些问题总结

文章目录问题一:Zookeeper节点数量为什么建议是奇数个?问题二:HA机制的Hadoop集群中Journal Node 作用问题三:两个datanode节点互相排斥怎么解决(集群无法识别新加入的Datanode)?问题四&#xf…

JAVA的SSH框架登录注册

Struts 的MVC设计模式可以使我们的逻辑变得很清晰,主要负责表示层的显示。 Spring 的IOC和AOP可以使我们的项目在最大限度上解藕。 hibernate的就是实体对象的持久化了, 数据库的封装。 项目截图:(代码是按照项目截图上传的,直接对号入座即可…

Visual Studio Code 前端调试不完全指南

本文最初发布于我的个人博客:咀嚼之味Visual Studio Code (以下简称 vscode) 如今已经代替 Sublime,成为前端工程师们最喜爱的代码编辑器。它作为一个大型的开源项目,不断推陈出新;社区中涌现出大量优质的插件,以支持我…

机器学习之LDA主题模型算法

文章目录1、知道LDA的特点和应用方向1.1、特点1.2、应用方向2、知道Beta分布和Dirichlet分布数学含义3、了解共轭先验分布4、知道先验概率和后验概率5、知道参数α值的大小对应的含义6、掌握LDA主题模型的生成过程7、知道超参数α等值的参考值8、LDA总结1、知道LDA的特点和应用…

[Go] Template 使用简介

Golang 提供了两个标准库用来处理模板 text/template 和 html/template。我们使用 html/template 格式化 html 字符。 模板引擎 模板引擎很多,Python 的 jinja,nodejs 的 jade 等都很好。所谓模板引擎,则将模板和数据进行渲染的输出格式化后的…

内存泄露监测

2019独角兽企业重金招聘Python工程师标准>>> iOS 内存泄露监测 144 作者 谢谢生活 已关注 2017.05.19 17:38* 字数 4235 阅读 209评论 0喜欢 6 iOS可能存在的内存泄露:block 循环引用。当一个对象有一个block属性,而block属性又引用这个对象…

玩Azkaban跳过的坑

文章目录一号坑:启动Azkaban报错:User xml file conf/azkaban-users.xml doesnt exist.二号坑:报错:failed SslSocketConnector0.0.0.0:8443: java.io.FileNotFoundException: /home/hadoop/app/azkaban/azkaban-web-2.5.0/bin/ke…

删除节点removeChild()

http://www.imooc.com/code/1700 删除节点removeChild() removeChild() 方法从子节点列表中删除某个节点。如删除成功,此方法可返回被删除的节点,如失败,则返回 NULL。 语法: nodeObject.removeChild(node) 参数: node :必需&…

机器学习自主解决安全威胁离我们还有多远?

曾经听见不止一次这样的问题: “机器学习会替代基于人工经验规则的安全解决方案么?”把这个问题放在去年来看,我们已经得到了非常多的讨论甚至是一些已经实际应用的解决方案,对于人工智能在安全以及其它各种对数据进行价值挖掘的场…