【机器学习】分类

文章目录

    • 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

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

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

相关文章

《代码随想录》Day22打卡!

回溯算法 《代码随想录》回溯算法:组合 本题完整题目如下: 本题的完整思路如下: 1.本题使用回溯算法,其实回溯和递归是一样的道理,也是分为三步曲进行: 2.第一步:确定递归函数的返回值和参数&…

鱼眼相机模型与去畸变实现

1.坐标系说明 鱼眼相机模型涉及到世界坐标系、相机坐标系、图像坐标系、像素坐标系之间的转换关系。对于分析鱼眼相机模型,假定世界坐标系下的坐标点,经过外参矩阵的变换转到相机坐标系,相机坐标再经过内参转换到像素坐标,具体如下 进一步进…

[图形渲染]【Unity Shader】【游戏开发】 Shader数学基础17-法线变换基础与应用

在计算机图形学中,法线(normal) 是表示表面方向的向量。它在光照、阴影、碰撞检测等领域有着重要作用。本文将介绍如何在模型变换过程中正确变换法线,确保其在光照计算中的正确性,特别是法线与顶点的变换问题。 1. 法线与切线的基本概念 法线(Normal Vector) 法线(或…

我的2024年度总结2025展望

2025已经到来,下面是我对2024年的个人总结,以及对2025年的未来展望。 2024总结——峰回路转 2024大概是我大学这几年收获最满的一年,我不仅收获了丰富的技术内容,也提高了例如情商、管理能力、团队协作、开源思想等技术之外的事…

Windows 下安装 triton 教程

目录 背景解决方法方法一:(治标不治本)方法二:(triton-windows)- 安装 MSVC 和 Windows SDK- vcredist 安装- whl 安装- 验证 背景 triton 目前官方只有Linux 版本,若未安装,则会出…

如何使用网络工具进行网络性能评估

网络评估是对IT基础设施的系统评估,以确保它能够很好地满足企业的核心运营需求,确定了基础设施中需要改进的领域,并定义了改进的范围。 网络评估工具分析IT基础设施的各个方面,它通过评估网络设备、网络性能和安全威胁来仔细检查…

Vue.js组件开发-实现动态切换菜单简单示例

在Vue.js中&#xff0c;实现动态切换菜单通过组件化开发和Vue的响应式数据绑定来实现。 示例&#xff1a; 展示如何创建一个可以动态切换菜单的Vue组件。 首先&#xff0c;需要定义一个Vue组件&#xff0c;该组件将包含菜单项和用于切换菜单的状态。 1. 创建Vue组件 <t…

【笔记_连续发请求的问题】

疑问&#xff1a; 连续给同一个账号下的同一个应用发送三次启动应用请求&#xff0c;顺序是&#xff1a;订单1、订单2、订单3&#xff0c;但是有时候的执行顺序是&#xff1a;订单1、订单3、订单2 不管用不用队列&#xff0c;用不用webhook&#xff0c;都会出现这种情况 回答…

Vue项目整合与优化

前几篇文章&#xff0c;我们讲述了 Vue 项目构建的整体流程&#xff0c;从无到有的实现了单页和多页应用的功能配置&#xff0c;但在实现的过程中不乏一些可以整合的功能点及可行性的优化方案&#xff0c;就像大楼造完需要进行最后的项目验收改进一样&#xff0c;有待我们进一步…

Python、R用深度学习神经网络组合预测优化能源消费总量时间序列预测及ARIMA、xgboost对比...

全文链接&#xff1a;https://tecdat.cn/?p38726 分析师&#xff1a;Qingxia Wang 在能源领域&#xff0c;精准预测能源消费总量对制定合理能源战略至关重要。当前&#xff0c;能源消费预测分析主要运用单一模型&#xff08;如灰色预测法、时间序列分析法等&#xff09;和组合…

STM32使用UART发送字符串与printf输出重定向

首先我们先看STM32F103C8T6的电路图 由图可知&#xff0c;其PA9和PA10引脚分别为UART的TX和RX(注意&#xff1a;这个电路图是错误的&#xff0c;应该是PA9是X而PA9是RX&#xff0c;我们看下图的官方文件可以看出)&#xff0c;那么接下来我们应该找到该引脚的定义是什么&#xf…

Kotlin在医疗大健康域的应用实例探究与编程剖析(下)

四、Kotlin医疗编程实例分析 4.1 移动医疗应用实例 4.1.1 患者健康监测应用 在当今数字化医疗时代,患者健康监测应用为人们提供了便捷的健康管理方式。利用Kotlin开发的患者健康监测应用,能够实时采集患者的各类生理数据,如心率、血压、血氧饱和度等,并通过直观的可视化…

探索数据之美,Plotly引领可视化新风尚

在数据如潮的今天&#xff0c;如何精准捕捉信息的脉搏&#xff0c;让数据说话&#xff1f;Plotly&#xff0c;这款强大的数据可视化工具&#xff0c;正以其卓越的性能和丰富的功能&#xff0c;成为数据分析师、科学家及工程师们的得力助手。 Plotly不仅仅是一个绘图库&#xf…

Redis 5设计与源码分析读书笔记

目录 引言Redis 5.0的新特性Redis源码概述Redis安装与调试 简单动态字符串数据结构基本操作创建字符串释放字符串拼接字符串扩容策略 其余API 本章小结兼容C语言字符串、保证二进制安全sdshdr5的特殊之处是什么SDS是如何扩容的 跳跃表简介跳跃表节点与结构跳跃表节点跳跃表结构…

Golang学习历程【第五篇 复合数据类型:数组切片】

Golang学习历程【第五篇 复合数据类型&#xff1a;数组&切片】 1. 数组&#xff08;Array&#xff09;1.1 数组的定义1.2 初始化数组1.3 数据的循环遍历1.4 多维数组 2. 切片&#xff08;Slice&#xff09;2.1 切片声明、初始化2.2 基于数组创建切片2.2 切片的长度(len)和容…

【Unity】 HTFramework框架(五十七)通过Tag、Layer批量搜索物体

更新日期&#xff1a;2024年12月30日。 Github源码&#xff1a;[点我获取源码] Gitee源码&#xff1a;[点我获取源码] 索引 问题再现通过Tag搜索物体&#xff08;SearchByTag&#xff09;打开SearchByTag窗口搜索标记指定Tag的所有物体批量修改Tag搜索Undefined状态的所有物体 …

基于feapder爬虫与flask前后端框架的天气数据可视化大屏

# 最近又到期末了&#xff0c;有需要的同学可以借鉴。 一、feapder爬虫 feapder是国产开发的新型爬虫框架&#xff0c;具有轻量且数据库操作方便、异常提醒等优秀特性。本次设计看来利用feapder进行爬虫操作&#xff0c;可以加快爬虫的速率&#xff0c;并且简化数据入库等操作…

PCL点云库入门——PCL库点云滤波算法之统计滤波(StatisticalOutlierRemoval)

1、算法原理 统计滤波算法是一种利用统计学原理对点云数据进行处理的方法。它主要通过计算点云中每个点的统计特性&#xff0c;如均值、方差等&#xff0c;来决定是否保留该点。算法首先会设定一个统计阈值&#xff0c;然后对点云中的每个点进行分析。如果一个点的统计特性与周…

CentOS7 解决ping:www.baidu.com 未知的名称或服务

CentOS7 解决ping&#xff1a;www.baidu.com“未知的名称或服务 在VM查看网络配置 查看虚拟网络编辑器 编辑网络配置文件 vi /etc/sysconfig/network-scripts/ifcfg-ens33注意&#xff1a;不同机器的配置文件名可能不相同&#xff0c;通过 ip addr 命令查看 将 ONBOOT 从 no 改…

aws(学习笔记第二十一课) 开发lambda应用程序

aws(学习笔记第二十一课) 开发lambda应用程序 学习内容&#xff1a; lambda的整体概念开发lambda应用程序 1. lambda的整体概念 借助AWS Lambda&#xff0c;无需预置或管理服务器即可运行代码。只需为使用的计算时间付费。借助 Lambda&#xff0c;可以为几乎任何类型的应用进…