首页 > 其他分享 >支持向量机基本原理与公式推导

支持向量机基本原理与公式推导

时间:2023-09-29 14:32:51浏览次数:40  
标签:SVM 函数 推导 基本原理 非线性 线性 数据 向量

我整理了《BAT常见机器学习算法面试题1000题》,供大家学习和参考。资源获取方式:

第1步:

打开v搜索:医学大数据与人工智能,并关注。

第2步:

在对话框中输入:E001,即可获取资源地址。


支持向量机的数学推导

考虑一个二元分类问题,有两个类别,标记为+1和-1。我们有一个包含输入特征向量X和它们对应的类别标签Y的训练数据集。线性超平面的方程可以写成:

支持向量机基本原理与公式推导_面试

向量w代表超平面的法向量,即垂直于超平面的方向。方程中的参数b代表超平面沿法向量w从原点的偏移或距离。数据点x_i与决策边界之间的距离可以计算为:

支持向量机基本原理与公式推导_核函数_02

其中,||w||代表权重向量w的欧几里得范数,即法向量w的欧几里得范数。

对于线性支持向量机分类器:

支持向量机基本原理与公式推导_核函数_03

优化

对于硬间隔线性支持向量机分类器:

支持向量机基本原理与公式推导_机器学习_04

这个语句中,第i个训练实例的目标变量或标签用符号ti表示。对于负实例(当yi=0时),ti=-1,对于正实例(当yi=1时),ti=1。因为我们需要满足约束条件的决策边界:

支持向量机基本原理与公式推导_支持向量机_05

对于软边界线性支持向量机分类器:

支持向量机基本原理与公式推导_机器学习_06

对偶问题:需要找到与支持向量相关的拉格朗日乘子的优化问题的对偶问题可用于解决支持向量机问题。最大化以下对偶目标函数的最优拉格朗日乘子α(i):

支持向量机基本原理与公式推导_面试_07

其中,αi 是与第i个训练样本相关的拉格朗日乘子。

K(xi, xj) 是核函数,计算两个样本xi和xj之间的相似性。它允许SVM通过隐式地将样本映射到更高维的特征空间来处理非线性分类问题。

术语∑αi 表示所有拉格朗日乘子的总和。

一旦解决了对偶问题并找到了最优的拉格朗日乘子,就可以用这些最优的拉格朗日乘子和支持向量来描述SVM的决策边界。那些具有i > 0的训练样本是支持向量,而决策边界由以下方式提供:

支持向量机基本原理与公式推导_机器学习_08

支持向量机的类型

根据决策边界的性质,支持向量机(Support Vector Machines,SVM)可以分为两个主要类型:

线性支持向量机(Linear SVM):线性SVM使用线性决策边界来分离不同类别的数据点。当数据可以被精确地线性分离时,线性SVM非常适用。这意味着单一的直线(在2D中)或者超平面(在更高维度中)可以完全将数据点分成它们各自的类别。决策边界是使类别间间隔最大化的超平面。

非线性支持向量机(Non-Linear SVM):非线性SVM用于分类那些不能被一条直线(在2D情况下)分割为两类的数据。通过使用核函数,非线性SVM可以处理非线性可分的数据。这些核函数将原始输入数据转换为更高维的特征空间,在该空间中,数据点可以线性分离。然后,在这个修改后的空间中使用线性SVM来确定非线性决策边界。

这两种类型的SVM分别适用于线性可分和非线性可分的数据情况,使其成为强大的分类器之一。选择使用哪种类型的SVM取决于数据的性质和问题的要求。如果数据可以被直线分隔,那么线性SVM通常是一个不错的选择。如果数据是非线性可分的,那么非线性SVM通过核函数提供了一种有效的解决方案。

SVM中常用的核函数

SVM核函数是一个函数,它将低维输入空间转化为高维空间,也就是将不可分问题转化为可分问题。它在非线性分离问题中非常有用。简单来说,核函数进行一些极其复杂的数据转换,然后根据定义的标签或输出,找出了将数据分开的过程。核函数的主要作用是将数据映射到一个更高维度的空间,以便在该空间中找到一个线性或非线性的决策边界,从而能够有效地解决非线性可分问题。不同类型的核函数可以适用于不同类型的数据和问题,以提高SVM在各种应用中的性能。

支持向量机基本原理与公式推导_机器学习_09

SVM的优点

在高维情况下效果显著。

由于它使用决策函数中的一部分训练点,称为支持向量,因此其内存效率高。

可以为决策函数指定不同的核函数,还可以指定自定义核函数。

Python中SVM的实现

