机器学习之支持向量机(SVM)总结

文章目录

  • 1、知道SVM相关的各种概念
  • 2、知道目标函数、损失函数、正则项的意义
    • 2.1、目标函数
    • 2.2、损失函数
    • 2.3、正则化(添加噪音避免过拟合)
  • 3、了解SVM算法原理
  • 4、知道SVM的目标函数
  • 5、知道SVM的损失函数以及公式
  • 6、知道SVM支持向量机的计算过程
    • 6.1、推导过程:
    • 6.2、推导实例
  • 7、了解核函数相关知识
  • 8、了解SVM算法的调参技巧

1、知道SVM相关的各种概念

线性可分:一条直线可以分割开两种类别
间隔:分割线两边直线之间的间隔
支持向量:分割线两边直线上的点
非线性支持向量机:在高维空间形成分割超平面映射到低维空间形成分割界限。
这里写图片描述
分割超平面:两个集合上的距离最近的两个点的垂直平分面。
这里写图片描述

2、知道目标函数、损失函数、正则项的意义

弄清楚目标函数、损失函数、正则项这几个概念:

2.1、目标函数

目标函数:指所关心的目标与相关的因素的函数关系。举个例子,假如我们想要预测公司楼下手抓饼店明天能卖多少张手抓饼,已知过去10天每天卖多少,以及每天的天气情况,是否有节假日,和手抓饼店老板和老板娘的感情状况,这几项数据都统计好了。对应到目标函数的解释就是:
关心的目标是明天能卖多少手抓饼,未知量。
相关因素是每天数量,天气情况,节假日,老板老板娘感情状况,已知量。
目标函数:按照一定的思路把这些已知条件利用起来,去求解未知量的函数关系式。
目标函数f(x)就是用设计变量来表示的所追求的目标形式,所以目标函数就是设计变量的函数,是一个标量。(简单的说就是函数表达式)是指所关心的目标(某一变量)与相关的因素(某些变量)的函数关系。

2.2、损失函数

也叫代价函数,是同一个东西。是用来评估模型的预测值f(x)与真实值Y的差距,它是一个非负实值函数。稍等一下,为什么是非负的呢?举个例子:比如上面说的手抓饼,模型预测第一天是30,真实值是29,差距30-29是1;预测第二天是35,真实值是36,差距35-36是-1;如果把它们直接加起来就是1-1 = 0,难到没有差距?非常明显是错误的,差距是0人家还以为都预测对了呢,其实都预测错了,所以不能有负值,可以用绝对值,平方或者一些其它的数学运算。
常用的损失函数有:
LR逻辑回归:log对数损失函数 参考
最小二乘法:平方损失函数 参考:
Adaboost:指数损失函数 (后面会专门介绍这个算法)
好的,现在我们再来看一下目标函数通常的定义形式:
Obj(Θ)=L(Θ)+Ω(Θ)

中文翻译一下是 :
目标函数 = 损失函数 + 正则项

目标函数和损失函数我们都理解了,那么正则项是干什么的呢?

2.3、正则化(添加噪音避免过拟合)

回到我们前面举的那个例子,如果第五天有个人中彩票了然后兴奋的来买了1百张手抓饼,比几天的量都多,很明显这个情况会影响我们的模型训练,这个情况就是过拟合。而加入正则项的目的就是使模型避免过拟合。
常用的有L1,L2正则化,很熟悉对不对,前面讲过的线性代数中的L1,L2范数有些类似。其实本质是一样的,在机器学习里叫正则化,线性代数叫范数,统计学里叫惩罚项。
机器学习里:L1使用的是绝对值距离,也叫曼哈顿距离,L2使用的是平方距离,也叫做欧式(Euclidean)距离
线性代数:L1 范数计算的是向量所有元素绝对值的和,L2 范数计算的是通常意义上的向量长度

目标函数,损失函数和正则项的作用,优化损失函数使模型避免欠拟合使损失函数最小化,优化正则项使模型避免过拟合。

3、了解SVM算法原理

即先求每个点到每条直线的最小值,这样每条直线对应一个最小距离值,再从这组距离值中找出最大值,这个最大值对应的直线也就是我们需要的分割超平面。
这里写图片描述
w为对应系数矩阵(A,B),Φ(x)代表的是变量矩阵(x,y)
y(xi)=0:代表点在平面上。>0:代表点在平面的上方。
y(xi)>0:代表的是在分隔超平面的一侧,yi=1;
这里写图片描述
这里写图片描述

4、知道SVM的目标函数

知道目标函数(分割超平面)的表达式以及对应的含义:某点到某分隔超平面的距离(需要找到最优的分隔超平面:即先找到每个点到每条直线的最小距离,之后得到每条直线对应的最小距离组成一个数组,再找出这组数中的最大值,对应的分隔超平面即为所求的最优分隔超平面(所以求目标函数的过程才是一个先求最小值而后求最大值的步骤,知道最小和最大代表的含义))
这里写图片描述

