【机器学习3】有监督学习经典分类算法
1 支持向量机
在现实世界的机器学习领域, SVM涵盖了各个方面的知识, 也是面试题目中常见的基础模型。

SVM的分类结果仅依赖于支持向量,对于任意线性可分的两组点,它
们在SVM分类的超平面上的投影都是线性不可分的。
2逻辑回归
2.1逻辑回归与线性回归
逻辑回归处理的是分类问题, 线性回归处理的是回归问题, 这是两者的最本质的区别。 逻辑回归中给定自变量和超参数后, 得到因变量的期望, 并基于此期望来处理预测分类问题。 逻辑回归与线性回归最大的区别, 即逻辑回归中的因变量为离散的,而线性回归中的因变量是连续的。 并且在自变量x与超参数θ确定的情况下, 逻辑回归可以看作广义线性模型(Generalized Linear Models)在因变量y服从二元分布时的一个特殊情况; 而使用最小二乘法求解线性回归时, 我们认为因变量y服从正态分布。
逻辑回归和线性回归的相同之处二者都使用了极大似然估计来对训练样本进行建模,另外, 二者在求解超参数的过程中, 都可以使用梯度下降的方法。
2.2 逻辑回归处理多标签的分类
如果一个样本只对应于一个标签, 我们可以假设每个样本属于不同标签的概率服从于几何分布, 使用多项逻辑回归(Softmax Regression)来进行分类:

一般来说, 多项逻辑回归具有参数冗余的特点, 即同时加减一个向量后预测结果不变。 特别地, 当类别数为2时:

利用参数冗余的特点, 我们将所有参数减去θ1, 式子变为:

整理后的式子与逻辑回归一致。 因此, 多项逻辑回归实际上是二分类逻辑回归在多标签分类下的一种拓展。
当存在样本可能属于多个标签的情况时, 我们可以训练k个二分类的逻辑回归分类器。 第i个分类器用以区分每个样本是否可以归为第i类, 训练该分类器时, 需要把标签重新整理为“第i类标签”与“非第i类标签”两类。
3决策树
决策树的生成包含了特征选择、 树的构造、 树的剪枝三个过程。将决策树应用集成学习的思想可以得到随机森林、 梯度提升决策树等模型。
3.1几种常用的决策树对比
常用的决策树算法有ID3、 C4.5、 CART
3.1.1 ID3最大信息增益
对于样本集合D, 类别数为K, 数据集D的经验熵表示为:

其中Ck是样本集合D中属于第k类的样本子集, |Ck|表示该子集的元素个数, |D|表示样本集合的元素个数。
计算某个特征A对于数据集D的经验条件熵H(D|A)为:

Di表示D中特征A取第i个值的样本子集, Dik表示Di中属于第k类的样本子集。
信息增益g(D,A)可以表示为二者之差, 可得:

3.1.2 C4.5最大信息增益比
特征A对于数据集D的信息增益比定义为:


3.1.3 CART最大基尼指数( Gini)
Gini描述的是数据的纯度, 与信息熵含义类似。

CART在每一次迭代中选择基尼指数最小的特征及其对应的切分点进行分类。但与ID3、 C4.5不同的是, CART是一颗二叉树, 采用二元切割法, 每一步将数据按特征A的取值切成两份, 分别进入左右子树。 特征A的Gini指数定义为:

