支持向量机matlab代码程序_SVM支持向量机

目录

一.SVM数学模型

二.Python实现

一.SVM数学模型

首先,什么是SVM?英文全称support vector machine.

我们知道vector是向量的意思,在高维空间中的每一个点就是一个向量。(由一组基构成的向量)

support是支持支撑的意思,machine意为机器,就是分类器

支持向量机就是这三个单词连在一起的直接翻译。换个名字,支撑向量分类器,可能更易于理解。

看完上述,可能你还是觉得非常茫然。接下来看一幅图

cca808c980c4428584958bc45db462ca.png

平面上有两种球,蓝色和红色,我们的目标是将蓝色球和红色球分开(SVM解决分类问题)

84c4359f30e0ea9e057bd7def83fdbd0.png

当训练样本是线性可分的时候,如上图所示。我们可以用超平面将两堆球分开。那么问题来了,分开的标准是什么,在上图中,我们可以画出无数条直线将两堆小球分开。于是,SVM提出基于间隔最大化的原理,找到最优的分类器(machine)。

用来划分的超平面用以下的线性方程来描述

7073b83c7959f40b7b5c4b670f0b826a.png

w是超平面的法向量,x就是vector(一组坐标),b是截距(位移项)

2232269fde3a062503dfe2b5226f06a1.png

此时再来理解所谓支持向量分类器,支持向量是指位于最大间隔边界上的向量(即样本点)。

任意点到超平面距离公式推导:

8bd82878e6c8a8363a54283e089a480f.png

为什么我们使用超平面来进行分类,请看下图

0d2ac8f1a7a3481e09f3752a213af209.png

最下面的平面是我们的训练样本在平面上的分布,可以看出,红色球和蓝色球的分布并非线性可分,此时我们将该平面“扭曲”为超上图所示(有点像抛物面),然后找到一个分类器,使得仍然能够满足最大间隔原理。

2232269fde3a062503dfe2b5226f06a1.png

二.Python实现

在Python中,scikit- learn是一个广泛使用的用于实现机器学习算法的库,SVM也可以在scikit- learning库中找到并使用。

#Import Library 
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值