Skip to content

Commit

Permalink
Update SVM.md
Browse files Browse the repository at this point in the history
  • Loading branch information
ZhT515 authored Oct 21, 2021
1 parent 1670839 commit 7dd2cf1
Showing 1 changed file with 18 additions and 14 deletions.
32 changes: 18 additions & 14 deletions AI算法/machine-learning/SVM.md
Original file line number Diff line number Diff line change
Expand Up @@ -4,15 +4,15 @@

## 1. SVM直观解释

SVM,Support Vector Machine,它是一种二分类模型,其基本模型定义为特征空间上的间隔最大的线性分类器,其学习策略便是间隔最大化,最终可转化为一个凸二次规划问题的求解
SVM,Support Vector Machine,它是一种二分类模型,其基本模型定义为特征空间上的间隔最大的线性分类器,间隔最大使它有别于感知机;其还包括**核技巧**,这使它成为实质上的非线性分类器。其学习策略就是间隔最大化,可形式化为一个求解凸二次规划的问题。其学习算法就是求解凸二次规划的最优化算法

这里涉及了几个概念,**二分类模型****线性分类器****间隔最大化****凸二次规划问题**

- 二分类模型:给定的各个样本数据分别属于两个类之一,而目标是确定新数据点将归属到哪个类中。
- 线性分类器:分割样本点的分类器是一个超平面,这也就要求样本线性可分,这是hard-margin SVM的要求,对于后来的soft-margin SVM,放低为近似线性可分,再到后来的核技巧,要求映射到高维空间后要近似线性可分。
- 线性可分:$D0$和$D1$是$n$维欧氏空间中的两个点集(点的集合)。如果存在 $n$维向量 $w$和实数$b$,使得所有属于$D0$的点 xi 都有 $wx_i+b>0$,而对于所有属于$D1$的点 $x_j$则有 $wx_j+b<0$。则我们称$D0$和$D1$线性可分。
- 间隔最大化:首先要知道SVM中有函数间隔和几何间隔,函数间隔刻画样本点到超平面的相对距离,几何间隔刻画的是样本点到超平面的绝对距离,SVM的直观目的就是找到最小函数距离的样本点,然后最大化它的几何间隔。
- 凸二次规划:目标函数是二次的,约束条件是线性的。
- 二分类模型:给定的各个样本数据分别属于两个类之一,而目标是确定新数据点将归属到哪个类中。
- 线性分类器:分割样本点的分类器是一个超平面,这也就要求样本线性可分,这是hard-margin SVM的要求,对于后来的soft-margin SVM,放低为近似线性可分,再到后来的核技巧,要求映射到高维空间后要近似线性可分。
- 线性可分:$D0$和$D1$是$n$维欧氏空间中的两个点集(点的集合)。如果存在 $n$维向量 $w$和实数$b$,使得所有属于$D0$的点 xi 都有 $wx_i+b>0$,而对于所有属于$D1$的点 $x_j$则有 $wx_j+b<0$。则我们称$D0$和$D1$线性可分。
- 间隔最大化:首先要知道SVM中有函数间隔和几何间隔,函数间隔刻画样本点到超平面的相对距离,几何间隔刻画的是样本点到超平面的绝对距离,SVM的直观目的就是找到最小函数距离的样本点,然后最大化它的几何间隔。
- 凸二次规划:目标函数是二次的,约束条件是线性的。

## 2. 核心公式

Expand Down Expand Up @@ -195,15 +195,23 @@ $f(x)=\operatorname{sign}\left(w^{* T} \Phi(x)+b^{*}\right)=\operatorname{sign}\

## 5. 为什么 SVM 要引入核函数

