【机器学习算法】13、决策树与随机森林(非常的全面讲解和实践)(一)

简介: 【机器学习算法】13、决策树与随机森林(非常的全面讲解和实践)(一)

1.简介


  决策树(Decision Tree)是一种非参数的有监督学习方法,它能够从一系列有特征和标签的数据中总结出决策规则,并用树状图的结构来呈现这些规则,以解决分类和回归问题。决策树算法容易理解,适用各种数据,在解决各种问题时都有良好表现,尤其是以树模型为核心的各种集成算法,在各个行业和领域都有广泛的应用。


   决策树常用的算法:ID3、C4.5与CART算法。


2.数学基础部分


2.1、熵(Entropy)

熵表示随机变量不确定性的度量,随机变量X的熵定义如下:

熵越大代表随机变量的不确定性就越大。


2.2、条件熵(Conditional Entropy)

设有随机变量(X,Y),其联合概率分布为:

   条件熵H(Y|X)表示在已知随机变量X 的条件下,随机变量Y的不确定度。随机变量X给定的情况下随机变量Y的条件熵H(Y|X)定义为X给定条件下Y的条件概率分布的熵对X 的数学期望:

   当熵和条件熵中的概率由数据估计(特别是极大似然估计)得到时,所对应的熵与条件熵分别称为经验熵(empirical entropy)经验条件熵(empirical conditional entropy)


2.3、信息增益(Information Gain)

   信息增益表示得知特征A的信息而使得类D的信息的不确定性减少的程度。


   特征A对训练数据集D的信息增益g(D,A),定义为集合D 的经验熵H(D)与特征A 给定条件下D的经验条件熵H(D|A)之差,即:

bdaa4a75cad5a277d7dd8f0277911a66.png

   一般地,熵H(D)与条件熵H(D|A)之差称为互信息(Mutual Information)。决策树学习中的信息增益等价于训练数据集中类与特征的互信息。


   决策树学习应用信息增益准则选择特征。给定训练数据集D和特征A,经验熵H(D)表示对数据集D进行分类的不确定性。而经验条件熵H(D|A)表示在特征A 给定的条件下对数据集D进行分类的不确定性,那么它们的差,即信息增益,就表示由于特征A而使得对数据集D的分类的不确定性减少的程度。不同的特征往往具有不同的信息增益,信息增益大的特征具有更强的分类能力。


 缺点:信息增益偏向取值较多的特征

原因:当特征的取值较多时,根据此特征划分更容易得到纯度更高的子集,因此划分之后的熵更低,由于划分前的熵是一定的,因此信息增益更大,因此信息增益比较 偏向取值较多的特征。

 

2.4、信息增益比(Information Gain Ratio)

   信息增益比本质:是在信息增益的基础之上乘上一个惩罚参数。特征个数较多时,惩罚参数较小;特征个数较少时,惩罚参数较大。

信息增益比 = 惩罚参数 * 信息增益

   特征A对训练数据集D 的信息增益比gR(D,A)定义为其信息增益g(D,A)与训练数据集D 关于特征A的值的熵HA(D)之比,即:

144058fffb4f7ddd28d6fde9d10a2c01.png

   其中的HA(D),对于样本集合D,将当前特征A作为随机变量(取值是特征A的各个特征值),求得的经验熵。


惩罚参数:数据集D以特征A作为随机变量的熵的倒数,即:将特征A取值相同的样本划分到同一个子集中(之前所说数据集的熵是依据类别进行划分的)

985adaa605a04510ff7ef5e39e76ae6c.png

缺点:信息增益比偏向取值较少的特征;  

原因:当特征取值较少时HA(D)的值较小,因此其倒数较大,因而信息增益比较大。因而偏向取值较少的特征。


使用信息增益比:基于以上缺点,并不是直接选择信息增益率最大的特征,而是现在候选特征中找出信息增益高于平均水平的特征,然后在这些特征中再选择信息增益率最高的特征。


2.5、Gini指数(Gini Index)

   定义:基尼指数(基尼不纯度):表示在样本集合中一个随机选中的样本被分错的概率。Gini指数越小表示集合中被选中的样本被分错的概率越小,也就是说集合的纯度越高,反之,集合越不纯。

基尼指数= 样本被选中的概率 * 样本被分错的概率

   分类问题中,假设有K个类,样本点属于第k类的概率为pk,则概率分布的基尼指数定义为:

e3eb9928c96bb1428d0a54b4a3667739.png

说明:

   1. pk表示选中的样本属于k类别的概率,则这个样本被分错的概率是(1-pk);

   2. 样本集合中有K个类别,一个随机选中的样本可以属于这k个类别中的任意一个,因而对类别就加和;

   3. 当为二分类是,Gini(P) = 2p(1-p);


   对于给定的样本集合D,其基尼指数为(假设集合中有K个类别):

757c4562023c3f5179db9e1e1dd35216.png

如果样本集合D 可以根据特征A是否取某一可能值a被分割成D1、D2两部分,即:

20480fd922d5e2ec4606a9a10e7c9d1e.png

则在特征A的条件下,集合D的基尼指数定义为:

2144507808fb5dd43b7209770003dd1f.png

   基尼指数Gini(D)表示集合D的不确定度,基尼指数Gini(D,A)表示经A=a分割后集合D的不确定度。基尼指数越大,样本集合的不确定度也就越大,这一点与熵很相似。

