[机器学习][基础算法]SVM

本文深入解析SVM(支持向量机)的工作原理,包括如何通过最大间隔找到最优分类超平面,以及如何使用核函数处理非线性可分问题。介绍了线性核、多项式核、高斯核等多种核函数的特点与适用场景。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

SVM

Support vector machine

一般去理解一个算法,都是从名字入手,接触了这么几个算法,这是唯一一个让人捉摸不透的名字.

https://onionesquereality.wordpress.com/2009/03/22/why-are-support-vectors-machines-called-so/amp/

SVM:

from the classifier to the closest data points called the support vector,these specofic data points are “supporting” the hyperplane into “equilibrium”.

The distance between the two thin lines is called the margin

The Support Vectors constrain the width of the margin

[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-Acuahdy3-1588260168333)(/Users/rainjaneJerry/Library/Application Support/typora-user-images/image-20200430225731766.png)]

上图中两个红色菱形点与一个蓝色实心圆点就是支持向量,通过这个求解目标,以及约束条件来求解这个超平面。

SVM是定义在特征空间上的.

学习目标:在特征空间中找到一个分离超平面,能将实例分到不同的类.

利用间隔最大化求最优分离超平面.

核函数

引入核函数可以解决非线性的情况:将样本从原始空间映射到一个更高为的特征空间,使得样本在这个特征空间内线性可分

不仅用在SVM中,DP中也会用到.

常用的核函数及对比:

  • Linear Kernel 线性核
    k ( x i , x j ) = x i T x j k(x_i,x_j)=x_i^{T}x_j k(xi,xj)=xiTxj
    线性核函数是最简单的核函数,主要用于线性可分,它在原始空间中寻找最优线性分类器,具有参数少速度快的优势。 如果我们将线性核函数应用在KPCA中,我们会发现,推导之后和原始PCA算法一模一样,这只是线性核函数偶尔会出现等价的形式罢了。

  • Polynomial Kernel 多项式核
    k ( x i , y j ) = ( x i T x j ) d k(x_i,y_j)=(x_i^{T}x_j)^d k(xi,yj)=(xiTxj)d

    也有复杂的形式:

    k ( x i , x j ) = ( a x i T x j + b ) d k(x_i,x_j)=(ax_i^{T}x_j+b)^d k(xi,xj)=(axiTxj+b)d
    其中 d ≥ 1 d\ge1 d1为多项式次数,参数就变多了,多项式核实一种非标准核函数,它非常适合于正交归一化后的数据,多项式核函数属于全局核函数,可以实现低维的输入空间映射到高维的特征空间。其中参数d越大,映射的维度越高,和矩阵的元素值越大。故易出现过拟合现象。

  • 径向基函数 高斯核函数 Radial Basis Function(RBF)

k ( x i , x j ) = e x p ( − ∣ ∣ x i − x j ∣ ∣ 2 2 σ 2 ) k(x_i,x_j)=exp(-\frac{||x_i-x_j||^2}{2\sigma^2}) k(xi,xj)=exp(2σ2xixj2)

σ > 0 \sigma>0 σ>0是高斯核带宽,这是一种经典的鲁棒径向基核,即高斯核函 数,鲁棒径向基核对于数据中的噪音有着较好的抗干扰能力,其 参数决定了函数作用范围,超过了这个范围,数据的作用就“基本 消失”。高斯核函数是这一族核函数的优秀代表,也是必须尝试的 核函数。对于大样本和小样本都具有比较好的性能,因此在多数 情况下不知道使用什么核函数,优先选择径向基核函数。

  • Laplacian Kernel 拉普拉斯核

k ( x i , x j ) = e x p ( − ∣ ∣ x i − x j ∣ ∣ σ ) k(x_i,x_j)=exp(-\frac{||x_i-x_j||}{\sigma}) k(xi,xj)=exp(σxixj)

  • Sigmoid Kernel Sigmoid核

k ( x i , x j ) = t a n h ( α x T x j + c ) k(x_i,x_j)=tanh(\alpha x^Tx_j+c) k(xi,xj)=tanh(αxTxj+c)

​ 采用Sigmoid核函数,支持向量机实现的就是一种多层感知器神 经网络。

​ 对于核函数如何选择的问题,吴恩达教授是这么说的:

  • 如果Feature的数量很大,跟样本数量差不多,这时候选用LR或者是Linear Kernel的SVM
  • 如果Feature的数量比较小,样本数量一般,不算大也不算小,选用SVM+Gaussian Kernel
  • 如果Feature的数量比较小,而样本数量很多,需要手工添加一些feature变成第一种情况

公式推导放到后面,以实际应用驱动理论.

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值