当样本在原始空间线性不可分时,可将样本从原始空间映射到一个更高维的特征空间,使得样本在这个特征空间内线性可分。而引入这样的映射后,所要求解的对偶问题的求解中,无需求解真正的映射函数,而只需要知道其核函数。核函数的定义:K(x,y)=<?(x),?(y)>,即在特征空间的内积等于它们在原始样本空间中通过核函数 K 计算的结果。一方面数据变成了高维空间中线性可分的数据,另一方面不需要求解具体的映射函数,只需要给定具体的核函数即可,这样使得求解的难度大大降低。
当样本在原始空间线性不可分时,可将样本从原始空间映射到一个更高维的特征空间,使得样本在这个特征空间内线性可分。而引入这样的映射后,所要求解的对偶问题的求解中,无需求解真正的映射函数,而只需要知道其核函数。核函数的定义:$K(x,y)=<ϕ(x),ϕ(y)>$,即在特征空间的内积等于它们在原始样本空间中通过核函数 $K $计算的结果。一方面数据变成了高维空间中线性可分的数据,另一方面不需要求解具体的映射函数,只需要给定具体的核函数即可,这样使得求解的难度大大降低。

## 6. 为什么SVM对缺失数据敏感

这里说的缺失数据是指缺失某些特征数据,向量数据不完整。SVM 没有处理缺失值的策略。而 SVM 希望样本在特征空间中线性可分,所以特征空间的好坏对SVM的性能很重要。缺失特征数据将影响训练结果的好坏。

## 7. SVM 核函数之间的区别

一般选择线性核和高斯核,也就是线性核与 RBF 核。 线性核:主要用于线性可分的情形,参数少,速度快,对于一般数据,分类效果已经很理想了。 RBF 核:主要用于线性不可分的情形,参数多,分类结果非常依赖于参数。有很多人是通过训练数据的交叉验证来寻找合适的参数,不过这个过程比较耗时。 如果 Feature 的数量很大,跟样本数量差不多,这时候选用线性核的 SVM。 如果 Feature 的数量比较小,样本数量一般,不算大也不算小,选用高斯核的 SVM。
SVM 核函数一般选择**线性核****高斯核(RBF 核)**

线性核:主要用于线性可分的情形,参数少,速度快,对于一般数据,分类效果已经很理想了。

RBF 核:主要用于线性不可分的情形,参数多,分类结果非常依赖于参数。

如果 Feature 的数量很大,跟样本数量差不多,这时候选用线性核的 SVM。

如果 Feature 的数量比较小,样本数量一般,不算大也不算小,选用高斯核的 SVM。

## 8. LR和SVM的联系与区别

Expand All @@ -220,11 +228,7 @@ $f(x)=\operatorname{sign}\left(w^{* T} \Phi(x)+b^{*}\right)=\operatorname{sign}\

## 9. SVM的原理是什么?

SVM是一种二类分类模型。它的基本模型是在特征空间中寻找间隔最大化的分离超平面的线性分类器。(间隔最大是它有别于感知机)
(1)当训练样本线性可分时,通过硬间隔最大化,学习一个线性分类器,即线性可分支持向量机;
(2)当训练数据近似线性可分时,引入松弛变量,通过软间隔最大化,学习一个线性分类器,即线性支持向量机;
(3)当训练数据线性不可分时,通过使用核技巧及软间隔最大化,学习非线性支持向量机。
注:以上各SVM的数学推导应该熟悉:硬间隔最大化(几何间隔)---学习的对偶问题---软间隔最大化(引入松弛变量)---非线性支持向量机(核技巧)。
SVM是一种二类分类模型,其主要思想为找到空间中的一个更够将所有数据样本划开的超平面,并且使得本本集中所有数据到这个超平面的距离最短。它的基本模型是在特征空间中寻找间隔最大化的分离超平面的线性分类器。(间隔最大使它有别于感知机)。需要求解能够正确划分训练数据集并且几何间隔最大的分离超平面。对于线性可分的数据集来说,这样的超平面有无穷多个(即感知机),但是几何间隔最大的分离超平面却是唯一的。

## 10. SVM如何处理多分类问题?

Expand All @@ -239,4 +243,4 @@ svm一对一法(one-vs-one),针对任意两个类训练出一个分类器

- 关于SMO算法 https://blog.csdn.net/luoshixian099/article/details/51227754#commentBox
- 李航《统计学习方法》
- 面试真题 https://zhuanlan.zhihu.com/p/43827793 https://zhuanlan.zhihu.com/p/57947723
- 面试真题 https://zhuanlan.zhihu.com/p/43827793 https://zhuanlan.zhihu.com/p/57947723

0 comments on commit 7dd2cf1

Please sign in to comment.