学习日志-2021.10.11
学习日志-2021.10.11
复习一下机器学习书本第四章内容
决策树
-
基本算法
这是一个递归的过程,有三种情况会导致递归返回:
- 当前节点包含的样本全属于同一类别,无需划分
- 当前属性集为空,或是所有样本在所有属性上取值相同,无法划分
- 当前结点包含的样本集合为空,不能划分
输入:训练集
属性集
过程:函数 TreeGenerate(
, )- 生成结点 node :
- if
中样本全属于同一类别 then- 将 node 标记为
类叶结点;return
- 将 node 标记为
- end if
- if
OR 中样本在 上取值相同 then- 将 node 标记为叶结点,其类别标记为
中样本数最多的类;return
- 将 node 标记为叶结点,其类别标记为
- end if
- 从
中选择最优划分属性 ; - for
的每一个值 do- 为 node 生成一个分支;令
表示 中在 上取值为 的样本子集; - if
为空 then- 将分支节点标记为叶结点,其类别标记为
中样本最多的类;return
- 将分支节点标记为叶结点,其类别标记为
- else
- 以 TreeGenerate(
, \ )为分支点
- 以 TreeGenerate(
- end if
- 为 node 生成一个分支;令
- end for
输出:以 node 为根节点的一棵决策树
-
划分选择
-
信息增益
信息熵:
为当前样本集合 中第 类样本所占的比例
的值越小,则 的纯度越高信息增益:
假定离散值
有可能的取值为 ,使用 来对样本集进行划分,则会产生V个分支结点。 表示第 个分支包含了 中所有在属性 上取值为 的样本 表示分支结点的权重
一般而言,信息增益越大,意味着使用属性
来进行划分所获得的“纯度提升”越大。 -
增益率
其中
成为属性 的“固有值”。属性 的可能取值数目越多,则 的值通常越大。
-
基尼指数
-
基尼值
直观来说,
反映了从数据集 中随机抽取两个样本,其类别标记不一致的概率。即, 越小,则数据集 的纯度越高。 -
基尼指数
在选择基尼指数最小的属性作为最优化分。
-
-
-
剪枝处理
防止决策树学习算法“过拟合”
基本策略分为 预剪枝 和 后剪枝
- 预剪枝:指在决策树生成过程中,对每个结点在划分前先进行评估,若当前结点的划分不能带来决策树泛化性能的提升,则停止划分并将当前节点标记为叶结点。
- 后剪枝:先从训练集生成一颗完整的决策树,然后自底向上地对非叶结点进行考察,若将该结点对应的子树替换为叶结点能带来决策树泛化能力的提升,则将该子树替换为叶结点。
-
连续与缺失值
- 连续值处理
- 上述决策树处理过程是基于离散属性的,在现实问题中常遇到连续值,对此需要将连续属性离散化
- 最简单的方法是采用二分法对连续属性进行处理
- 缺失值处理
- 现实中侦测到的样本数据信息可能存在不完整的情况,为了能够尽量使得样本信息能够尽量被使用,需要对缺失值进行处理
- 连续值处理
【推荐】国内首个AI IDE,深度理解中文开发场景,立即下载体验Trae
【推荐】编程新体验,更懂你的AI,立即体验豆包MarsCode编程助手
【推荐】抖音旗下AI助手豆包,你的智能百科全书,全免费不限次数
【推荐】轻量又高性能的 SSH 工具 IShell:AI 加持,快人一步
· 如何编写易于单元测试的代码
· 10年+ .NET Coder 心语,封装的思维:从隐藏、稳定开始理解其本质意义
· .NET Core 中如何实现缓存的预热?
· 从 HTTP 原因短语缺失研究 HTTP/2 和 HTTP/3 的设计差异
· AI与.NET技术实操系列:向量存储与相似性搜索在 .NET 中的实现
· 周边上新:园子的第一款马克杯温暖上架
· Open-Sora 2.0 重磅开源!
· 分享 3 个 .NET 开源的文件压缩处理库,助力快速实现文件压缩解压功能!
· Ollama——大语言模型本地部署的极速利器
· [AI/GPT/综述] AI Agent的设计模式综述