5、知道SVM的损失函数以及公式

SVM:分对了损失值为0,分错了损失值为距离支持向量所在的直线的距离。
这里写图片描述

6、知道SVM支持向量机的计算过程

  1. 先求出点到直线距离的一般表示形式。
  2. 由于是求所有点到直线的距离所以需要除以一个w来做归一化处理。
  3. 由于一系列的约束条件,转化为了用拉格朗日乘子法优化的问题(求极值的问题)
  4. 利用拉格朗日的一些性质来转化,最终得到一个最简的式子。
  5. 之后将对应的点代入这个式子就能求出一般表达式中对应的一个参数,进而得到整个式子。

6.1、推导过程:

通过缩放w,b(即||w||)总是可以使得yiy(xi)>=1得到满足。即此处多了一个限制条件,根据这个限制条件来进一步转化目标函数。
这里写图片描述
由约束条件yi
y(xi)>=1,得到原目标函数可以转化为新目标函数
这里写图片描述
线性可分SVM的目标函数
这里写图片描述
将目标函数转化为拉格朗日乘子法来求。
一般问题的优化的解法(即求极值的问题):拉格朗日乘子法
拉格朗日乘子法是一种经典的求解条件极值的解析方法,可将所有约束的优化模型问题转化为无约束极值问题的求解。
这里写图片描述
这里写图片描述
求极大极小问题,先求极小值即先对w,b求导数。
这里写图片描述
得到上面两个条件后代入拉格朗日函数得到下面的式子
这里写图片描述
由前面得到得条件接着求解
这里写图片描述
原函数求的是极小极大值而拉格朗日对偶函数求的是极大极小值(参考上图),所以需要先求该式子的最小值,这里通过添加负号做出对应的转换。
这里写图片描述
求的最小值对应的α值
这里写图片描述
根据α值得到下面的值
这里写图片描述

6.2、推导实例

这里写图片描述
注意计算这个最小值的过程(求一个一元二次方程的最小值的过程)
这里写图片描述
注意这个结论
这里写图片描述

7、了解核函数相关知识

核函数思想:将不可分的输入数据映射到核函数空间中来进行分割。
这里写图片描述
知道核函数为什么被使用:减小运算的复杂度。
知道这几个核函数:多项核函数、高斯核函数RBF、Sigmoid核函数。
知道为什么需要核函数:将原始输入空间映射到新的特征空间从而使得原本线性不可分的样本在核空间中可分。
这里写图片描述

8、了解SVM算法的调参技巧

知道调参中常用的参数以及对应的参数的含义。
详情参考:https://blog.csdn.net/qq_16633405/article/details/70243030

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

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

相关文章

在CentOS上搭建PHP服务器环境

您也可以使用一键自动部署环境的工具,请参见网友开发的这个工具 http://www.centos.bz/2013/08/ezhttp-tutorial/安装apache:yum install httpd httpd-devel 启动apache:/etc/init.d/httpd start此时输入服务器的IP地址,应该看到apache的服务页面&#x…

