学习笔记 | 支持向量机SVM、推导

提前阅读:
问题:
  • 如何使用SVM多分类?

01 SVM理论

  • 希望的是找到一个平面作为超平面,它恰好在两个类中间分开,以它为基准画两个与它平行的平面,让这两个平面分别向两个方向平行移动,即一个向类别X聚集的方向移动,一个向非类别X聚集的方向移动。当这两个平面同时(等距离)分别触碰到类别X和非类别X的点时停止下来,记录这个平面的wb,记录此时的移动距离δ。这样的平面也许不止一个,但是会找到一个能让δ尽可能大的值,这个能产生最大δ值方案的wb所构成的g(v) = wv+b就是要找的超平面。
01 间隔与支持向量

鸢尾花数据集seroas和versicolor两类样本
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述

02 对偶问题

在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述

03 核函数
  • 我们平时生产生活中遇到的例子基本都是线性不可分的,SVM就是要解决这个问题。
    在这里插入图片描述
    在这里插入图片描述
  • 可以看到,在一维空间上解决线性不可分问题是把函数映射到二维空间,使得一维空间上的分类边界是二维空间上的分类函数在一维空间上的投影;而在二维空间上解决线性不可分问题是把函数映射到三维空间,使得二维空间上的分类边界是三维空间上的分类函数在二维空间上的投影。 那么所有的n维空间上的线性不可分的问题都可以考虑映射到n+1维上去构造分类函数,使得它在n维空间上的投影能够将两个类别分开。
    在这里插入图片描述
    在这里插入图片描述
    在这里插入图片描述
  • 这个构造过程SVM是有通用的方法可以解决的,就是使用核函数(Kernel) 进行构造。而且,有几个常用的核函数是可以拿来直接使用的,如线性核函数、多项式核函数、径向基核函数(RBF核函数)、高斯核函数等,能够查到的核函数有二三十种之多。
    在这里插入图片描述
  • 核函数的目的很单纯,即只要在当前维度空间的样本是线性不可分的,就一律映射到更高的维度上去,在更高的维度上找到超平面,得到超平面方程。而在更高维度上的超平面方程实际并没有增加更多的维度变量,更高的这个维度只是像在解几何题里使用的辅助线而已,最后得到的方程不会增加其他维度。例如,研究二维空间上的向量分类问题,那么经过核函数映射,最后得到的超平面变成了二维空间上的曲线(但同时也是三维空间上的一次方程);研究三维空间上的向量分类问题,那么经过核函数映射,最后得到的超平面变成了三维空间上的曲面(但同时也是四维空间上的一次方程)。函数表示只是一个变量代换关系。
04 软间隔与正则化

在这里插入图片描述
在这里插入图片描述
在这里插入图片描述

05 代码实践
举例1
from sklearn import svm
#年龄
X = [[34],[33],[32],[31],[30], [30],[25],[23],[22],[18]]
#质量
y = [1,0,1,0,1,1,0,1,0,1]
#现在把训练数据和对应的分类放入分类器中进行训练
#这里使用rbf
clf = svm.SVC(kernel='rbf').fit(X,y)
#预测年龄30的人的质量
p = [[30]]
print(clf.predict(p))
#结果是[1]
举例2
from sklearn.datasets import load_iris
from sklearn.svm import LinearSVC
from sklearn.model_selection import train_test_split

iris = load_iris()

data_tr, data_te, label_tr, label_te = train_test_split(iris.data, iris.target, test_size=0.2)
model = LinearSVC().fit(data_tr, label_tr)
pre = model.predict(data_te)
acc_te = sum(pre == label_te)/len(pre)
acc_te

02 SVM的一些问题

在这里插入图片描述
在这里插入图片描述

问题1 在空间上线性可分的两类点,分别向SVM分类的超平面上做投影,这些点在超平面上的投影仍然是线性可分的吗?
  • 不可分
问题2 是否存在一组参数使SVM训练误差为0?
问题3 训练误差为0的SVM分类起一定存在吗?
问题4 加入松弛变量的SVM的训练误差可以为0吗?
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值