人工智能的决策树介绍

决策树模型

决策树基于“树”结构进行决策

  • 每个“内部结点”对应于某个属性上的“测试”
  • 每个分支节点对应于该测试的一种可能结果(即属性的某个取值)
  • 每个“叶结点”对应于一个“预测结果”

学习过程:通过对训练样本的分析来确定“划分属性”(即内部结点所对应的属性)

预测过程:将测试示例从根结点开始,沿着划分属性所构成的“判定测试序列”下行,直到叶结点

决策树简史

第一个决策树算法:CLS(Concept Learning System)

使决策树受到关注、成为机器学习主流技术的算法:ID3

最常用的决策树算法:C4.5

可以用于回归任务的决策树算法:CART(Classification and Regression Tree)

基于决策树的最强大算法:RF(Random Forest)

决策树的基本算法

基本流程:

策略:“分而治之”

自根至叶的递归过程

在每个中间结点寻找一个“划分”属性

三种停止条件:①当前结点包含的样本全属于同一类别,无需划分;②当前属性集为空,或是所有样本在属性集上取值相同,无法划分;③当前结点包含的样本集合为空,不能划分

信息增益

信息熵

信息熵是度量样本集合“纯度”最常用的一种指标

假设当前样本集合D中第k类样本所占的比例为p_{k},则D的信息熵定义为:

Ent(D)=-\sum_{k=1}^{|y|}p_{k}log_{2}(p_{k}) 

其中y指的是总共有多少个类

Ent(D)的值越小,则D的纯度越高

如果p=0,则plog_{2}(p)=0

Ent(D)的最小值:0,此时D只有一类;

最大值:log_{2}(y),此时D每个样本都是一类

信息增益

离散属性a的取值:{a^1,a^2...a^v}

D_{v}:D中在a上取值=a^v的样本集合

以属性a对数据集D进行划分所获得的信息增益为:

Gain(D,a) = Ent(D)-\sum_{v=1}^{V}\frac{|D^v|}{|D|}Ent(D^v)

信息增益指的是划分前的信息熵--划分后的信息熵

 \frac{|D^v|}{|D|}指的是第v个分支的权重,样本越多越重要

生成决策树的例子

 增益率

信息增益:对可取值数目较多的属性有所偏好

Gain_-ratio(D,a)=\frac{Gain(D,a)}{IV(a)}

其中IV(a)= -\sum_{v=1}^{V}\frac{|D^v|}{|D|}log_{2}\frac{|D^v|}{|D|}

属性a的可能取值数目(即分支V越多),则IV(a)的值通常就越大

启发式:先从候选划分属性中找出信息增益高于平均水平的,再从中选取增益率最高的

基尼指数

Gini(D)=\sum_{k=1}^{|y|}\sum_{k'!=k}{p_{k}p_{k'}}=1-\sum_{k=1}^{|y|}p_{k}^{2} 

基尼指数越小,数据集D的纯度就越高

 属性a的基尼指数:Gini_-index(D,a)=\sum_{v=1}^{V}\frac{|D^{v}|}{|D|}Gini(D^{v})

在侯选属性集合中,选取那个使划分后基尼指数最小的属性

 划分选择vs剪枝

划分选择的各种准则虽然对决策树的尺寸有较大影响,但对泛化性能的影响很有限

剪枝方法和程度对决策树泛化性能的影响更为显著

剪枝是决策树对付“过拟合”的主要手段

剪枝

为了尽可能正确分类训练样本,有可能造成分支过多->过拟合,可通过主动去掉一些分支来降低过拟合的风险

预剪枝

提前终止某些分支的生长

后剪枝

生成一棵完全树,再“回头”剪枝

预剪枝后剪枝
时间开销训练时间开销降低,测试时间开销降低训练时间开销增加,测试时间开销降低
过/欠拟合风险过拟合风险降低,欠拟合风险增加过拟合风险降低,欠拟合风险基本不变
泛化性能后剪枝通常优于预剪枝