jQuery之滚动事件$(window).scroll(function()

<!DOCTYPE html> <html lang"en"> <head><meta charset"UTF-8"><title>滚动事件</title><script src"https://code.jquery.com/jquery-2.2.4.min.js"></script><style>img{position:fixe…

《疯狂Java讲义》(二十九)---- JDBC

JDBC编程步骤加载数据库驱动Class.forName(driverClass). 例如&#xff1a;Class.forName("oracle.jdbc.driver.OracleDriver"); 2. 通过DriverManager获取数据库连接。 DriverManager.getConnection(String url, String user, String pwd); 3. 通过Connection对象创…

机器学习之聚类算法的原理推导及相关知识总结

文章目录1、知道几个关于"差"的概念2、理解相似度度量的各种方法和相互关系2.1、欧氏距离2.2、jaccard相似系数2.3、余弦相似度2.4、Pearson相似系数2.5、相对熵3、掌握掌握K-Means算法3.1、知道聚类的思想3.2、K-Means算法原理3.3、知道K-Mediods聚类3.4、如何选取K…

Flex 布局教程:语法

Java数组声明的三种方式 第一种(声明并初始化)&#xff1a; 数据类型[] 数组名{值,值,...}; 例&#xff1a;int[] a {1,2,3,4,5,6,7,8}; 第二种(声明后赋值)&#xff1a; 数据类型[] 数组名 new 数据类型[数组长度]; 数组名[下标1]值…

注意:匿名函数调用直接加载函数名setInterval(move,30)

setInterval要求第一个参数必须是含Javascript命令的字符串或函数对象&#xff0c;所以 setInterval("move()",300) 以及 setInterval(move,300) 这两个都是正确的。 而 setInterval(move(),300) 当Javascript运行到这个语句时&#xff0c;会立即执行move这个函数&am…

vue import组件的使用

vue import组件的使用 1新建/src/component/firstcomponent.vue <template><div id"firstcomponent"><h1>I am a title.</h1></div> </template>2在app.vue引入组件 并且注册 <script> import firstcomponent from ./comp…

牵丝戏

余少能视鬼&#xff0c;尝于雪夜野寺逢一提傀儡翁&#xff0c;鹤发褴褛&#xff0c;唯持一木偶制作极精&#xff0c;宛如娇女&#xff0c;绘珠泪盈睫&#xff0c;惹人见怜。 时云彤雪狂&#xff0c;二人比肩向火&#xff0c;翁自述曰&#xff1a;少时好观牵丝戏&#xff0c;耽…

机器学习之EM算法的原理推导及相关知识总结

文章目录1、知道先验概率和后验概率2、了解高斯混合模型GMM3、通过最大似然估计推导EM算法的过程的实例4、EM算法5、知道pLSA模型1、知道先验概率和后验概率 先验概率&#xff08;prior probability&#xff09;是指根据以往经验和分析得到的概率&#xff08;理解为自定义概率…

jQuery中的on 和事件委派

<!DOCTYPE html> <html lang"en"> <head><meta charset"UTF-8"><title>事件</title><style>p{width:100px;height:100px;border: 1px solid gray;}</style><script src"https://code.jquery.com/…

python pip处理

查看pip 版本号 pip --version 升级方法 on linux or os X: pip install -U pip on windows: python -m pip install -U pip 转载于:https://www.cnblogs.com/yangwithtao/p/6397114.html

js中innerHTML和innerText jQuery中html()和text()的区别

js中innerHTML和innerText的区别innerHTML innerHTML 会将标签和标签中的内容否获取回来 innerHTML .innerHTML ‘<p></p>’; 只会将文本内容解析出来&#xff0c;不会显示标签innerText innerText 只会将标签中的内容获取回来&#xff0c;不会获取标签 innerT…

ECMAScript 6 -- let和const命令

ES6新增了let命令&#xff0c;用来声明变量。它的用法类似于var&#xff0c;但是所声明的变量&#xff0c;只在let命令所在的代码块内有效。 for (let i 0; i < 10; i) {console.log(i);} 可以执行 for (let i 0; i < 10; i) {}console.log(i); 就会报错 ncaught Refer…

机器学习之朴素贝叶斯算法的推理及相关知识总结

文章目录1、朴素贝叶斯公式1.1、贝叶斯公式的应用2、了解贝叶斯网络2.1、知道什么是贝叶斯网络2.2、贝叶斯网络的两种表示形式2.3、掌握全连接的贝叶斯网络的公式2.3、知道条件概率表参数个数分析的方法2.4、掌握变量联合分布概率的公式及含义2.5、知道马尔科夫模型3、了解D-se…

mysql之外键

外键的作用,主要有两个: 一个是让数据库自己通过外键来保证数据的完整性和一致性 一个就是能够增加ER图的可读性 有些人认为外键的建立会给开发时操作数据库带来很大的麻烦.因为数据库有时候会由于没有通过外键的检测而使得开发人员删除,插入操作失败.他们觉得这样很麻烦 …

Android onLoadFinished与onLoaderReset

onLoadFinished 这个方法是在前面已创建的加载器已经完成其加载过程后被调用&#xff0c;这个方法保证会在应用到加载器上的数据被释放之前被调用。在此方法中&#xff0c;你必须删除所有对旧数据的使用(因为它将很快会被删除)&#xff0c;但是不要自己去释放它们&#xff0c;因…

HA机制的大数据集群的搭建过程

文章目录集群规划1、 准备Linux环境1.1、修改Linux主机名1.3、修改主机名和IP的映射关系1.4、关闭防火墙1.5、ssh免登陆&#xff08;主节点和从节点之间&#xff09;2、 安装JDK2.1、上传2.2、解压jdk2.3、将java添加到环境变量中2.4、刷新配置2.5、验证3、安装zookeeper3.1、解…

Linux系统7个运行级别图文详解

Linux系统7个运行级别图文详解 当安装linux操作系统时将选择下列那一个操作 ______ A&#xff0e;选择 "图形登录方式" 设定系统开始运行级为4 B&#xff0e;选择 "文本登录方式" 设定系统开始运行级为3 C&#xff0e;选择 "文本登录方式" 设定系…

CRISPR基因编辑

2007年&#xff0c;一家酸奶公司发现一种细菌拥有抵御病毒的特殊防御机制。2012年&#xff0c;细菌的这种机制就被科学家阐述清楚&#xff0c;2013年这一领域快速增长。它被视为分子生物学的一个奇迹&#xff0c;事实上&#xff0c;它并非仅对生物学家产生革命的影响&#xff0…

酒店之王

酒店之王 题目描述 XX酒店的老板想成为酒店之王&#xff0c;本着这种希望&#xff0c;第一步要将酒店变得人性化。由于很多来住店的旅客有自己喜好的房间色调、阳光等&#xff0c;也有自己所爱的菜&#xff0c;但是该酒店只有p间房间&#xff0c;一天只有固定的q道不同的菜。 有…