支持向量机matlab代码程序_支持向量机(SVM)小结

什么是SVM?

SVM(全称:Support Vector Machine)支持向量机,这只是它的名称,向量就是和我们以前学过的向量一样(下文有介绍),它可以有效解决分类问题(我们只讨论分类问题),何为分类呢?顾名思义,就是把你拥有的数据分成几类。

什么是向量?

向量,顾名思义就是有方向的纯量(标量),纯量呢就是只有大小,没有方向比如5,只有大小,是一个纯量。

比如有一辆车以每秒10 m/s 的速度超你行驶过来,和以每秒 10m/s 的速度远离你,这车辆的速度虽然一样,但是造成的结果却是大相径庭(撞到你或者远离你),但是如果给这个速度加一个方向,那么你就知道它是以10m/s的速度超哪个方向运动了,这就是向量,有方向的纯量。

e06c18c0304bf8c874e4cdecfec7287a.png

支持向量机(SVM)

4de724087d2996e8da89b49b6a5debeb.png

怎么分类

如下图:

绿圈和红圈是两类数据,这两条线是分类的基准,也就是分类边界,那么那条线比较好一些呢?

3154c7324ee697d2881068a02cb08b44.png

什么是好?也就是能分的平均,也就是尽量使两类数据对称,尽量使未来的数据也能正确的匹配,泛化力较好(就是使未来要分类的数据也能正确分类),所以那条分类线你应该在脑海里想想出来了吧。

我们要找到最好的一条线去分类这两类数据,那么哪条线是最好的分类线呢?

如下图有红色两条线,红色两条线是两类数据的边界,恰好能分类此数据,但是它的容错性比较低,但是如果我们取两条线中间的那条绿色的线作为分类线,那么对于此类数据,应该是最好的分类线了。

7e15732c9464b9169dee00699b5412f3.png

专业名称:

那条绿色的线我们叫做超平面(hiperplane)

为什么是超平面,不是超平线呢?因为这只是简单的二维数据,我们到三维,四维,甚至更高维度,所以就称之为超平面了。

支持向量:E,G,K这三个点,支持向量机,有支持向量的点,当然也有不支持的点,这个图只有E,G,K三个点是支持向量的。

间隔:两条红线直接的距离我们称之为间隔。

所以我们以下目标就是要找到那个hiperplane,这是一个数学问题,你要记住以下方法都是来寻找那个超平面的,只不过是利用数学技巧进行优化寻找罢了,目的还是寻找那个hiperplane。

先找二维平面(也就是上图点的分类 线)

利用如上分类点A,B,C,D,E,F,G,H,I,J,K

设训练样本集为T:

T = {(X→,Y),⋯}

X 为分类的向量

Y 为分类标记,也就是两个间隔的边界

我们人工手动给现有的数据进行标记,使得我们现有的数据可以分成两类,一类标记为+1,另一类为-1,我们称之为监督学习。

监督学习:

监督学习,就如同我们上面的例子一样,是给现有数据进行人工手动做分类标签,使程序一开始就知道要分类的标签。

非监督学习:

非监督学习,刚好和监督学习相反,就是不给数据做分类标签,让机器自动识别分类类型(不要觉得不可思议,只要我们数据得当,那么结合一定的数学模型,也是容易做到的)

2dda7117014405d677bdb32202631eec.png
fd8f4113260eeebf84fd69a3c35c6a98.png
c0430be0fb6b9ba09f18ae2073f11044.png
c679fa305dca436f9273f6ec6705c0e9.png
dc26967943d99adda26f692a6cec5852.png

所以得到一个约束方程

7130da307742b41ac014aa2a73e19be9.png

对偶问题

a294e6c12cf8e057c57444ef4be3125a.png

线性不可分

我们上面的数据是线性可以分离的,也就是一条线即可分开数据,但是如果遇到下面这种怎么办呢?

14f620801062cfacadde5bf5b198a269.png

利用核函数

转换数据到高维度,如图

