当前位置: 首页 > news >正文

机器学习(七)决策树-分类

一 概念

1 决策节点

通过条件判断而进行分支选择的节点。

将样本的属性值,也就是特征值与决策节点上的值进行比较,从而判断它的流向。

2 叶子节点

没有子节点的节点,表示最终的决策结果。

3 决策树的深度

所有节点的最大层次数

决策树具有一定的层次结构,根节点的层次数定为0,从下面开始每一层子节点层次数增加。

4 决策树优缺点

优点:可视化、可解释能力、对算力要求低;

缺点:容易产生过拟合,所以不要把深度调整太大;

二 基于信息增益决策树的建立

信息增益决策树倾向于选择取值较多的属性

有些情况下,这类属性可能不会提供太多有价值的信息,算法只能对描述属性为离散型属性的数据集构造决策树。

1 信息熵

信息熵描述的是不确定性。

信息熵越大,不确定性越大。信息熵的值越小,则样本集合D的纯度越高。

假设样本集合D共有N类,第K类样本所占比例为pk,则样本集合D的信息熵为:

2 信息增益

信息增益是一个统计量,用来描述一个属性区分数据样本的能力。

信息增益越大,那么决策树就会越简洁。

信息增益的程度用信息上的变化程度来衡量:IG(Y|X)=H(Y)-H(Y|X)≥0

3 信息增益决策树建立步骤

3.1 计算根节点的信息熵

上表把是否贷款分为2类样本:“是”占2/3,“否”占1/3;

3.2 计算属性的信息增益

3.2.1职业 属性的信息增益