预测癌症是良性还是恶性。使用癌症患者的历史数据使医生能够区分恶性病例和良性病例。

步骤

  • 从sklearn.datasets加载乳腺癌数据集
  • 分离输入特征和目标变量。
  • 构建和训练使用RBF核的SVM分类器。
  • 绘制输入特征的散点图。
  • 绘制决策边界。
# Load the important packages
from sklearn.datasets import load_breast_cancer
import matplotlib.pyplot as plt
from sklearn.inspection import DecisionBoundaryDisplay
from sklearn.svm import SVC
# Load the datasets
cancer = load_breast_cancer()
X = cancer.data[:, :2]
y = cancer.target
#Build the model
svm = SVC(kernel="rbf", gamma=0.5, C=1.0)
# Trained the model
svm.fit(X, y)
# Plot Decision Boundary
DecisionBoundaryDisplay.from_estimator(
svm,
X,
response_method="predict",
cmap=plt.cm.Spectral,
alpha=0.8,
xlabel=cancer.feature_names[0],
ylabel=cancer.feature_names[1],
)
# Scatter plot
plt.scatter(X[:, 0], X[:, 1],
c=y,
s=20, edgecolors="k")
plt.show()

支持向量机基本原理与公式推导_机器学习_10


标签:SVM,函数,推导,基本原理,非线性,线性,数据,向量
From: https://blog.51cto.com/u_16245388/7649651

相关文章

  • 音频和视频基本原理
    音频基本原理:声波捕获:音频信号是由声波振动引起的,通常使用麦克风等传感器将声波转化为电信号。声波的频率和振幅决定了声音的音调和音量。采样和量化:模拟音频信号需要经过采样和量化,将连续的模拟信号转换为离散的数字信号。采样率表示每秒采集的样本数,量化位数表示每个样本的精......
  • 向量化实现矩阵运算优化(一)
    xsimd简介  xsimd是C++的一个开源simd库,实现了对常见simd指令的封装,从而使得simd的操作更为简单。接下来先从两个简单的例子来入门xsimd。voidaverage(conststd::vector<double>&v1,conststd::vector<double>&v2,std::vector<double>&v){intn=v.size();......
  • 支持向量机(SVM)
    支持向量机(SupportVectorMachine,SVM)是一种用于分类问题的监督算法。主要用于二分类和多分类问题。其基本思想是找到一个超平面,能够将不同类别的样本点尽可能地分开,并使得离超平面最近的样本点尽可能远离超平面,从而实现较好的分类效果。SVM的关键是找到一个最优的超平面,这个超平面......
  • 深度学习入门——卷积神经网络CNN基本原理+实战
    beginning今天给小伙伴们介绍一个高级的分类方法——卷积神经网络CNN,并学习用CNN实现图像的分类。作为深度学习的基础,CNN可太重要了呐,在图像分类、目标检测、目标跟踪、语义分割、实例分割等领域随处可见它的身影。废话不多说啦,如果你也对CNN感兴趣的话,赶紧跟我一起愉快的看下去叭......
  • 深度学习入门——卷积神经网络CNN基本原理+实战
    beginning今天给小伙伴们介绍一个高级的分类方法——卷积神经网络CNN,并学习用CNN实现图像的分类。作为深度学习的基础,CNN可太重要了呐,在图像分类、目标检测、目标跟踪、语义分割、实例分割等领域随处可见它的身影。废话不多说啦,如果你也对CNN感兴趣的话,赶紧跟我一起愉快的看下去叭......
  • 马克思主义基本原理概论
    马克思主义基本原理概论题型与分值单选题:25*2=50简答题:5*6=30论述题:2/3*10=20绪论马克思主义是关于无产阶级和人类解放的科学第一节马克思主义的产生和发展第二节马克思主义科学性与革命性的统第三节学习、运用和发展马克思主义第一章物质世界及其发......
  • C++ STL之向量vector
    /*vector_example.cpp*/#include<iostream>#include<vector>#include<string>usingnamespacestd;intmain(){vector<string>msg={"Hello","C++","World","from","VSCode"......
  • 支持向量机(SVM)案例分析
    支持向量机(supportvectormachines,SVM)是一种二分类模型,所谓二分类模型是指比如有很多特征(自变量X)对另外一个标签项(因变量Y)的分类作用关系,比如当前有很多特征,包括身高、年龄、学历、收入、教育年限等共5项,因变量为‘是否吸烟’,‘是否吸烟’仅包括两项,吸烟和不吸烟。那么该5个特......
  • 42-元组-生成器推导式创建元组-总结
           ......
  • 33-(有33)创建列表的4种方式-推导式创建列表
                 ......