相关文章
|
5月前
|
机器学习/深度学习 数据采集 人工智能
【机器学习算法篇】K-近邻算法
K近邻(KNN)是一种基于“物以类聚”思想的监督学习算法,通过计算样本间距离,选取最近K个邻居投票决定类别。支持多种距离度量,如欧式、曼哈顿、余弦相似度等,适用于分类与回归任务。结合Scikit-learn可高效实现,需合理选择K值并进行数据预处理,常用于鸢尾花分类等经典案例。(238字)
机器学习/深度学习 算法 自动驾驶
1167 0
|
6月前
|
算法 API 数据安全/隐私保护
深度解析京东图片搜索API:从图像识别到商品匹配的算法实践
京东图片搜索API基于图像识别技术,支持通过上传图片或图片URL搜索相似商品,提供智能匹配、结果筛选、分页查询等功能。适用于比价、竞品分析、推荐系统等场景。支持Python等开发语言,提供详细请求示例与文档。
|
9月前
|
监控 算法 安全
公司电脑监控软件关键技术探析:C# 环形缓冲区算法的理论与实践
环形缓冲区(Ring Buffer)是企业信息安全管理中电脑监控系统设计的核心数据结构,适用于高并发、高速率与短时有效的多源异构数据处理场景。其通过固定大小的连续内存空间实现闭环存储,具备内存优化、操作高效、数据时效管理和并发支持等优势。文章以C#语言为例,展示了线程安全的环形缓冲区实现,并结合URL访问记录监控应用场景,分析了其在流量削峰、关键数据保护和高性能处理中的适配性。该结构在日志捕获和事件缓冲中表现出色,对提升监控系统效能具有重要价值。
266 1
|
10月前
|
监控 算法 数据处理
基于 C++ 的 KD 树算法在监控局域网屏幕中的理论剖析与工程实践研究
本文探讨了KD树在局域网屏幕监控中的应用,通过C++实现其构建与查询功能,显著提升多维数据处理效率。KD树作为一种二叉空间划分结构,适用于屏幕图像特征匹配、异常画面检测及数据压缩传输优化等场景。相比传统方法,基于KD树的方案检索效率提升2-3个数量级,但高维数据退化和动态更新等问题仍需进一步研究。未来可通过融合其他数据结构、引入深度学习及开发增量式更新算法等方式优化性能。
252 17
|
10月前
|
机器学习/深度学习 数据采集 人工智能
20分钟掌握机器学习算法指南
在短短20分钟内,从零开始理解主流机器学习算法的工作原理,掌握算法选择策略,并建立对神经网络的直观认识。本文用通俗易懂的语言和生动的比喻,帮助你告别算法选择的困惑,轻松踏入AI的大门。
679 8
|
10月前
|
存储 算法 安全
如何控制上网行为——基于 C# 实现布隆过滤器算法的上网行为管控策略研究与实践解析
在数字化办公生态系统中,企业对员工网络行为的精细化管理已成为保障网络安全、提升组织效能的核心命题。如何在有效防范恶意网站访问、数据泄露风险的同时,避免过度管控对正常业务运作的负面影响,构成了企业网络安全领域的重要研究方向。在此背景下,数据结构与算法作为底层技术支撑,其重要性愈发凸显。本文将以布隆过滤器算法为研究对象,基于 C# 编程语言开展理论分析与工程实践,系统探讨该算法在企业上网行为管理中的应用范式。
282 8
|
10月前
|
存储 监控 算法
基于 C# 时间轮算法的控制局域网上网时间与实践应用
在数字化办公与教育环境中,局域网作为内部网络通信的核心基础设施,其精细化管理水平直接影响网络资源的合理配置与使用效能。对局域网用户上网时间的有效管控,已成为企业、教育机构等组织的重要管理需求。这一需求不仅旨在提升员工工作效率、规范学生网络使用行为,更是优化网络带宽资源分配的关键举措。时间轮算法作为一种经典的定时任务管理机制,在局域网用户上网时间管控场景中展现出显著的技术优势。本文将系统阐述时间轮算法的核心原理,并基于 C# 编程语言提供具体实现方案,以期深入剖析该算法在局域网管理中的应用逻辑与实践价值。
252 5
|
11月前
|
机器学习/深度学习 存储 Kubernetes
【重磅发布】AllData数据中台核心功能:机器学习算法平台
杭州奥零数据科技有限公司成立于2023年,专注于数据中台业务,维护开源项目AllData并提供商业版解决方案。AllData提供数据集成、存储、开发、治理及BI展示等一站式服务,支持AI大模型应用,助力企业高效利用数据价值。
|
12月前
|
机器学习/深度学习 人工智能 自然语言处理
AI训练师入行指南(三):机器学习算法和模型架构选择
从淘金到雕琢,将原始数据炼成智能珠宝!本文带您走进数字珠宝工坊,用算法工具打磨数据金砂。从基础的经典算法到精密的深度学习模型,结合电商、医疗、金融等场景实战,手把手教您选择合适工具,打造价值连城的智能应用。掌握AutoML改装套件与模型蒸馏术,让复杂问题迎刃而解。握紧算法刻刀,为数字世界雕刻文明!
428 6

热门文章

最新文章