通过对比三种决策树的构造准则, 我们不难总结三者之间的差异。
| 区别 | ID3 | C4.5 | CART |
|---|---|---|---|
| 评价标准 | 信息增益 | 信息增益比 | 基尼指数 |
| 样本类型 | 离散型变量 | 连续型变量 | 连续型变量 |
| 应用角度 | 分类 | 分类 | 分类/回归 |
| 缺失值 | 对样本特征缺失值敏感 | 对缺失值进行不同方式的处理 | 对缺失值进行不同方式的处理 |
| 实现 | 在每个结点上产生出多叉分支,每个特征在层级之间不会复用 | 在每个结点上产生出多叉分支,每个特征在层级之间不会复用 | 每个结点只会产生两个分支,且每个特征可以被重复使用 |
| 优化过程 | 通过剪枝来权衡树的准确性与泛化能力 | 通过剪枝来权衡树的准确性与泛化能力 | 直接利用全部数据发现所有可能的树结构进行对比 |
3.2不同剪枝方法的区别和联系
一棵完全生长的决策树会面临一个很严重的问题, 即过拟合。 需要对决策树进行剪枝, 剪掉一些枝叶, 提升模型的泛化能力。决策树的剪枝通常有两种方法, 预剪枝(Pre-Pruning) 和后剪枝(PostPruning)
3.2.1 预剪枝
预剪枝, 即在生成决策树的过程中提前停止树的增长。
预剪枝的核心思想是在树中结点进行扩展之前, 先计算当前的划分是否能带来模型泛化能力的提升, 如果不能, 则不再继续生长子树。 预剪枝对于何时停止决策树的生长有以下几种方法。

