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

【机器学习】分类

文章目录

    • 1. 能否用回归解决分类问题
    • 2. 生成模型(概率生成)
    • 3. 判别模型(逻辑回归)
    • 4. 多分类问题

1. 能否用回归解决分类问题

二元分类

  • 数据分布不规律,回归函数会尽量减少误差,导致不合理的偏移
  • 离分界较远的点会影响划分
  • 决策边界偏移:难以找到回归函数,使大部分样本点集中在离散点附近

多元分类

  • 使用数值描述类别时,存在问题:相近的数值之间可能有联系,但实际分类之间没有隐含关系

2. 生成模型(概率生成)

确定模型

  • 贝叶斯公式:根据先验概率求后验概率

P ( C 1 ∣ x ) = P ( C 1 ) P ( x ∣ C 1 ) P ( C 1 ) P ( x ∣ C 1 ) + P ( C 2 ) P ( x ∣ C 2 ) P(C_1|x) = \frac{P(C_1)P(x|C_1)}{P(C_1)P(x|C_1) + P(C_2)P(x|C_2)} P(C1x)=P(C1)P(xC1)+P(C2)P(xC2)P(C1)P(xC1)

  • 对于二分类问题,只需判断是否属于分类 1,分类 2 即确定

  • 目标是找到拟合分布 P ( x ∣ C 1 ) P(x|C_1) P(xC1) P ( x ∣ C 2 ) P(x|C_2) P(xC2)

评估函数

  • 高斯分布:寻找 μ \mu μ Σ \Sigma Σ,使得高斯分布与 x 在 C 中的分布最大匹配
  • 分别寻找两个分布 C 1 C1 C1 C 2 C2 C2

找到最优的函数

  • 极大似然估计法
  • 通过代入所有的 x x x 到高斯分布,计算概率的连乘结果,最大化此结果,确定最优的 μ \mu μ Σ \Sigma Σ

如何实现分类

  • 找到高斯分布后,代入问题模型中,确定后验概率函数,输入 x x x 就能得到分类结果。

优化

  • 共用协方差 Σ \Sigma Σ:减少参数,防止过拟合。
  • 这时找到的函数将会是一条直线。

3. 判别模型(逻辑回归)

说明

  • 当共用协方差时,可以得到如下公式:

P ( C 1 ∣ x ) = σ ( w x + b ) P(C_1|x) = \sigma(wx + b) P(C1x)=σ(wx+b)

  • 其中, σ ( x ) = 1 1 + e − x \sigma(x) = \frac{1}{1 + e^{-x}} σ(x)=1+ex1 为 Sigmoid 函数。

  • 直接训练 w w w b b b,无需假设高斯分布。

做法

  • 确定模型:

    f ( x ) = P ( C 1 ∣ x ) = σ ( w x + b ) f(x) = P(C_1|x) = \sigma(wx + b) f(x)=P(C1x)=σ(wx+b)

    目标是直接找 w w w b b b 来确定后验概率。

  • 评估函数:
    L ( w , b ) = f w , b ( x 1 ) f w , b ( x 2 ) ( 1 − f w , b ( x 3 ) ) . . . L(w,b)=f_{w,b}(x^1)f_{w,b}(x^2)(1-f_{w,b}(x^3))... L(w,b)=fw,b(x1)fw,b(x2)(1fw,b(x3))...
    此时目标是最大化评估函数。

    引入交叉熵(Cross-Entropy):
    H ( p , q ) = − ∑ p ( x ) ln ⁡ ( q ( x ) ) H(p,q) = - \sum p(x) \ln(q(x)) H(p,q)=p(x)ln(q(x))

    • 交叉熵越小,表示两个分布越接近。

    进一步损失函数:

    − ln ⁡ L ( w , b ) = − ∑ [ y n ln ⁡ f w , b ( x n ) + ( 1 − y n ) ln ⁡ ( 1 − f w , b ( x n ) ) ] -\ln L(w,b) = - \sum \left[ y^n \ln f_{w,b}(x^n) + (1 - y^n) \ln(1 - f_{w,b}(x^n)) \right] lnL(w,b)=[ynlnfw,b(xn)+(1yn)ln(1fw,b(xn))]

    • 目标是最小化损失函数。
  • 寻找最优函数

    • 使用梯度下降法更新参数:

    w t + 1 = w t − η ∑ n [ − ( y n − f w , b ( x n ) ) x n ] w_{t+1} = w_t - \eta \sum_n \left[ -(y^n - f_{w,b}(x^n)) x^n \right] wt+1=wtηn[(ynfw,b(xn))xn]