758419fb95db2519252f6ed9faed1de8.gif

什么是核函数

简单理解就是通过数学手段,把当前数据维度转换到更高维度,如上图的过程

原文连接:http://deelmind.cn/2018/01/29/%E6%9C%BA%E5%99%A8%E5%AD%A6%E4%B9%A0-SVM/#more

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/news/490489.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

C++ 获取char*的长度

strlen函数&#xff0c;包含在#include <cstring> 看个例子&#xff1a; void get_len(char* temp){int l strlen(temp);cout << l;char* anew char[l]; }

实习的具体内容

实习具体内容 项目组背景&#xff1a;Synopsys的Solution Group下面的ARC硬件部门&#xff0c;主要研发ARC处理器IP&#xff0c;它是基于ARC指令集&#xff0c;主要产品有EM系列和HS系列以及多核系统&#xff0c;涉及领域有物联网、汽车电子、高速存储、DSP和图像视频处理。 实…

俄罗斯拟明年在36万台华为平板安装“极光”操作系统

来源&#xff1a;环球时报据路透社报道&#xff0c;有消息人士表示&#xff0c;俄罗斯政府已经开始与华为公司就36万台平板电脑安装俄罗斯自己研发的操作系统&#xff08;OS&#xff09;"极光"(Aurora&#xff0c;也称奥罗拉)的一项计划展开谈判。路透社表示&#xf…

mysql 命令 kill_MySQL之死锁检测

最近&#xff0c;笔者在查看线上服务日志时&#xff0c;发现spring大量异常&#xff0c;异常中都显示了同样的报错信息&#xff0c;信息如下。Deadlock found when trying to get lock; try restarting transaction调研之后发现是mysql发生了死锁&#xff0c;这也是笔者第一次遇…

C++ char数组和char*的输入

