SVM支持向量机个人总结及理解
SVM支持向量机个人总结
最近在学习支持向量机的内容,总感觉对这块的东西比较模糊,为了加深自己的印象以及理解,写一篇note来帮助自己回忆(纯属个人理解,如有错误,烦请改正,谢谢各位!)
1.1简单介绍
支持向量机,也可以叫做大间距分类器,它的目标是当存在两个需要分类的集合的时候,求出一个超平面,能够尽可能保证划分出两种物体。这个超平面需要满足的条件是:
MAX{MIN(每类的点到超平面的最小距离)}
所以也就是说,也就是说两类物体之间的间隔越大越好。
通过对大量数据进行训练之后
他的判别公式是:
f ( w ) = s i g n ( W t X + b ) f(w) =sign(W^tX+b) f(w)=sign(WtX+b)
我们令 Z = W T X + b Z = W^TX+b Z=WTX+b
当Z >0, f ( w ) = 1 f(w) =1 f(w)=1
当Z <0, f ( w ) = − 1 f(w) =-1 f(w)=−1
接下来注重回答一下我自己在学习过程当中产生的疑惑
//
//
1. 1W是什么?
W W W:代表的是超平面的法向量,这是数学知识,我们都知道,一条直线的系数抽成单独的向量就代表当前直线的法向量。
1.2 W*x是什么?
W T x W^Tx WTx:我们都知道,向量乘法相当于一个向量在另外一个向量方向上的投影。 W T x W^Tx WTx就相当于表示 x x x在 W W W方向上的投影,也就是在x在法向量当中的投影。
由点到直线的距离我们知道,此时如果将W标准化为单位长度,那么 W T x W^Tx WTx就相当于是再求点到直线的距离。
1.3 b是什么?
b b b:偏置量,不一定过原点。
2. SVM的工作流程
在开始正式介绍SVM的工作流程之前我们先介绍一下核函数,它在SVM当中非常重要。
2.1 核函数
核函数个人认为核函数最简单的理解就是对当前的数据量进行提升维度。在机器学习当中,高纬度数据比低纬度数据更加线性可分。举个例子,如下图所示
我们看左图,他是不容易分隔的,相反,右图是非常容易分离的,我们只需要在空间中画一个平面就可以分割。
核函数就是帮助数据容易分割的。
2.2 核函数的种类
线性核函数 (就是没使用核函数)
K ( x i , x j ) = x i T x j K(x_i,x_j)=x_i^Tx_j K(xi,xj)=xiTxj
一般用于线性可分的数据,特点就是不需要考虑调参问题,运行速度也快多项式核函数
K ( x i , x j ) = ( C x i T x j + r ) d , C > 0 K(x_i,x_j)=(Cx_i^Tx_j+r)^d,C>0 K(xi,xj)=(CxiTxj+r)d,C>0高斯核函数(RBF核函数)
K ( x i , x j ) = e x p ( − C ∣ ∣ x i − x j ∣ ∣ 2 ) , C > 0 K(x_i,x_j)=exp(-C||x_i-x_j||^2),C>0 K(xi,xj)=exp(−C∣∣xi−xj∣∣2),C>0
一般用于线性不可分的问题,他的参数很多,因此分类器的效果非常依赖的参数的选取。可以尝试通过交叉验证的方式来逐步改善参数问题sigmoid核函数
K ( x i , x j ) = t a n h ( C x i T x j + r ) K(x_i,x_j)=tanh(Cx_i^Tx_j+r) K(xi,xj)=tanh(CxiTxj+r)
例外说一点:可以通过枚举法来尝试不同核函数的效果
另外吴恩达老师在视频中说:
N是特征的数量,m是训练样本的数量
a) 如果N非常大,(relative to相对于M来说)
一般使用逻辑回归或者线性svm
b) 如果n比较小,m不大也不小
使用高斯和函数的svm
c) 如果n非常小,m又特别大
尝试构建更多的特征,然后用逻辑回归或者线性svm
d) 神经网络能够适合大部分的场景,but他训练速度太慢了。
2.3 工作流程
- 首先拿到一批数据,对每个数据进行中心化操作(标准化,归一化)
- 使用和函数映射到高维,此时的 x x x-----> f ( x ) f(x) f(x)
- 求θ,通过以下代价函数
- 开始预测
参考
【1】https://blog.csdn.net/u011746554/article/details/70941587?utm_medium=distribute.pc_relevant.none-task-blog-BlogCommendFromBaidu-3.control&depth_1-utm_source=distribute.pc_relevant.none-task-blog-BlogCommendFromBaidu-3.control
SVM支持向量机个人总结及理解相关推荐
- SVM支持向量机通俗导论(理解SVM的三层境界)
神文 转自july:http://blog.csdn.net/v_july_v/article/details/7624837 支持向量机通俗导论(理解SVM的三层境界) 作者:July .致谢:pl ...
- 支持向量所在超平面方程_支持向量机通俗导论:理解SVM的三层境界(一)
前言 动笔写这个支持向量机(support vector machine)是费了不少劲和困难的,原因很简单,一者这个东西本身就并不好懂,要深入学习和研究下去需花费不少时间和精力,二者这个东西也不好讲清 ...
- 支持向量机通俗导论(理解SVM的三层境界)
前言 动笔写这个支持向量机(support vector machine)是费了不少劲和困难的,原因很简单,一者这个东西本身就并不好懂,要深入学习和研究下去需花费不少时间和精力,二者这个东西也不好讲清 ...
- 机器学习:SVM支持向量机理解
SVM应该是机器学习过程中第一个特别复杂的算法了,其中大量的数学推导公式和优化算法,对小白真的太不友好了.这篇文章参考了许多优秀博文,主要是了解一下SVM,尽量少涉及复杂的公式推导,有些直接给出结论. ...
- Machine Learning:支持向量机通俗导论(理解SVM的三层境界)
转载自:http://blog.csdn.net/v_july_v/article/details/7624837 前言 动笔写这个支持向量机(support vector machine)是费了不少 ...
- SVM支持向量机-手写笔记(超详细:拉格朗日乘数法、KKT条件、对偶性质、最优化、合页损失、核函数...)
SVM支持向量机-手写笔记 作者:某丁 日期:2021.05.21 写完了,发现想要真正理解SVM还需要继续深入学习,以上所写只不过是冰山一角,我的管中窥豹而已. 参考 [1] 一文搞懂支持向量机(S ...
- 历经一个月,终于搞定了SVM(支持向量机)-附源代码解析
历经一个月,终于搞定了SVM(支持向量机)-附源代码解析 前言 其实整体算下来,断断续续的也得有快两个月了(原谅博主比较笨).中间也有好几次放弃,不想写这篇总结了,但是之前立下的誓言,要将学习到的每一 ...
- 惊呼——SVM支持向量机三重境界!
转载自:原文 前言 动笔写这个支持向量机(support vector machine)是费了不少劲和困难的,原因很简单,一者这个东西本身就并不好懂,要深入学习和研究下去需花费不少时间和精力,二者这个 ...
- SVM支持向量机的推导(非常详细)
SVM支持向量机的推导(非常详细) 参考自(https://www.zhihu.com/search?q=svm%E6%8E%A8%E5%AF%BC&utm_content=search_su ...
最新文章
- 出租房的网络环境研究
- 查询mysql存储数据大小_MySQL如何查询数据占用存储空间的大小?
- cutterman 导出html,电脑中如何使用cutterman插件
- PyTorch机器学习从入门到实战-CH2
- [SceneKit专题]11-Reference-Nodes引用节点
- 华为海外女科学家为您揭秘:GaussDB(for MySQL)云栈垂直集成的力量有多大?
- (七) UVC框架分析
- 一个前端妹子的悲欢编程之路
- LINUX grep忽略排除某些目录、文件
- ubuntu gif 制作工具
- 华为云服务器搭建PaddlePaddle GPU环境
- Matlab-有限单元法-2D梁单元的刚度矩阵组装(曾攀)
- plist 与 JOSN的解析
- V4L2框架-media device
- 山西医科大学计算机部,山西医科大学医学计算机教学改革探讨.pdf
- 黑白图,灰度图,彩色图的理解
- 产品定位:你是钉子,还是棒槌?
- 大学计算机实验图灵机模型与计算机硬件,实验1图灵机模型与计算机硬件系统虚拟拆装实验报告.pdf...
- LINUX磁盘分区和添加磁盘的一些命令
- JavaWeb在线考试系统(简单版)
热门文章
- openCV calcHist函数的使用
- 论文阅读——Multi-Task Learning Framework for Extracting Emoton Cause Span and Entailment in Conversations
- webstorm2019 汉化后无法设置 webstorm最新汉化包
- Python爬虫 | 代理IP的获取和使用
- 用两个栈实现最小栈的功能
- 数据索引---Solr DIH
- 【Unity Shader】学习顶点/片元着色器
- linux安全之服务安全
- Python 在windows上跑图色脚本?简单又好玩,自己编写一个自动化脚本
- linux 设置文件为可修改密码,linux 为用户设定、修改密码 passwd