算法描述
1.支持向量机(svm)是使寻找最大间隔分类超平面并最大化边界样本点到超平面的距离。
知识储备
1.硬间隔:两类边界样本点的最大距离。
2.软间隔:容错率;若数据有噪音或数据本身是线性不可分,软间隔提供一定的缓冲空间。
3.核函数:支持向量机可处理线性可分数据;当处理线性不可分的数据时,则用核函数将数据映射到更高维空间,在更高维空间寻找超平面求解。
4.HingeLoss(合页损失):下图来源于[3]
5.点到线距离公式推荐阅读[4]
假设函数x-2y+3=0,现有点P(4,5),求点P到直线的距离。
6.径向基(RBF):定义为空间某一点到某一中心的欧氏距离;如高斯径向基,参数控制函数的宽度,若欧氏距离相近,核函数值为1,反之则为0。推荐阅读[5][6]。
7.拉格朗日乘子法:推荐阅读[7]的P288页,有详细描述及例子(未获授权,恕不发图)。
公式推导
注:以下公式推导来源于[3],原作者有非常详细的推理过程,以下仅为笔者阅读做的笔记,若有冲突则以原作者推导为准。
实现代码
1.debug代码引用《机器学习实战》提供的demon,此书作者提供完整代码和数据集,强烈推荐。[1]
2.sklearn实现版本。[9]
资料引用
[1]GitHub:https://github.com/wzy6642/Machine-Learning-in-Action-Python3/tree/master/SVM_Project1
[2]CSDN:https://blog.csdn.net/jiaoyangwm/article/details/79579784
[3]Bilibili:https://www.bilibili.com/video/BV1aE411o7qd?p=28
[4]CSDN:https://blog.csdn.net/xs18952904/article/details/104300139
[5]CSDN:https://blog.csdn.net/BlueLoveyyt/article/details/44701423
[6]CSDN:https://blog.csdn.net/wn314/article/details/79972988
[7]《机器学习中的数学》-作者: 孙博
[8]CSDN:https://blog.csdn.net/qq_36758914/article/details/103324074
[9]CSDN:https://blog.csdn.net/weixin_42001089/article/details/79952399
此算法笔记会在CSDN、知乎、b站及公众号同步更新,账号名为一枚嘉应子。转载注明出处,侵权必究。