与线性回归比较

  • 逻辑回归中引入了 Sigmoid 函数,输出值范围为 0 到 1。
  • 线性回归输出可能是任意实数。
  • 逻辑回归的损失函数是交叉熵,而线性回归使用平方误差。

与生成模型比较

  • 生成模型假设数据分布符合某个高斯分布。
  • 判别模型不做假设,直接学习分类边界(求 w w w b b b)。
  • 判别模型通常比生成模型表现好,但在数据不足的情况下,生成模型更为实用。

逻辑回归缺陷

  • 逻辑回归无法解决线性不可分问题,需要通过特征转换来处理,这通常是深度学习的核心。

为什么不用平方误差

  • 若用平方误差,损失函数为:

    L ( w , b ) = 1 2 ∑ ( y n − f w , b ( x n ) ) 2 L(w,b) = \frac{1}{2} \sum (y^n - f_{w,b}(x^n))^2 L(w,b)=21(ynfw,b(xn))2

    梯度为:

    d L d w = 2 ( y n − f w , b ( x n ) ) f w , b ( x n ) ( 1 − f w , b ( x n ) ) x n \frac{dL}{dw} = 2(y^n - f_{w,b}(x^n)) f_{w,b}(x^n) (1 - f_{w,b}(x^n)) x^n dwdL=2(ynfw,b(xn))fw,b(xn)(1fw,b(xn))xn

  • y n = 1 y^n = 1 yn=1 f ( x n ) = 1 f(x^n) = 1 f(xn)=1 时,梯度为 0(正常)。

  • y n = 1 y^n = 1 yn=1 f ( x n ) = 0 f(x^n) = 0 f(xn)=0 时,梯度也为 0(不正常,训练非常缓慢)。

  • 结论:使用平方误差损失函数,梯度会在边界附近为零,导致训练速度非常慢。交叉熵的损失函数更适合分类问题。


4. 多分类问题

  • 使用 逻辑回归 计算每个类别的概率值,然后通过 Softmax 函数选择最大概率的类别。
  • Softmax ( x i ) = e x i ∑ j e x j \text{Softmax}(x_i) = \frac{e^{x_i}}{\sum_j e^{x_j}} Softmax(xi)=jexjexi

相关文章:

【机器学习】分类

文章目录 1. 能否用回归解决分类问题2. 生成模型(概率生成)3. 判别模型(逻辑回归)4. 多分类问题 1. 能否用回归解决分类问题 二元分类 数据分布不规律,回归函数会尽量减少误差,导致不合理的偏移离分界较远…...

5.若依的角色权限控制

RBAC 基于角色的访问控制,通过角色来分配和管理用户的菜单权限。 修改课程管理的菜单到主类目下 新建角色并分配菜单 新建用户并分配角色 添加一个根菜单,父级为主类目...

Lumos学习王佩丰Excel第二十三讲:饼图美化与PPT图表

一、双坐标柱形图的补充知识 1、主次坐标设置 2、主次坐标柱形避让(通过增加两个系列,挤压使得两个柱形挨在一起) 增加两个系列 将一个系列设置成主坐标轴,另一个设成次坐标轴 调整系列位置 二、饼图美化 1、饼图美化常见设置 …...

安装winserver2008R2虚拟机步骤