连续值

基本思路:连续属性离散化

连续变量x_{1}<x_{2}<....<x_{n},取区间的中点\frac{x_{i}+x_{i+1}}{2}作为属性值

常见做法:二分法

n个属性值可形成n-1个候选划分

然后可将它们当做n-1个离散属性值处理

 缺失值

现实应用中,经常会遇到属性值“缺失”现象;

选择划分属性的基本思路:样本赋权,权重划分

缺失值计算信息增益

 从“树”到“规则”

一棵决策树对应于一个“规则集”

每个从根结点到叶结点的分支路径对应于一条规则

好处:①改善可理解性;②进一步提高泛化能力

多变量决策树

每个分支结点不仅考虑一个属性;“斜决策树”不是为每个非叶节点寻找最佳划分属性,而是建立一个线性分类器

线性回归

 f(x)=wx_{i}+b      f(x)\simeq y_{i}

离散属性的处理:若有“序”,则连续化;否则,转化为k维向量

令均方误差最小化,有(w^{*},b^{*})=\frac{1}{m}\sum_{i=1}^{m}(f(x_{i})-y_{i})^2=\frac{1}{m}\sum_{i=1}^{m}(y_{i}-wx_{i}-b)^2

E_{(w,b)}=\sum_{i=1}^{m}(y_{i}-wx_{i}-b)^2进行最小二乘参数估计

分别对w和b求导:

\frac{\partial E_{(w,b)}}{\partial w}=2(w\sum_{i=1}^{m}x_{i}^{2}-\sum_{i=1}^{m}(y_{i}-b)x_{i})

\frac{\partial E_{(w,b)}}{\partial b}=2(mb-\sum_{i=1}^{m}(y_{i}-wx_{i}))

令导数为0,得到闭式解:

w=\frac{\sum_{i=1}^{m}y_{i}(x_{i}-\bar x)}{\sum_{i=1}^{m}x_{i}^{2}-\frac{1}{m}(\sum_{i=1}^{m}x_{i})^{2}}, b=\frac{1}{m}\sum_{i=1}^{m}(y_{i}-wx_{i})

广义线性模型

一般形式

y=g^{-1}(w^{T}+b)g^{-1}是单调可微的联系函数

令g(.)=ln(.)则得到对数线性回归,lny=w^{T}x+b

二分类任务

线性回归模型产生的实值输出z=w^{T}+b,期望输出y∈{0,1}