int main(){char* s1 "abc";cin >> s1; // errorcout << s1;char s2[10]; // okcin >> s2;cout << s2;int n 10;char* s3 new char[n]; //okcin >> s3;cout << s3;return 0; }

【HTML5】Server-Sent服务器发送事件

Server-Sent 事件 - 单向消息传递 Server-Sent 事件指的是网页自动获取来自服务器的更新。 以前也可能做到这一点&#xff0c;前提是网页不得不询问是否有可用的更新。通过服务器发送事件&#xff0c;更新能够自动到达。 <!DOCTYPE html> <html> <body> <…

干货丨清华大学天机芯团队赵明国:《基于自然动力学的机器人控制——无人驾驶自行车及被动行走》...

来源&#xff1a; 机器人大讲堂8月1日&#xff0c;清华大学依托精密仪器系的类脑计算研究中心施路平教授团队在《自然》&#xff08;Nature&#xff09;杂志上发表了一篇封面文章&#xff0c;发布了一项最新研究成果——类脑计算芯片“天机芯”。同时&#xff0c;搭载天机芯&am…

C++中的深拷贝

memcmp (const void*, const void*, size_t) 第一个参数&#xff1a;目的地址 第二个参数&#xff1a;源地址 第三个参数&#xff1a;所需要复制的字节数

判断随机抽取代码_问卷调查:定量研究中的抽样问题(2)- 非随机抽样介绍

所谓抽样&#xff0c;就是从我们需要研究的所有目标群体中&#xff0c;按照某种原则&#xff0c;挑选出一定量的样本&#xff0c;用他们的研究结果&#xff0c;代表目标群体整体结果。既然&#xff0c;抽样的目的是通过对一部分被选择的样本来推断总体&#xff0c;就要求我们抽…

解决保存快照失败后redis无法写入的问题( Redis is configured to save RDB snapshots)

MISCONF Redis is configured to save RDB snapshots, but is currently not able to persist on disk. Commands that may modify the data set are disabled. Please check Redis logs for details about the error.解决方案&#xff1a;Just too brief about answer. open t…

欧洲估值最高的5家人工智能创业公司

来源&#xff1a;资本实验室今年初&#xff0c;据伦敦风险投资公司MMC的调查&#xff0c;四成自称为人工智能公司的欧洲创业公司实际上并未在核心业务中涉及到人工智能&#xff0c;人工智能仅为吸引投资的漂亮外衣。这一数据发布后&#xff0c;激起了轩然大波&#xff0c;不仅引…

seaborn画图设置横纵坐标标签

用seaborn库来画图&#xff0c;也同样可以通过matplotlib.pyplot.xlabel设置x轴标签&#xff0c;而matplotlib.pyplot.ylabel设置当前轴的y轴标签 举个例子&#xff1a; import seaborn as sns import matplotlib.pyplot as pltsns.kdeplot(data) plt.xlabel("xxxxxx&qu…

keras安装_代码详解:构建一个简单的Keras+深度学习REST API

在本教程中&#xff0c;我们将介绍一个简单的方法来获取Keras模型并将其部署为REST API。本文所介绍的示例将作为你构建自己的深度学习API的模板/起点——你可以扩展代码&#xff0c;根据API端点的可伸缩性和稳定性对其进行定制。具体而言&#xff0c;我们将了解&#xff1a; 如…

移植memtester到android平台

硬件搭建起来能进入系统&#xff0c;首要就是测试内存的稳定性&#xff0c;需要一款内存测试工具。 一般都是选择memtester这款linux软件&#xff0c;下载地址如下&#xff1a;http://pyropus.ca/software/memtester/ 把memtester解压到android/external/下&#xff08;此文默认…

马云对话马斯克(全文):要警惕AI?该移民火星?如何更长寿?马化腾反对产业割裂和技术脱钩...

来源&#xff1a;未来论坛今天&#xff08;8月29日&#xff09;&#xff0c;2019年世界人工智能大会在上海召开&#xff0c;500余位国内外顶尖高校、行业领军企业、国际组织的重要嘉宾&#xff0c;全球AI知名企业领袖齐聚于此。本次大会以“智联世界&#xff0c;无限可能”为主…

给plt.axvline设置图例(label)

plt.axvline的其中一个参数是label&#xff0c;用于给这条垂直线设置标签。但加上后就是不显示这个这个图例&#xff0c;代码如下&#xff1a; sns.kdeplot(data) plt.axvline(-2, colorr, linestyle--, label0.9) plt.show() 原因会因为没有加这一句&#xff1a; plt.legend…

C#中break,continue,return,,goto,throw的区别(转)

break 语句用于终止最近的封闭循环或它所在的switch 语句。 控制传递给终止语句后面的语句&#xff08;如果有的话&#xff09;。 /// <summary>/// break 示例/// 在此例中&#xff0c;条件语句包含一个应该从 1 计数到 100 的计数器/// 但 break 语句在计数达到 4…

python excel 转json_Python办公自动化| word 表格转excel

之前写过一篇 Python办公自动化 | 批量word报告生成工具 &#xff0c;有小伙伴提出了逆向需求&#xff0c;即&#xff1a;从批量word中获取内容并写入excel&#xff0c;需求背景是汇总一些材料&#xff0c;举例&#xff1a;实习鉴定表、个人简历、档案等。实际需求是这样的&…

python在图中画一条垂直线(matplotlib)

matplotlib.pyplot.axvline https://matplotlib.org/stable/api/_as_gen/matplotlib.pyplot.axvline.html?highlightaxvline#matplotlib.pyplot.axvline 用法&#xff1a; plt.axvline(x, colorr, linestyle--, labelxxx) plt.legend()

坦途与波折:我们需要什么样的人工智能?

来源&#xff1a;资本实验室历史车轮滚滚向前&#xff0c;如今我们正在进入人工智能时代。其中的坦途足以让我们乐观和振奋&#xff0c;其中的波折也可能会让我们不安或担忧。面对未来&#xff0c;我们需要坚持三个基本要点&#xff1a;效率、环保与福祉。1.人工智能与传统产业…