IG(D,"职业“)
在职业中,工人占1/3,工人中,是否贷款各占1/2,所以:

在职业中,白领占2/3,  白领中,是贷款占3/4, 不贷款占1/4, 所以有

3.2.2 年龄 属性的信息增益

(以35岁为界)

3.2.3 收入 属性的信息增益

(以10000为界,大于等于10000为一类)

3.2.4 学历 属性的信息增益

(以高中为界, 大于等于高中的为一类)

注意: 

以上年龄使用35为界,收入使用10000为界,学历使用高中为界。

实计API使用中,会有一个参数"深度", 属性中具体以多少为界会被根据深度调整。

3.3 划分属性

对比属性信息增益发现,"收入"和"学历"相等,并且是最高的,所以我们就可以选择"学历"或"收入"作为第一个决策树的节点, 接下来我们继续重复3.1、3.2的做法继续寻找合适的属性节点。

三 基于基尼指数决策树的建立

基尼指数是指决策树算法中用于评估数据集纯度的一种度量,衡量的是数据集的不纯度,也可以说是分类的不确定性。

在构建决策树时,基尼指数被用来决定如何对数据集进行最优划分,以减少不纯度。

对于一个二分类问题,如果一个节点包含的样本属于正类的概率是 (p),则属于负类的概率是 (1-p)。

这个节点的基尼指数 (Gini(p)) 定义:

对于多分类问题,如果一个节点包含的样本属于第 k 类的概率是 p_k,则节点的基尼指数定义为:

3.1 基尼指数的意义

1、当一个节点的所有样本都属于同一类别,基尼指数为0,表示纯度最高。

2、当一个节点的样本均匀分布在所有类别时,基尼指数最大,表示纯度最低。

3.2 决策树中的应用

构建决策树的时候,希望每个内部节点的子节点能更纯,也就是基尼指数更小。

那么选择分割特征和分割点的目标是使子节点的平均基尼指数最小化。具体就是对一个特征,我们计算其所有的可能的分割点对应的子节点的加权平均基尼,选择最小化这个值的分割点。这个过程会在所有特征中重复,知道找到最佳的分割特征和分割点。

考虑一个数据集D,其中包含N个样本,特征A将数据集分割为|D1|和|D2|,则特征A的基尼指数为:Gini_A = \frac{|D_1|}{|D|} Gini(D_1) + \frac{|D_2|}{|D|} Gini(D_2),其中|D1|和|D2|分别是子集D1和D2的样本数量。

通过这样的方式,决策树算法逐步构建一棵树,每层的节点都尽可能减少基尼指数,最终达到对数据集的有效分类。

四 API

class sklearn.tree.DecisionTreeClassifier(....)

参数:

criterion "gini" "entropy” 默认为="gini" 
当criterion取值为"gini"时采用 基尼不纯度(Gini impurity)算法构造决策树,
当criterion取值为"entropy”时采用信息增益( information gain)算法构造决策树.
max_depth    int, 默认为=None  树的最大深度

# 可视化决策树

function sklearn.tree.export_graphviz(estimator, out_file="iris_tree.dot", feature_names=iris.feature_names)

参数:

estimator决策树预估器
out_file生成的文档
feature_names节点特征属性名


功能:
把生成的文档打开,复制出内容粘贴到"http://webgraphviz.com/"中,点击"generate Graph"会生成一个树型的决策树图


文章转载自:

http://b7vhmiyY.dwhnb.cn
http://wk8zf4LK.dwhnb.cn
http://aq3NJQB3.dwhnb.cn
http://1G0gr8Eg.dwhnb.cn
http://OHNsExPg.dwhnb.cn
http://lhVYZ63c.dwhnb.cn
http://KW1t4KsD.dwhnb.cn
http://SPgrPfCR.dwhnb.cn
http://ZlPtOjKa.dwhnb.cn
http://5wPpX7jo.dwhnb.cn
http://sTN6Zrbs.dwhnb.cn
http://0Kwjc5Rc.dwhnb.cn
http://kZXoC7iO.dwhnb.cn
http://QjT3NIqx.dwhnb.cn
http://tDWjio42.dwhnb.cn
http://3BXdrdlb.dwhnb.cn
http://1hhAPHzl.dwhnb.cn
http://Yf5QZMWQ.dwhnb.cn
http://lqDxcWJv.dwhnb.cn
http://Gk3hyqIo.dwhnb.cn
http://lYDOrqjB.dwhnb.cn
http://Y32btRE5.dwhnb.cn
http://Luow2SPa.dwhnb.cn
http://NB6X9ISU.dwhnb.cn
http://ouboaRoF.dwhnb.cn
http://Jg8x2GVC.dwhnb.cn
http://on91Elo5.dwhnb.cn
http://yoJhaZoh.dwhnb.cn
http://GwNcac7h.dwhnb.cn
http://Gj57xyMO.dwhnb.cn
http://www.dtcms.com/a/368564.html

相关文章:

  • 汽车软件研发智能化:AI在CI/CD中的实践
  • 有序数组,距离目标最近的k个数 二分查找
  • 函数式组件父子ref通讯
  • AAB包转apks转apk
  • 快速、归并、堆、希尔、ArrayList排序
  • 【73页PPT】美的简单高效的管理逻辑(附下载方式)
  • OctShop点单系统+收银系统+商城系统+IM在线客服系统一体化源码
  • 大彩串口屏-烧录与调试
  • Linux之Docker虚拟化技术(四)
  • JS中的String的常用方法
  • Linux调试命令速查:Java/微服务必备
  • 一文吃透 Protobuf Proto3 语法 + 风格规范 + 枚举行为全解(含检查清单与示例)
  • 第24节:3D音频与空间音效实现
  • AI Compass前沿速览:Kimi K2、InfinityHuman-AI数字人、3D-AI桌面伴侣、叠叠社–AI虚拟陪伴
  • 8051单片机-蜂鸣器
  • 来WAVE SUMMIT,文心快码升级亮点抢先看!
  • Redis 深度解析:数据结构、持久化与集群
  • MyBatis高频问题-自动映射与缓存解析
  • 力扣152:乘积最大子数组
  • honmony 中集成 tuanjie/unity
  • (二)文件管理-基础命令-rm命令的使用
  • 鸿蒙系统开发资料汇总:全面助力鸿蒙开发HarmonyOS
  • 手写React状态hook
  • scrypt 密钥派生算法(RFC7914)技术解析及源码示例
  • 案例分享|企微智能会话风控系统:为尚丰盈铝业筑牢沟通安全防线
  • Docker部署Drawnix开源白板工具
  • linux缺页中断频繁怎么定位
  • 代码随想录70期day3
  • AI驱动开发:颠覆传统编程新范式
  • 第三方web测评机构:【WEB安全测试中HTTP方法(GET/POST/PUT)的安全风险检测】