3.2.2后剪枝
后剪枝, 是在已生成的过拟合决策树上进行剪枝, 得到简化版的剪枝决策树。
后剪枝的核心思想是让算法生成一棵完全生长的决策树, 然后从最底层向上计算是否剪枝。剪枝过程将子树删除, 用一个叶子结点替代, 该结点的类别同样按照多数投票的原则进行判断。
常见的后剪枝方法包括错误率降低剪枝(Reduced Error Pruning, REP) 、 悲
观剪枝(Pessimistic Error Pruning, PEP) 、 代价复杂度剪枝(Cost Complexity Pruning, CCP) 、 最小误差剪枝(Minimum Error Pruning, MEP) 、 CVP(Critical Value Pruning) 、 OPP(Optimal Pruning) 等方法
相关文章:
【机器学习3】有监督学习经典分类算法
1 支持向量机 在现实世界的机器学习领域, SVM涵盖了各个方面的知识, 也是面试题目中常见的基础模型。 SVM的分类结果仅依赖于支持向量,对于任意线性可分的两组点,它 们在SVM分类的超平面上的投影都是线性不可分的。 2逻辑回归 …...
lv11 嵌入式开发 计算机硬件基础 1
目录 1 导学 1.1回顾及导学 1.2 嵌入式系统分层 1.3 linux底层开发 2 ARM体系结构与接口技术课程导学 3 计算机基础 3.1 计算机的进制 3.2 计算机组成 3.3 总线 4 多级存储结构与地址空间 4.1 多级存储概念 4.2 地址空间 5 CPU工作原理 6 练习 1 导学 1.1回顾及导…...
【Linux】vim
文章目录 一、vim是什么?二 、命令模式三、插入模式四、底行模式五、vim配置 一、vim是什么? Vim是一个强大的文本编辑器,它是Vi的增强版,支持多种语法高亮、插件扩展、多模式操作等功能。Vim有三种基本的工作模式:命…...
cstring函数
string 1.char str[]类型 fgets(s,10000,stdin) cin.getline(cin,10000) strlen(str) sizeof 求静态数组长度 2.string类型 getline(cin,a) cin.getline(cin,10000) str.lenth() str.size() cin 遇到空格就停止 3.gets 函数 char str[20]; gets(str); 4.puts 函…...
【owt】p2p client mfc 工程梳理
1年前构建的,已经搞不清楚了。所以梳理下,争取能用较新的webrtc版本做测试。最早肯定用这个测试跑通过 【owt】p2p Signaling Server 运行、与OWT-P2P-MFC 交互过程及信令分析官方的mfc客户端 估计是构造了多个不同的webrc版本的客户端...
pandas教程:Hierarchical Indexing 分层索引、排序和统计
文章目录 Chapter 8 Data Wrangling: Join, Combine, and Reshape(数据加工:加入, 结合, 变型)8.1 Hierarchical Indexing(分层索引)1 Reordering and Sorting Levels(重排序和层级排序)2 Summa…...
Redis 扩展 RedisBloom 插件,解决缓存击穿、穿透
文章目录 一、概述二、编译准备2.1 升级 make2.2 安装 Python3 三、编译 RedisBloom四、测试 RedisBloom五、应用场景5.1 缓存击穿5.2 缓存穿透5.3 原理总结 六、存在的问题 如果您对Redis的了解不够深入请关注本栏目,本栏目包括Redis安装,Redis配置文件…...
VBA技术资料MF80:选择文件及文件夹
我给VBA的定义:VBA是个人小型自动化处理的有效工具。利用好了,可以大大提高自己的工作效率,而且可以提高数据的准确度。我的教程一共九套,分为初级、中级、高级三大部分。是对VBA的系统讲解,从简单的入门,到…...
网络层:控制平面
路由选择算法 路由选择算法就是为了在端到端的数据传输中,选择路径上路由器的最好的路径。通常,一条好的路径指具有最低开销的路径。最低开销路径是指源和目的地之间具有最低开销的一条路。 根据集中式还是分散式来划分 集中式路由选择算法:…...
Ubuntu 系统内核 kernel panic
Ubuntu 系统内核 kernel panic 不能进入系统:报错end kernel panic -not syncing: attemped to kill init! exit code 0x00000100 系统启动的时候,按下‘e’键进入grub编辑界面,编辑grub菜单,选择“kernel /vmlinuz-XXXXro root…...
【flink】RowData copy/clone方式
说明:一般用户常用的是GenericRowData。flink内部则多使用BinaryRowData。 方法一、循环解决(不推荐): 代码较为复杂需要根据RowType获取到内部fields的logicalType,再使用RowData.createFieldGetter方法创建fieldGetters。 public static …...
网页图标工具
工具地址...
掌动智能:功能测试及拨测主要功能
在企业中对于功能测试及拨测而言,用户只需提供应用包和产品文档,由资深测试专家设计并执行测试,覆盖核心场景,包含特定业务流程以及行业通用特殊场景,支持需求定制。 执行过程严格监控,依据应用功能和业务需…...
第11章 Java集合(二)
目录 内容说明 章节内容 一、Set接口 二、HashSet集合 三、LinkedHashSet集合 四、TreeSet集合...
Transformer和ELMo模型、word2vec、独热编码(one-hot编码)之间的关系
下面简要概述了Transformer和ELMo模型、word2vec、独热编码(one-hot编码)之间的关系: 独热编码(One-hot Encoding)是一种最基本的词表示方法,将词表示为高维稀疏向量。它与ELMo、word2vec和Transformer的关…...
您与1秒钟测量两千个尺寸之间仅差一台智能测径仪!
随着产线的发展,自动化程度越来越高,生产速度越来越快,人们对产品的品质要求越来越高,对检测也提出了更高的要求。传统的检测与测量手段已经很难满足测量效率要求,业内迫切需要一种新型高效率的测量设备。 产线多种多样…...
k8s之service五种负载均衡byte的区别
1,什么是Service? 1.1 Service的概念 在k8s中,service 是一个固定接入层,客户端可以通过访问 service 的 ip 和端口访问到 service 关联的后端pod,这个 service 工作依赖于在 kubernetes 集群之上部署的一个附件&a…...
Unity项目转微信小游戏保姆教程,繁杂问题解决,及微信小游戏平台简单性能测试
前言 借着某人需求,做了一波简单的技术调研:将Unity项目转换为微信小游戏。 本文主要内容:Unity转换小游戏的步骤,遇到问题的解决方法,以及简单的性能测试对比 微信小游戏的限制 微信小游戏对程序包体大小有严格限制…...
json字符串转为开闭区间
1.需求背景 1.1 前端页面展示 1.2 前后端约定交互json 按照页面每一行的从左到右 * 示例 [{"leftSymbol":">","leftNum":100,"relation":"无","rightSymbol":null,"rightNum":0}, {"left…...
STM32 IIC 实验
1. 可以选择I2C1,也可以选择I2C2,或者同时选择,同时运行 配置时钟信号 为节约空间,选择这两个,然后选择GENERATE CODE 二、HAL_I2C_Mem_Write I2C_HandleTypeDef *hi2c:I2C设备句柄 uint16_t DevAddress&am…...
FigmaCN:5分钟快速实现Figma中文界面的终极解决方案
FigmaCN:5分钟快速实现Figma中文界面的终极解决方案 【免费下载链接】figmaCN 中文 Figma 插件,设计师人工翻译校验 项目地址: https://gitcode.com/gh_mirrors/fi/figmaCN 还在为Figma英文界面而烦恼吗?figmaCN是一款专为中文用户打造…...
SDMatte高可用集群部署:基于Kubernetes的弹性伸缩方案
SDMatte高可用集群部署:基于Kubernetes的弹性伸缩方案 1. 为什么需要高可用部署方案 电商大促期间,某美妆品牌突然发现他们的AI抠图服务崩溃了——每秒上千张的商品图等待处理,但单机部署的服务早已不堪重负。这种场景在企业级AI应用部署中…...
cutlass代码架构分析
CUTLASS 代码架构分析 本文档基于 cutlass代码进行梳理,快速理解 CUTLASS 4.x 的模块边界与调用链路。 1. 总体架构 CUTLASS 本质上是一个 header-only 的 CUDA C++ 模板库,外围配套了可选构建目标: include/:核心库(cutlass + cute) tools/:库实例化、性能测试与通用…...
Presto函数实战指南:从基础到高阶应用
1. Presto函数入门:从零开始掌握基础操作 第一次接触Presto函数时,我完全被它丰富的功能震撼到了。记得当时我需要快速分析一个包含数百万条记录的日志表,传统方法需要写复杂的MapReduce作业,而Presto仅用几行SQL函数就搞定了。下…...
避开这些坑!Sigma-Delta调制器设计中最容易忽略的5个稳定性问题(附MASH级联实测数据)
避开这些坑!Sigma-Delta调制器设计中最容易忽略的5个稳定性问题(附MASH级联实测数据) 在高速高精度ADC设计中,Sigma-Delta调制器因其优异的噪声整形特性成为首选方案。但当工程师们沉浸在理论计算的理想世界时,实验室示…...
如何使用Rainmeter监控PCIe设备延迟:完整响应时间检测指南
如何使用Rainmeter监控PCIe设备延迟:完整响应时间检测指南 【免费下载链接】rainmeter Desktop customization tool for Windows 项目地址: https://gitcode.com/gh_mirrors/ra/rainmeter Rainmeter是一款强大的Windows桌面自定义工具,不仅能美化…...
LSTM电池SOC估计最基本方法及全包代码:包含两个数据集、预处理代码、模型代码与估计结果
LSTM做电池SOC估计,最基本的方法,入门必学,包括两个数据集,及其介绍、预处理代码、模型代码、估计结果等,这是我见过最全的一个SOC估计代码包,总共文件大概有70个左右最近在折腾电池SOC估计,发现…...
Comsol异构电池力电热耦合模型:探索电池的多场奥秘
comsol异构电池力电热耦合模型 采用椭圆型电极颗粒模拟锂离子正负极的电极颗粒,还原真实电池的3D介观结构,耦合电化学场-热场-力学场,可模拟电流,浓度,温度,应力等多场结果在电池研究领域,深入理…...
计算机毕业设计springboot基于java技术的计算机实训室管理系统的设计与实现 基于SpringBoot框架的高校实训室资源预约与信息化管理平台的设计与实现 实验室智能调度与实训过程管理系统
计算机毕业设计springboot基于java技术的计算机实训室管理系统的设计与实现k8svdqb1 (配套有源码 程序 mysql数据库 论文) 本套源码可以在文本联xi,先看具体系统功能演示视频领取,可分享源码参考。随着高校信息化建设的深入推进,传…...
编写程序实现智能鱼竿鱼线拉力检测,拉力超标提示“小心断线”。
🎣 项目实战:基于应变片的智能鱼竿拉力监测系统一、实际应用场景描述 (Scenario)在海钓或路亚钓法中,鱼竿的调性(Action)和钓线的磅数(LB)至关重要。新手往往凭感觉遛鱼,当大鱼突然发…...