一、服务器系统介绍 1.1什么是服务器? 服务器英文名称为“Server”,指的是网络环境下为客户机(Client)提供某种服务的专用计算机,服务器安装有网络操作系统(如Windows 2000 Server、Linux、Unix等)和各种服务器应用系统软件(如Web服务、电子…...

ACPI PM Timer

ACPI PM Timer 概述: ACPI PM Timer是一个非常简单的计时器,它以 3.579545 MHz 运行,在计数器溢出时生成系统控制中断(SCI)。它精度较低,建议使用其他定时器,如HPET或APIC定时器。 检测ACPI P…...

Linux 和设备树

“开放固件设备树”,简称 Devicetree (DT),是一种用于描述硬件的数据结构和语言。更具体地说,它是操作系统可读取的硬件描述,因此操作系统无需对机器的详细信息进行硬编码。 从结构上看,DT 是一棵树,或具有…...

Qt仿音乐播放器:QFileDialog添加本地文件

一、套路 QFileDialog fileDialog(this);// 创建对话框,并设置父元素;fileDialog.setWindowTitle("添加本地下载的音乐");//设置窗口标题//设置文件对话框的默认打开路径 QString projectPathQDir::currentPath();//获取当前目录 QDir dir(pr…...

Odoo 引用字段 fields.Reference:动态关系的选择器

在 Odoo 模型开发中,关系型字段是构建复杂应用的基础。 然而,传统的 m2o、o2m 和 m2m 字段需要在模型定义时就明确指定关系的目标模型,这在某些场景下会显得不够灵活。 为了解决这个问题,Odoo 提供了 fields.Reference 引用字段&a…...

Android笔试面试题AI答之Android基础(6)

Android入门请看《Android应用开发项目式教程》 文章目录 1.Android Studio版本与Gradle版本有什么关联?**1. Gradle 的作用****2. Android Studio 与 Gradle 的关系****3. 版本对应关系****4. 如何查看和修改版本****查看当前版本****修改版本** **5. 版本不兼容的…...

C# 中的记录类型简介 【代码之美系列】

🎀🎀🎀代码之美系列目录🎀🎀🎀 一、C# 命名规则规范 二、C# 代码约定规范 三、C# 参数类型约束 四、浅析 B/S 应用程序体系结构原则 五、浅析 C# Async 和 Await 六、浅析 ASP.NET Core SignalR 双工通信 …...

利用Java爬虫速卖通按关键字搜索AliExpress商品

在这个信息爆炸的时代,数据的价值日益凸显。对于电商领域的从业者来说,能够快速获取商品信息成为了一项重要的技能。速卖通(AliExpress)作为全球领先的跨境电商平台,拥有海量的商品数据。本文将介绍如何使用Java语言编…...

gitlab runner 实现 微信小程序自动化部署

微信小程序多人开发的情况下,开发人员都只能在本机上发布体验版,且需要到小程序管理后台自行切换到自己发布的版本,会出现体验版本覆盖的问题。给开发测试带来问题。 miniprogram-ci 的发布,使得开发人员可以通过命令行上传小程序…...

Playwright爬虫xpath获取技巧

示例一 <button class"MuiButtonBase-root MuiButton-root MuiLoadingButton-root MuiButton-contained MuiButton-containedPrimary MuiButton-sizeLarge MuiButton-containedSizeLarge MuiButton-colorPrimary MuiButton-fullWidth MuiButton-root MuiLoadingButton…...

总结TCP/IP四层模型

总结TCP/IP四层模型 阅读目录(Content) 一、TCP/IP参考模型概述 1.1、TCP/IP参考模型的层次结构二、TCP/IP四层功能概述 2.1、主机到网络层  2.2、网络互连层  2.3、传输层  2.3、应用层 三、TCP/IP报文格式 3.1、IP报文格式3.2、TCP数据段格式3.3、UDP数据段格式3.4、套…...

netcat和nmap的区别

Netcat 和 Nmap 是两种广泛使用的网络工具&#xff0c;但它们的功能和使用场景有所不同。下面是这两种工具的对比&#xff1a; Netcat&#xff08;nc&#xff09; 用途和功能: 网络连接: Netcat 是一个功能强大的网络工具&#xff0c;用于创建 TCP 或 UDP 连接。可以用来进行网…...

MinIO服务器文件复制(Windows环境Linux环境)

一、下载 Windows环境&#xff1a;https://dl.min.io/server/minio/release/windows-amd64/minio.exe Linux环境&#xff1a; > curl https://dl.min.io/client/mc/release/linux-amd64/mc \ --create-dirs \ -o $HOME/minio/mc > chmod x $HOME/minio/mc > expo…...

【机器学习】【朴素贝叶斯分类器】从理论到实践:朴素贝叶斯分类器在垃圾短信过滤中的应用

&#x1f31f; 关于我 &#x1f31f; 大家好呀&#xff01;&#x1f44b; 我是一名大三在读学生&#xff0c;目前对人工智能领域充满了浓厚的兴趣&#xff0c;尤其是机器学习、深度学习和自然语言处理这些酷炫的技术&#xff01;&#x1f916;&#x1f4bb; 平时我喜欢动手做实…...

无监督学习算法

K-均值聚类&#xff08;K-means clustering&#xff09;是一种常用的无监督学习算法&#xff0c;用于将数据集划分成 K 个不同的组或簇。该算法主要通过计算数据点之间的欧几里得距离来确定数据点之间的相似性&#xff0c;并根据相似性将数据点分配到不同的簇中&#xff0c;使得…...

【Compose multiplatform教程17】【组件】BoxWithConstraints组件

查看全部组件 https://blog.csdn.net/b275518834/article/details/144751353 BoxWithConstraints 功能说明&#xff1a;它是 Jetpack Compose 中的关键布局组件&#xff0c;能够精准捕捉自身所在容器的尺寸约束信息&#xff0c;通过获取最大宽度和最大高度这两个关键属性&…...

银河麒麟操作系统安装达梦数据库(超详细)

目录 引言1. 前期准备1.1 安装麒麟系统1.2 下载达梦数据库安装包&#xff08;DM8&#xff09;1.3 上传安装包到麒麟系统1.4 挂载安装包&#xff08;iso&#xff09;文件1.5 配置安装用户和组1.6 创建安装路径及修改权限1.7 设置临时安装目录 2. 安装达梦数据库&#xff08;DM8&…...

【AI学习】三、AI算法中的向量

在人工智能&#xff08;AI&#xff09;算法中&#xff0c;向量&#xff08;Vector&#xff09;是一种将现实世界中的数据&#xff08;如图像、文本、音频等&#xff09;转化为计算机可处理的数值型特征表示的工具。它是连接人类认知&#xff08;如语义、视觉特征&#xff09;与…...

大模型多显卡多服务器并行计算方法与实践指南

一、分布式训练概述 大规模语言模型的训练通常需要分布式计算技术,以解决单机资源不足的问题。分布式训练主要分为两种模式: 数据并行:将数据分片到不同设备,每个设备拥有完整的模型副本 模型并行:将模型分割到不同设备,每个设备处理部分模型计算 现代大模型训练通常结合…...

【OSG学习笔记】Day 16: 骨骼动画与蒙皮(osgAnimation)

骨骼动画基础 骨骼动画是 3D 计算机图形中常用的技术&#xff0c;它通过以下两个主要组件实现角色动画。 骨骼系统 (Skeleton)&#xff1a;由层级结构的骨头组成&#xff0c;类似于人体骨骼蒙皮 (Mesh Skinning)&#xff1a;将模型网格顶点绑定到骨骼上&#xff0c;使骨骼移动…...

Unit 1 深度强化学习简介

Deep RL Course ——Unit 1 Introduction 从理论和实践层面深入学习深度强化学习。学会使用知名的深度强化学习库&#xff0c;例如 Stable Baselines3、RL Baselines3 Zoo、Sample Factory 和 CleanRL。在独特的环境中训练智能体&#xff0c;比如 SnowballFight、Huggy the Do…...

使用Matplotlib创建炫酷的3D散点图:数据可视化的新维度

文章目录 基础实现代码代码解析进阶技巧1. 自定义点的大小和颜色2. 添加图例和样式美化3. 真实数据应用示例实用技巧与注意事项完整示例(带样式)应用场景在数据科学和可视化领域,三维图形能为我们提供更丰富的数据洞察。本文将手把手教你如何使用Python的Matplotlib库创建引…...

Selenium常用函数介绍

目录 一&#xff0c;元素定位 1.1 cssSeector 1.2 xpath 二&#xff0c;操作测试对象 三&#xff0c;窗口 3.1 案例 3.2 窗口切换 3.3 窗口大小 3.4 屏幕截图 3.5 关闭窗口 四&#xff0c;弹窗 五&#xff0c;等待 六&#xff0c;导航 七&#xff0c;文件上传 …...

STM32---外部32.768K晶振(LSE)无法起振问题

晶振是否起振主要就检查两个1、晶振与MCU是否兼容&#xff1b;2、晶振的负载电容是否匹配 目录 一、判断晶振与MCU是否兼容 二、判断负载电容是否匹配 1. 晶振负载电容&#xff08;CL&#xff09;与匹配电容&#xff08;CL1、CL2&#xff09;的关系 2. 如何选择 CL1 和 CL…...

关于easyexcel动态下拉选问题处理

前些日子突然碰到一个问题&#xff0c;说是客户的导入文件模版想支持部分导入内容的下拉选&#xff0c;于是我就找了easyexcel官网寻找解决方案&#xff0c;并没有找到合适的方案&#xff0c;没办法只能自己动手并分享出来&#xff0c;针对Java生成Excel下拉菜单时因选项过多导…...

绕过 Xcode?使用 Appuploader和主流工具实现 iOS 上架自动化

iOS 应用的发布流程一直是开发链路中最“苹果味”的环节&#xff1a;强依赖 Xcode、必须使用 macOS、各种证书和描述文件配置……对很多跨平台开发者来说&#xff0c;这一套流程并不友好。 特别是当你的项目主要在 Windows 或 Linux 下开发&#xff08;例如 Flutter、React Na…...

从零开始了解数据采集(二十八)——制造业数字孪生

近年来&#xff0c;我国的工业领域正经历一场前所未有的数字化变革&#xff0c;从“双碳目标”到工业互联网平台的推广&#xff0c;国家政策和市场需求共同推动了制造业的升级。在这场变革中&#xff0c;数字孪生技术成为备受关注的关键工具&#xff0c;它不仅让企业“看见”设…...