【Python机器学习】支持向量机——寻找最大间隔

如何求解数据集的最佳分隔直线?如下图中:

分隔超平面的形式可以写成,要计算点A到分隔超平面的距离,就必须给出点到分隔面的法线或垂线的长度,该值为。这里的常数b类似于Logistic回归中的截距。这里的向量w和常数b一起描述了所给数据的分隔线或超平面。

分类器求解的优化问题

分类器的工作原理:输入数据给分类器会输出一个类别标签,这相当于一个类似于Sigmoid的函数在作用。下面使用类似海维赛德阶跃函数的函数为作用得到f(),其中当u<-时f(u)输出-1,反之则输出+1。

这里不用1和0的原因是+1和-1仅仅相差一个符号,方便数学上的处理

当计算数据点到分隔面的距离并确定分隔面的放置位置时,间隔通过来计算。如果数据点处于正方向(即+1类)并且离分隔超平面很远的位置时,会是一个很大的正数,同时也会是一个很大的正数。而如果数据点处于反方向(即-1类)并且离分隔超平面很远的位置时,此时由于类别标签为-1,仍然是一个很大的正数。

现在的目标就是找出分类器定义的w和b。为此,我们必须找到具有最小间隔的数据点,而这些数据点也就是前面提到过的支持向量。一旦找到具有最小间隔的数据点,我们就需要对该间隔最大化。这就可以写作:

直接求解上述问题很困难,所以将它转换成另一种更容易求解的形式。首先要做的是固定其中一个因子而最大化其他因子。如果另所有支持向量的都为1,那么就可以通过求的最大值来得到最终解。但是,并非所有数据点的都等于1,只有那些离分隔超平面最近的点得到的值才为1。而离超平面越远的点,其的值也就越大。

在上述优化问题中,给点了一些约束条件然后求最优值,因此该问题是一个带约束条件的优化问题。这里的约束条件就是>=1.0。对于这种优化问题,有一个非常著名的求解方法,即拉格朗日乘子法。通过引入拉格朗日乘子,我们就可以基于约束条件来表述原来的问题。这里的约束条件都是基于数据点的,因为我们就可以将超平面写成数据点的形式。于是,优化目标函数最后可以写成:

其约束条件为:

,和

这里有个假设:数据必须100%线性可分。我们可以通过引入所谓松弛变量,来允许有些数据点可以处于分隔面的错误一侧。这样我们的优化目标就能保持仍然不变,但是此时新的约束条件变为:

,和

这里的常数C用于控制"最大化间隔"和"保证大部分点的函数间隔小于1.0"这两个目标的权重。在优化算法的实现代码中,常数C是一个参数,因此我们就可以通过调节该参数得到不同的结果,一旦求出了所有的alpha,那么分隔超平面就可以通过这些alpha来表达。这一结论十分直接,SVM中的主要工作就是求解这些alpha。

SVM应用的一般框架

SVM的一般流程:

1、收集数据:可以使用任意方法

2、准备数据:需要数值型数据

3、分析数据:有助于可视化分隔超平面

4、训练算法:SVM的大部分时间都源自训练,该过程主要实现两个参数的调优

5、测试算法

6、使用算法:几乎所有的分类问题都可以使用SVM,SVM本身是一个二类分类器,对多类问题应用SVM需要对代码做一些修改。

相关推荐
liulilittle11 分钟前
OPENPPP2 —— IP标准校验和算法深度剖析:从原理到SSE2优化实现
网络·c++·网络协议·tcp/ip·算法·ip·通信
一个天蝎座 白勺 程序猿41 分钟前
Python爬虫(47)Python异步爬虫与K8S弹性伸缩:构建百万级并发数据采集引擎
爬虫·python·kubernetes
XiaoMu_0012 小时前
基于Django+Vue3+YOLO的智能气象检测系统
python·yolo·django
SEO_juper2 小时前
大型语言模型SEO(LLM SEO)完全手册:驾驭搜索新范式
人工智能·语言模型·自然语言处理·chatgpt·llm·seo·数字营销
攻城狮7号2 小时前
腾讯混元翻译模型Hunyuan-MT-7B开源,先前拿了30个冠军
人工智能·hunyuan-mt-7b·腾讯混元翻译模型·30个冠军
superlls3 小时前
(算法 哈希表)【LeetCode 349】两个数组的交集 思路笔记自留
java·数据结构·算法
zezexihaha3 小时前
从“帮写文案”到“管生活”:个人AI工具的边界在哪?
人工智能
算家云3 小时前
nano banana官方最强Prompt模板来了!六大场景模板详解
人工智能·谷歌·ai大模型·算家云·ai生图·租算力,到算家云·nano banana 提示词
暴躁的大熊3 小时前
AI助力决策:告别生活与工作中的纠结,明析抉择引领明智选择
人工智能
Gyoku Mint3 小时前
提示词工程(Prompt Engineering)的崛起——为什么“会写Prompt”成了新技能?
人工智能·pytorch·深度学习·神经网络·语言模型·自然语言处理·nlp