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

机器学习笔记【Week7】

一、SVM的动机:大间隔分类器

1、逻辑回归回顾

  • 假设函数为 sigmoid 函数:
    h θ ( x ) = 1 1 + e − θ T x h_\theta(x) = \frac{1}{1 + e^{-\theta^Tx}} hθ(x)=1+eθTx1

  • 分类依据是 h θ ( x ) ≥ 0.5 h_\theta(x) \geq 0.5 hθ(x)0.5 为正类,反之为负类。

2、SVM 的思路

  • SVM 不采用 sigmoid,而是直接构造优化目标:
    • 最大化间隔(margin):希望分类边界离最近的点尽可能远。
  • 构造代价函数时:
    • 对正类样本 y = 1 y=1 y=1,如果 θ T x ≥ 1 \theta^T x \geq 1 θTx1 则无惩罚,否则惩罚。
    • 对负类样本 y = 0 y=0 y=0,如果 θ T x ≤ − 1 \theta^T x \leq -1 θTx1 则无惩罚,否则惩罚。

二、SVM 的代价函数与优化

1、硬间隔 vs 软间隔

  • 硬间隔(hard margin):
    • 不允许分类错误,适合线性可分的情况。
  • 软间隔(soft margin):
    • 允许一定的错误分类,提升鲁棒性。

2、SVM 的标准形式

目标函数如下:
min ⁡ θ 1 2 ∥ θ ∥ 2 + C ∑ i = 1 m cost ( h θ ( x ( i ) ) , y ( i ) ) \min_{\theta} \frac{1}{2} \|\theta\|^2 + C \sum_{i=1}^{m} \text{cost}(h_\theta(x^{(i)}), y^{(i)}) θmin21θ2+Ci=1mcost(hθ(x(i)),y(i))
其中:

  • ∣ ∣ θ ∥ 2 ||\theta\|^2 ∣∣θ2 控制模型复杂度(间隔)。
  • C C C 控制对错误分类的惩罚程度。
  • cost ( ⋅ ) \text{cost}(\cdot) cost() 是 hinge loss。

三、支持向量与最大间隔的直观理解

  • 训练集中距离分类边界最近的点称为支持向量,它们决定了最终的分类超平面。
  • 最大化间隔等价于最小化 ∣ ∣ θ ∥ 2 ||\theta\|^2 ∣∣θ2

四、核函数(Kernel Function)

1、核函数的作用

  • 核函数可将输入数据映射到更高维空间,在高维空间中实现线性可分。
  • 避免显式计算高维特征,用核技巧计算内积。

2、常见核函数

  • 线性核(Linear Kernel):
    K ( x , z ) = x T z K(x, z) = x^T z K(x,z)=xTz

  • 多项式核(Polynomial Kernel):
    K ( x , z ) = ( x T z + c ) d K(x, z) = (x^T z + c)^d K(x,z)=(xTz+c)d

  • 高斯核 / RBF(Radial Basis Function):
    K ( x , z ) = exp ⁡ ( − ∥ x − z ∥ 2 2 σ 2 ) K(x, z) = \exp\left(-\frac{\|x - z\|^2}{2\sigma^2}\right) K(x,z)=exp(2σ2xz2)

3、高斯核的参数选择

  • σ(或 γ)控制分布宽度:
    • σ 小 → 拟合更 “尖锐”,可能过拟合。
    • σ 大 → 拟合更平滑,可能欠拟合。

五、SVM 的使用建议

1、特征缩放

  • 特征归一化非常重要,尤其在使用核函数时,避免某些维度主导距离计算。

2、SVM 的优点

  • 通常表现优于逻辑回归,尤其在特征维度高、样本数较少的场景。
  • 在文本分类、图像识别中表现优异。

3、与其他模型的对比

特点逻辑回归支持向量机
分类边界最大似然最大间隔
可扩展到核函数较难支持各种核函数
参数解释性较强较弱
小样本泛化能力一般

六、SVM 的训练与实现

1、训练库推荐

  • 推荐使用现有库如:
    • LIBSVM:C++ 实现,接口广泛。
    • Scikit-learn 中的 sklearn.svm.SVC
    • MATLAB/Octave 中也有内建支持。

2、超参数调优建议

  • 交叉验证选取最佳的:
    • 惩罚参数 C。
    • 核函数参数(如 σ)。
本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.dtcms.com/a/234575.html

相关文章:

  • 在WPF项目中集成Python:Python.NET深度实战指南
  • Unreal从入门到精通之 UE4 vs UE5 VR性能优化实战
  • 基于大模型的 UI 自动化系统
  • Auto-Coder使用GPT-4o完成:在用TabPFN这个模型构建一个预测未来3天涨跌的分类任务
  • 智能仓储的未来:自动化、AI与数据分析如何重塑物流中心
  • 完美搭建appium自动化环境
  • 微信小程序动态效果实战指南:从悬浮云朵到丝滑列表加载
  • Significant Location Change
  • 在Linux查看电脑的GPU型号
  • 数据库正常,但后端收不到数据原因及解决
  • 前端开发面试题总结-JavaScript篇(一)
  • awk处理xml文件封装集合变量和调用
  • Flink在B站的大规模云原生实践
  • 麒麟系统使用-进行.NET开发
  • 【redis实战篇】第八天
  • vue3实战第四步:引入Font Awesome图标库(二)
  • 【Go语言基础【5】】Go module概述:项目与依赖管理
  • uniapp map组件的基础与实践
  • 基于uniapp+WebSocket实现聊天对话、消息监听、消息推送、聊天室等功能,多端兼容
  • ONLYOFFICE协作空间3.1.1 企业版 介绍及部署说明:家庭云计算专家
  • 【Kubernetes】K8s 之 ETCD - 恢复备份
  • Web 3D协作平台开发案例:构建制造业远程设计与可视化协作
  • 【第一章:人工智能基础】01.Python基础及常用工具包-(2)Python函数与模块
  • Python数学可视化:3D参数曲面与隐式曲面绘制技术
  • 【SpringBoot自动化部署】
  • Rust 通用代码生成器:莲花,红莲尝鲜版三十六,图片初始化功能介绍
  • 软件功能测试目的是啥?如何通过测试用例确保产品达标?
  • 五子棋测试用例
  • LRU 和 DiskLRU实现相册缓存器
  • Python计算字符串距离算法库之textdistance使用详解