对数几率函数简称“对率函数”y=\frac{1}{1+e^{-z}},理想的“单位阶跃函数”y=\left\{\begin{matrix} 0,z<0 & \\ 0.5,z=0& \\ 1,z>0 & \end{matrix}\right.

对率回归(对数几率回归)

以对率函数为联系函数:y=\frac{1}{1+e^{-z}}变为y=\frac{1}{1+e^-{(w^{T}x+b)}},即ln\frac{y}{1-y}=w^{T}x+b

无需事先假设数据分布,可得到“类别”的近似概率预测,可直接应用现有数值优化算法求取最优解

若将y看作类后验概率估计p(y=1|x)

ln\frac{y}{1-y}=w^{T}x+b可写为ln\frac{p(y=1|x)}{p(y=0|x)}=w^{T}x+b

于是可使用“极大似然法”,给定数据集{(x_{i},y_{i})}_{i=1}^{m}最大化“对数似然”函数

\delta(w,b)=\sum_{i=1}^{m}lnp(y_{i}|x_{i};w,b)

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

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

相关文章

记录echarts各种地图json文件下载地址

今日绘图需要用到echarts的地图json文件&#xff0c;但是github上已经找不到了&#xff0c;后发现伟大的网友提供了地址如下&#xff1a;Index of /examples/data/asset/geohttps://echarts.apache.org/examples/data/asset/geo/ 免费下载实时更新的geoJson数据、行政区划边界…

如何解决Modbus转Profinet网关通信不稳定或数据丢失问题

接到现场反映&#xff0c;在配置Modbus转Profinet网关时&#xff0c;出现Modbus转Profinet网关&#xff08;XD-MDPN100&#xff09;通信不稳定或数据丢失的问题&#xff0c;就这个问题特做出答疑。 解决Modbus转Profinet网关&#xff08;XD-MDPN100&#xff09;通信不稳定或数据…

【Linux进阶之路】理解UDP,成为TCP。

前言 学了TCP 和UDP之后&#xff0c;感觉UDP就像是初入职场的年轻人&#xff0c;两耳不闻 “窗外事”&#xff0c;只管尽力地把自己的事情做好&#xff0c;但收获的却是不可靠&#xff0c;而TCP更像是涉世极深的"职场老油条"&#xff0c;给人的感觉就是 “城府极深&a…

Arduino中引脚的数字与真实引脚的对应关系

我们使用arduino开发时&#xff0c;最长遇到的是对端口管脚的拉高拉低&#xff0c;代码如下 void setup() {pinMode(13,OUTPUT); }void loop() {digitalWrite(13,HIGH); }上面还最简单io控制代码&#xff0c;其中引脚我们使用了数字13&#xff0c;但是这个13对应着哪个引脚呢&a…

老壁灯带你入门动态规划

1. 什么是动态规划 动态规划(dynamic programming)是运筹学的一个分支&#xff0c;是求解决策过程(decision process)最优化的数学方法。 从字面意义上来理解&#xff0c;就是走一步看一步&#xff0c;边解决问题&#xff0c;边对问题进行整体规划。 其实&#xff0c;动态规…

Mac上的Gatekeeper系统跟运行时保护

文章目录 问题&#xff1a;无法打开“xxx.xxx”&#xff0c;因为无法验证开发者。macOS无法验证此App是否包含恶意软件。如何解决&#xff1f; 参考资料门禁运行时保护 问题&#xff1a;无法打开“xxx.xxx”&#xff0c;因为无法验证开发者。macOS无法验证此App是否包含恶意软件…

Leetcode - 2580. 统计将重叠区间合并成组的方案数

文章目录 思路AC CODE总结 题目链接&#xff1a;2580. 统计将重叠区间合并成组的方案数 思路 一个区间合并的板子&#xff0c;计算出区间数目之后&#xff0c;每个区间都有放左和放右两种选法&#xff0c;所以最后的答案就是 2 k 2^k 2k。但是需要用c进行二维数组的排序&…

【正点原子FreeRTOS学习笔记】————(4)FreeRTOS中断管理

这里写目录标题 一、什么是中断&#xff1f;&#xff08;了解&#xff09;二、中断优先级分组设置&#xff08;熟悉&#xff09;三、中断相关寄存器&#xff08;熟悉&#xff09;四、FreeRTOS中断管理实验&#xff08;掌握&#xff09; 一、什么是中断&#xff1f;&#xff08;…

深入理解C语言宏定义

目录 一、前言 二、宏的相关语法 2.1 #define 2.2 #undef 2.3 #运算符 2.4 ##运算符 三、宏替换的规则 四、宏与函数 一、前言 我们都知道#define语句可以定义常量&#xff0c;在编译器预处理时会全部将名字替换为常量。与此同时&#xff0c;#define也允许把参数替换到…

开放大学2024年春《数控技术 060253》综合大作业参考答案

答案&#xff1a;更多答案&#xff0c;请关注【电大搜题】微信公众号 答案&#xff1a;更多答案&#xff0c;请关注【电大搜题】微信公众号 答案&#xff1a;更多答案&#xff0c;请关注【电大搜题】微信公众号 单选题 1数控系统的核心是&#xff08; &#xff09; …

【项目管理——时间管理】【自用笔记】

1 项目时间管理&#xff08;进度管理&#xff09;概述 过程&#xff1a;&#xff08;2—6&#xff09;为规划过程组&#xff0c;7为监控过程组 题目定义&#xff1a;项目时间管理又称为进度管理&#xff0c;是指确保项目按时完成所需的过程。目标&#xff1a;时间管理的主要目标…

Rust GUI学习 小部件系列(一):如何在iced窗口中使用颜色选择器colorpicker

注&#xff1a;此文适合于对rust有一些了解的朋友 iced是一个跨平台的GUI库&#xff0c;用于为rust语言程序构建UI界面。 前言&#xff1a; 本系列是iced的小部件应用介绍系列&#xff0c;主要介绍iced、iced_aw两个库中涉及的各种小部件的使用及实例演示。 本文所介绍的是co…

安捷伦Agilent E5071B网络分析仪

181/2461/8938产品概述&#xff1a; Agilent E5071B 网络分析仪可为射频组件提供快速、准确的测量。与同类网络分析仪相比&#xff0c;其宽动态范围和低迹线噪声可实现更高的测试质量和吞吐量。内置 2、3 和 4 个测试端口可同时测量具有最多四个端口的组件的所有信号路径。Agi…

中国土壤厚度空间分布数据

土壤层次分为覆盖层 林溶层 淀积层 母质层&#xff0c;其中在林溶层中的最上面那层就是我们通常说的土壤厚度在这一层中&#xff0c;这一层也被称为腐殖层&#xff0c;是肥力性质最好的一层&#xff0c;植物根系和微生物也集中在这一层。至于覆盖层在森林土壤中比较常见&#x…

2024年【G3锅炉水处理】考试题及G3锅炉水处理考试报名

题库来源&#xff1a;安全生产模拟考试一点通公众号小程序 G3锅炉水处理考试题参考答案及G3锅炉水处理考试试题解析是安全生产模拟考试一点通题库老师及G3锅炉水处理操作证已考过的学员汇总&#xff0c;相对有效帮助G3锅炉水处理考试报名学员顺利通过考试。 1、【多选题】锅筒…

vivado 在远程主机上启动作业、ISE命令图、实施类别,战略描述和指令映射

在远程主机上启动作业 一旦配置了远程主机&#xff0c;使用它们启动Vivado作业就很容易了。下图显示了启动运行对话框。启动跑步时&#xff0c;选择“在远程上启动跑步”hosts或Launch在群集上运行&#xff0c;然后选择特定的群集。这些作业将使用您的要执行的预配置设置。 作业…

Leetcode70. 爬楼梯(动态规划)

Leetcode原题 Leetcode70. 爬楼梯 标签 记忆化搜索 | 数学 | 动态规划 题目描述 假设你正在爬楼梯。需要 n 阶你才能到达楼顶。每次你可以爬 1 或 2 个台阶。你有多少种不同的方法可以爬到楼顶呢&#xff1f;示例 1&#xff1a;输入&#xff1a;n 2 输出&#xff1a;2 解…

阿里云服务器安装MySQL(宝塔面板)

只写关键步骤 1. 创建一个云服务器实例 2 修改密码&#xff0c;登录服务器 3. 安装宝塔面板 进入https://www.bt.cn/new/index.html 进入宝塔面板地址 4. 安装Mysql 5. 创建数据库&#xff08;可导入数据库&#xff09; 6. 测试连接数据库 打开Navicat&#xff08;或其他数据…

centos安装jdk的坑

文章目录 一、安装jdk二、查找jdk的目录三、配置JAVA_HOME 一、安装jdk 我们一般用yum search java | grep jdk查询可以安装的jdk 但是一定要注意如下图&#xff0c;必须知道jdk和jre的区别 yum install java-1.8.0-openjdk-devel.x86_64二、查找jdk的目录 用如下命令 sudo…

chrome 浏览器报错 This page will not function without javascript enabled

This page will not function without javascript enabled. Please enable javascript on your browser. 在访问公司spark history 页面时&#xff0c;发现页面加载不全&#xff0c;并提示如上报错&#xff0c;因此按照如下步骤&#xff0c;已解决问题。 在浏览器中启用 JavaS…