详细描述一下支持向量机决策函数的推导过程
时间: 2023-12-23 14:27:47 浏览: 179
支持向量机(Support Vector Machine,SVM)是一种常用的机器学习算法,用于分类和回归问题。其决策函数的推导过程如下:
1. 假设我们有一个训练数据集,其中包含一些已知的样本点和它们对应的标签。我们的目标是找到一个决策函数,可以将新的样本点正确地分类。
2. SVM的决策函数是基于特征空间中的超平面的。对于二分类问题,我们希望找到一个超平面,可以将两个不同类别的样本点分开。
3. SVM的决策函数可以表示为:f(x) = sign(w·x + b),其中x是输入样本的特征向量,w是超平面的法向量,b是超平面的偏置项。
4. SVM的目标是找到一个最优的超平面,使得所有样本点到超平面的距离最大化。这个距离被称为间隔(margin)。
5. 为了求解最优超平面,我们需要解决一个优化问题。这个问题可以转化为一个凸二次规划问题,可以使用拉格朗日乘子法来求解。
6. 通过求解优化问题,我们可以得到一组拉格朗日乘子α,它们对应于训练数据集中的每个样本点。
7. 根据KKT条件,只有一部分样本点对应的拉格朗日乘子α不为0,这些样本点被称为支持向量。它们位于间隔边界上,决定了超平面的位置。
8. 最终,我们可以通过计算支持向量的权重向量w和偏置项b来得到决策函数。
以上是支持向量机决策函数的推导过程。
相关问题
支持向量机目标函数推导
### 支持向量机目标函数的数学推导
支持向量机(SVM)的目标是在特征空间中找到一个最优超平面,使得不同类别的样本能够被尽可能宽的间隔分隔开。为了实现这一目标,定义了一个优化问题来最大化这个间隔。
#### 定义决策边界和几何间隔
对于线性可分的数据集,假设存在一个超平面 \( w \cdot x + b = 0 \),其中 \( w \) 是法向量,\( b \) 是偏置项。给定训练数据 \( (x_i, y_i), i=1,\ldots,n \),其中 \( y_i \in \{-1,+1\} \),则分类条件可以表示为:
\[ y_i(w \cdot x_i + b) \geqslant 1 \]
这里引入了松弛变量 \( \xi_i \geqslant 0 \),允许某些点位于错误的一侧或靠近分割面,从而扩展到非完全线性可分的情况[^2]。
#### 构建原始优化问题
考虑到上述不等式约束以及希望最小化权重向量 \( ||w|| \) 的长度以获得最大间隔,构建如下带惩罚项的最优化模型:
\[ \min_{w,b}\frac{1}{2} \|w\|^2+C\sum^n_{i=1}\xi_i \]
\[ s.t.\quad y_i[w^Tx_i+b]\geq1-\xi_i ,\forall i; \xi_i\geq0 \]
这里的参数 C 控制着对误分类误差的关注程度与寻找较大边缘之间的平衡关系。
#### 转换为拉格朗日对偶形式
通过引入拉格朗日乘子方法求解此凸二次规划问题,得到其对应的Lagrangian表达式,并进一步转化为对偶问题:
\[ L_P=\frac{1}{2}\|w\|^2-C\sum^n_{i=1}\xi_i+\sum^n_{i=1}\alpha_i[y_i(w^Tx_i+b)-1+\xi_i]-\sum^n_{i=1}\mu_i\xi_i \]
最终简化后的对偶问题是关于α的最大化问题,在满足KKT条件下解决原问题中的极小极大值问题:
\[ \max_\alpha W(\alpha)=\sum^n_{i=1}\alpha_i-\frac{1}{2}\sum^n_{i,j=1}y^{(i)}y^{(j)}\alpha_i\alpha_j(x^{(i)})^Tx^{(j)} \]
\[ s.t.\quad 0\leq\alpha_i\leq C;\sum^n_{i=1}\alpha_iy_i=0 \]
这种转换不仅使计算变得更为高效,而且也便于处理高维甚至无限维度的空间映射情况下的核技巧应用。
```python
from cvxopt import matrix, solvers
def svm_dual(Q, p, G=None, h=None, A=None, b=None):
Q = matrix(Q)
p = matrix(p)
if G is not None and h is not None:
G = matrix(G)
h = matrix(h)
if A is not None and b is not None:
A = matrix(A).trans()
b = matrix(b)
solution = solvers.qp(Q, p, G, h, A, b)['x']
return list(solution)
```
支持向量机 简单推导
支持向量机是一种二分类模型,其基本模型定义为特征空间上的间隔最大的线性分类器,其学习策略便是间隔最大化,可以通过求解凸二次规划问题来实现。下面是简单的推导过程:
假设训练数据集为$T={(x_1,y_1),(x_2,y_2),...,(x_N,y_N)}$,其中$x_i∈R^n$为特征向量,$y_i∈{-1,1}$为类别标记。线性可分支持向量机的基本模型为:
$$
f(x)=w^Tx+b
$$
其中,$w$为权值向量,$b$为偏置,$w$和$b$确定了分离超平面。对于输入空间中的任意点$x$,判定其类别的函数为:
$$
\operatorname{sign}(f(x))
$$
为了使得分类器能够正确分类训练数据集中的所有样本,需要满足以下约束条件:
$$
\begin{cases}
w^Tx_i+b\geq1, & y_i=1 \\
w^Tx_i+b\leq-1, & y_i=-1
\end{cases}
$$
即对于正样本,其函数间隔$w^Tx_i+b$应大于等于1;对于负样本,其函数间隔$w^Tx_i+b$应小于等于-1。将上述约束条件转化为:
$$
y_i(w^Tx_i+b)\geq1, i=1,2,...,N
$$
为了使得间隔最大化,需要最小化$w$的平方范数,即:
$$
\frac{1}{2}||w||^2
$$
于是,线性可分支持向量机的优化问题可以表示为:
$$
\min_{w,b}\frac{1}{2}||w||^2 \\
s.t. \quad y_i(w^Tx_i+b)\geq1, i=1,2,...,N
$$
这是一个凸二次规划问题,可以通过拉格朗日乘子法求解。最终得到的决策函数为:
$$
f(x)=\operatorname{sign}(\sum_{i=1}^N\alpha_iy_ix_i^Tx+b)
$$
其中,$\alpha_i$为拉格朗日乘子,满足$\alpha_i\geq0$,且$\sum_{i=1}^N\alpha_iy_i=0$。对于训练数据集中的样本点,若其对应的$\alpha_i>0$,则称其为支持向量。
阅读全文