SVM原理及公式推导、相互配合的MATLAB工具箱--LIBSVM、FarutoUltimate、gatbx-master的下载、安装、编译|学习使用SVM的保姆级一条龙服务

1.SVM算法原理

支持向量机(support vector machines,SVM)是一种有监督的机器学习算法,适合中小型数据样本、非线性、高维的分类问题。
(这一部分公式太多,直接发word截图,可以照着手推一遍)简单推导一下,借鉴了很多前人经验。之后推荐实用的MATLAB工具箱!!!对推导不感兴趣的可以直接跳过

1.1 支持向量与超平面

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

1.2 点到超平面的距离公式

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

1.3 最大间隔的优化模型

在这里插入图片描述
关于凸优化函数的知识补充
拉格朗日法求优化问题的知识补充

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

1.4 松弛变量

在这里插入图片描述
在这里插入图片描述
新的拉格朗日函数为
在这里插入图片描述
在这里插入图片描述

1.5 引入核函数

上文的推导都是在线性可分情况下进行的。对于低维平面内不可分的数据,放在一个高维空间中去就有可能变得可分。以二维平面的数据为例,我们可以通过找到一个映射将二维平面的点放到三维平面之中。理论上任意的数据样本都能够找到一个合适的映射使得这些在低维空间不能划分的样本到高维空间中之后能够线性可分。回顾之前的目标函数

在这里插入图片描述
其实找工作让手推SVM时候,像这样简单地推导一下就差不多了
在这里插入图片描述
常用的核函数如表1所示。

在这里插入图片描述
后续借用核函数解决拉格朗日算子的详细过程,感兴趣的同学可以看看知乎上这些大神的详细介绍:**

我主要借鉴的前人推导

看完这个你还是不懂SVM就去打他吧

2.做SVM的MATLAB工具箱:LIBSVM(必须配合C++编译器,如Visual Studio,或者MinGW)

我用的LIBSVM3.24版本,这一版以上的已经不需要特别编译了,安装和使用都很方便:

在这里下载LIBSVM
下载后文件解压到自己电脑上MATLAB的工具箱文件夹toolbox里面,
在这里插入图片描述
然后设置添加路径
在这里插入图片描述
编译很简单,但是如果电脑上没有C++的编译器,必须安装一个!!!

MinGM我没试过,需要专门设置一下地址,稍稍麻烦了一点儿 MinGW的下载、安装经验贴

我装了一个免费的社区版Visual Studio,
Visual Studio2017的下载、安装
安装也简单,不需要特别设置什么。 我的MATLAB是2019a,和Visual Studio2017能搭配,和VS2019又不行了哈哈

搞定C++编译器,然后在MATLAB的命令行窗口输入mex -setup(注意x和-之间有个空格),
在这里插入图片描述
然后选择c++,就配置成功了
在这里插入图片描述
很多人说必须使用MAKE函数编译一下,但我这一步始终报错,但是!!!!这一步没成功我照样可以用!3.24以上的版本不需要特别编译了

不需要更多操作就可以使用了

3.建议再安装一个FarutoUltimate

建议再安装一个有用的工具箱FarutoUltimate!毕竟分类结果的可视化很重要!
FarutoUltimate工具箱下载地址

经过自行调整部分代码,即可实现归一化、主成分分析、
分类结果可视化

在这里插入图片描述

和调参很有用的:
Grid Search 网格搜索、
在这里插入图片描述
在这里插入图片描述

启发式遗传算法GA、
在这里插入图片描述

粒子群算法PSO、
在这里插入图片描述

不仅支持分类,而且支持回归问题!快去试试吧!!
安装方法同样很简单,放在文件夹toolbox下然后设置添加路径就可以,但是!!!!!!!切记不要迷信工具箱!很多地方还需要根据自己的需求做调整!!!!比如最后这个图,看标题:最佳的惩罚项参数C取了31.1291?????这么大的惩罚项,早都过拟合了!!!

还有,对样本点寻找超平面分类结果的可视化函数我一直都没跑通过,
svmplot函数一直跑不通,希望有人解决了给我说一下咋改
需要多去修改一下,欸~你们加油吧

4.必须安装gatbx-master工具箱,才能顺利使用FarutoUltimate中的遗传算法寻优函数

在使用FarutoUltimate时会发现遗传算法求参数优化的函数死活不能跑,里面的rep等函数一直在报错,其实是因为作者采用了一个比较古老的遗传算法工具箱叫做gatbx-master!!!你需要安装它,同样是放入matlab的toolbox然后添加路径即可
这个帖子里有人发了gatbx-master工具箱的下载地址,免费注册就可以下载

有了它,你才能正常使用FarutoUltimate中设计遗传算法的一部分函数哦~

  • 4
    点赞
  • 10
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值