经典机器学习系列(八)【支持向量机】(一)

简介: 经典机器学习系列(八)【支持向量机】

支持向量机(Support Vector Machine)是CortesVapnik1995年首先提出的 ,它在解决小样本、非线性及高维模式识别中表现出许多特有的优势,并能够 推广应用到函数拟合等其他机器学习问题中。

  1963年,Vapnik在解决模式识别问题时提出了支持向量方法,这种方法从训练集中选择一 组特征子集,使得对特征子集的划分等价于对整个数据集的划分,这组特征子集就被称为 支持向量(Support Vector,SV);

  1971年,Kimeldorf提出使用线性不等约束重新构 造SV的核空间,解决了一部分线性不可分问题;1990年,GraceBoserVapnik等人开始对SVM进行研究; 1995年,Vapnik正式提出统计学习理论。


SVM涉及的相关概念


  支持向量机和线性分类器(如逻辑回归)都是线性模型。虽然SVM是线性模型,但是它的求解过程要比线性模型困难不少。

  1. 它是一种最大间隔的线性分类器,它只会考虑在decision bound比较近的这些点,而在逻辑回归问题中,即使离决策边界很远,它还是会产生一个loss function
  2. 通过核函数可以做非线性的问题。

  对于分类问题,分开两类数据其实有很多种解法,那哪一种解法是最好的呢?也就是说SVM是从线性可分情况下的最优分类面发展而来,最优分类面就是要求分类线不但能将 两类正确分开,且使分类间隔最大(分类间隔最大能够使得算法在测试数据集上取得较好效果,或者说数据本身存在噪声,较大的分类间隔能够取得较好效果)。

  SVM考虑寻找一个满足分类要求的超平面,并 且使训练集中的点距离分类面尽可能的远,也 就是寻找一个分类面使它两侧的空白区域 (margin)最大。这与逻辑回归算法不一样,在逻辑回归算法中所有的点都会影响分类边界,而在SVM 算法中不会,它更多考虑的是支持向量。

  过两类样本中离分类面最近的点且平行于最 优分类面的超平面上H 1 H_{1}H1H 2 H_{2}H2的训练样本就叫 做支持向量。

分类任务

  分类任务就是确定对象属于哪个预定义的目标类。分类任务的输入数据是记录的集合,每条记录也称为实例或样例,用元组(x , y x, yx,y) 表示,其中 x xx 是属性的 集合,y yy 是类标记(也称目标属性)。在回归模型中,目标属性值是连续的; 而在分类模型中,目标属性是离散的。

  考虑二分类任务,其目标属性为y ∈ { 0 , 1 } ,而线性回归模型参数的预测值z = w T x + b 是实值,于是我们需要将实值z 通过Sigmoid函数转换为01Sigmoid函数定义如下:


Logistic回归:目的是从特征中学习出一个0/1分类模型,这个模型是将特征的线性组合作为自变量,由于自变量的取值范围是(− ∞ , + ∞)。因此使用Sigmoid函数将自变量映射到(0,1)上,映射后的值被认为是属于y = 1的概率。假设函数为:

image.png

 根据Sigmoid函数的特性,假设:


image.png

 上式表示,已知样本x 和参数θ 的情况下,样本x 属于正样本(y = 1 )和负样本(y = 0 )的条件概率:若h θ ( x ) > 0.5则属于正样本,反之属于负样本。当然在实际操作过程中你可以把这个值设置地大一点,使得在测试过程中效果更好。


分类任务进一步理解

image.png

  因此Logistic回归就是要学习得到参数θ \thetaθ,使得正例的特征远远大于0,负例的特征远远小于0,而且要在全部训练数据上达到这个目标

image.png

  • 线性可分数据集

  需要注意的是:对于上述问题我们需要数据集是线性可分的,不然不管如何分类都找不到这样一个平面。

  线性可分数据集:存在某个超平面S SS能够将数据集的正实例和负实例完全划分 到超平面的两侧,则称为线性可分数据集;否则,线性不可分。

  上图中的这些数据就是线性可分的,所以可以用一条直线将这两类数据分开,二维中是一条直线,多维中就是一个超平面。

image.png

SVM算法


SVM所要解决的问题


  假定给定数据图,圆的为正类,方的为负类,要想通过一个划分超平面(这里是二维,所以是条直线)将不同类别的样本分开。从图中可以看出,能将训练样本分开的划分超平面可能有很多,但是我们应该去选择哪一个呢?

  直观上,我们应该选择中间红色的那个,因为它对于 训练样本局部扰动的“容忍”性最好;

  比如,训练集外的样本可能比图中的样本更接近两类 的划分超平面,这将使许多划分超平面出现错误,而 红色的超平面受到的影响是最小的,也就是说,这个 划分超平面的分类结果是最鲁棒的,对未知样本的泛 化能力最强


  在所有的划分超平面中,有一个平面是最好的,它可以尽可能地让所有的样本点都离该划分 超平面最远,这就是SVM要做的。


函数间隔


  有三个实例A 、 B 、 C 均在划分超平面的正类一侧,点A AA举例超平面较远,若预测为正类,叫比较确信预测是正确的;点C 距离超平面较近,若预测为正类就不那么确信了;点B BB介于A C 之间,预测其为正类的确信度也在A C 之间。


  一般来说,一个点距离超平面的远近可以相对地表示分类预测的确信程度



image.png

几何间隔

image.png

20200330143519608.png

image.png

 另外,直接计算其内积,可以得到:

image.pngimage.png

image.png

  • 对于给定的训练数据集T 和超平面(w , b):


image.png

如果超平面的参数w b 成比例的改变(超平面没有变),函数间隔也按此比例改变, 但是几何间隔不变。

  支持向量的函数间隔为1,SVM的优化目标为:

image.png

约束条件表示的是最大化的一定是支持向量。要求解上述问题我们需要一定的凸优化基础,接下来简要介绍一下所需数学知识部分。

相关文章
|
6月前
|
机器学习/深度学习 算法 数据挖掘
PYTHON银行机器学习:回归、随机森林、KNN近邻、决策树、高斯朴素贝叶斯、支持向量机SVM分析营销活动数据|数据分享-2
PYTHON银行机器学习:回归、随机森林、KNN近邻、决策树、高斯朴素贝叶斯、支持向量机SVM分析营销活动数据|数据分享
|
6月前
|
机器学习/深度学习 Python
PYTHON银行机器学习:回归、随机森林、KNN近邻、决策树、高斯朴素贝叶斯、支持向量机SVM分析营销活动数据|数据分享-4
PYTHON银行机器学习:回归、随机森林、KNN近邻、决策树、高斯朴素贝叶斯、支持向量机SVM分析营销活动数据|数据分享
|
6月前
|
机器学习/深度学习 人工智能 算法
探索机器学习中的支持向量机(SVM)算法
【5月更文挑战第27天】在数据科学和人工智能的领域中,支持向量机(SVM)是一种强大的监督学习模型,它基于统计学习理论中的VC维理论和结构风险最小化原理。本文将详细介绍SVM的工作原理、核心概念以及如何在实际问题中应用该算法进行分类和回归分析。我们还将讨论SVM面临的挑战以及如何通过调整参数和核技巧来优化模型性能。
|
3月前
|
机器学习/深度学习 算法
【机器学习】SVM面试题:简单介绍一下SVM?支持向量机SVM、逻辑回归LR、决策树DT的直观对比和理论对比,该如何选择?SVM为什么采用间隔最大化?为什么要将求解SVM的原始问题转换为其对偶问题?
支持向量机(SVM)的介绍,包括其基本概念、与逻辑回归(LR)和决策树(DT)的直观和理论对比,如何选择这些算法,SVM为何采用间隔最大化,求解SVM时为何转换为对偶问题,核函数的引入原因,以及SVM对缺失数据的敏感性。
71 3
|
3月前
|
机器学习/深度学习 运维 算法
深入探索机器学习中的支持向量机(SVM)算法:原理、应用与Python代码示例全面解析
【8月更文挑战第6天】在机器学习领域,支持向量机(SVM)犹如璀璨明珠。它是一种强大的监督学习算法,在分类、回归及异常检测中表现出色。SVM通过在高维空间寻找最大间隔超平面来分隔不同类别的数据,提升模型泛化能力。为处理非线性问题,引入了核函数将数据映射到高维空间。SVM在文本分类、图像识别等多个领域有广泛应用,展现出高度灵活性和适应性。
146 2
|
3月前
|
机器学习/深度学习 算法
【机器学习】支持向量机SVM、逻辑回归LR、决策树DT的直观对比和理论对比,该如何选择(面试回答)?
文章对支持向量机(SVM)、逻辑回归(LR)和决策树(DT)进行了直观和理论上的对比,并提供了在选择这些算法时的考虑因素,包括模型复杂度、损失函数、数据量需求、对缺失值的敏感度等。
58 1
|
6月前
|
机器学习/深度学习 算法 Python
PYTHON银行机器学习:回归、随机森林、KNN近邻、决策树、高斯朴素贝叶斯、支持向量机SVM分析营销活动数据|数据分享-1
PYTHON银行机器学习:回归、随机森林、KNN近邻、决策树、高斯朴素贝叶斯、支持向量机SVM分析营销活动数据|数据分享
PYTHON银行机器学习:回归、随机森林、KNN近邻、决策树、高斯朴素贝叶斯、支持向量机SVM分析营销活动数据|数据分享-1
|
6月前
|
机器学习/深度学习 数据采集 算法
深入理解并应用机器学习算法:支持向量机(SVM)
【5月更文挑战第13天】支持向量机(SVM)是监督学习中的强分类算法,用于文本分类、图像识别等领域。它寻找超平面最大化间隔,支持向量是离超平面最近的样本点。SVM通过核函数处理非线性数据,软间隔和正则化避免过拟合。应用步骤包括数据预处理、选择核函数、训练模型、评估性能及应用预测。优点是高效、鲁棒和泛化能力强,但对参数敏感、不适合大规模数据集且对缺失数据敏感。理解SVM原理有助于优化实际问题的解决方案。
|
5月前
|
机器学习/深度学习 算法 Windows
【阿旭机器学习实战】【34】使用SVM检测蘑菇是否有毒--支持向量机
【阿旭机器学习实战】【34】使用SVM检测蘑菇是否有毒--支持向量机
|
6月前
|
机器学习/深度学习 人工智能 算法
探索机器学习中的支持向量机(SVM)算法
【5月更文挑战第6天】在数据科学和人工智能的广阔天地中,支持向量机(SVM)以其强大的分类能力与理论深度成为机器学习领域中的一个闪亮的星。本文将深入探讨SVM的核心原理、关键特性以及实际应用案例,为读者提供一个清晰的视角来理解这一高级算法,并展示如何利用SVM解决实际问题。
192 7