超平面

SVM的原理及python实战

ぐ巨炮叔叔 提交于 2020-03-17 01:05:47
SVM 是英文Support Vector Machine首字母缩写,中文名 支持向量机 。 是机器学习领域最顶尖的存在,应用领域广、预测效果好,被誉为万能分类器,正是这样,SVM的理解和学习也比其他的算法要难一些。也是本人 数据挖掘专栏 的终结篇。 为了能更好的让大家理解,这里我们对里面设计的知识点进行分解处理,所以在真正学习SVM之前,先介绍一下向量与平面、拉格朗日乘子法。 目录 一、向量与平面 1、向量 2、平面 二、拉格朗日乘子法 the"milkmaid problem”--挤奶女佣问题 灵感 三、SVM 1、线性SVM 2、软间隔 3、核函数 四、python实战 1、线性可分 2、软间隔 3、核函数 五、总结 一、向量与平面 1、向量 对于一个向量 a ,只需要关心它的方向和大小(长短),即终点坐标-起点坐标,不需要关心位置。 假设有两个向量 a,b a=(a1,a2) b= (b1,b2) 根据高中知识可以得到这两个向量的内积公式 a∙ b =a1b1+a2b2=‖ a ‖ ‖ b ‖cosa 我们做一个简单的变换 我们再加入两个向量c、 d a= c + d, c⊥b 且 d//b 那么我们又可以得到 a∙ b =(c+d) ∙ b =c∙ b + d ∙ b = ‖d‖ ‖b‖ 这是最基本的公式,接下来会用到 2、平面 超平面的理解 假定W和x是n维向量

机器学习基本算法

百般思念 提交于 2020-03-09 14:53:30
文章目录 决策树(待续) 支持向量机(SVM) 基本型 对偶型 非线性可分与核函数 软间隔、正则化、损失函数 基本回归算法 线性回归 对数几率回归(logistc regression) 支持向量回归(SVR)(待续) k近邻法(kNN) 基本方法 距离、k的选取和决策规则 kd树(待续) 决策树(待续) 支持向量机(SVM) 基本型 n维度空间中有N个点。假设有n维度空间中的一个 n − 1 n-1 n − 1 维的超平面将 n n n 维空间分割,这个 n − 1 n-1 n − 1 维超平面的方程为 w T x + b = 0 \bm{w}^T\bm{x}+b=0 w T x + b = 0 则点 x ′ \bm{x}' x ′ 到该超平面(记为 ( w , b ) (\bm{w},b) ( w , b ) )的距离为 r ( x ′ ; w , b ) = ∣ w T x ′ + b ∣ ∣ ∣ w ∣ ∣ r(\bm{x}';\bm{w},b)=\frac{|\bm{w}^T\bm{x}'+b|}{||\bm{w}||} r ( x ′ ; w , b ) = ∣ ∣ w ∣ ∣ ∣ w T x ′ + b ∣ ​ 当这个超平面两侧刚刚好为需要区分的两类事件的时候。即对N个样本 { y i , x i } , i = 1 , 2 , 3 , . . . , N , y i

02-01 感知机

删除回忆录丶 提交于 2020-02-26 02:09:14
文章目录 感知机 感知机学习目标 感知机引入 线性可分和线性不可分 感知机详解 感知机模型 感知机损失函数 感知机目标函数 感知机最小化目标函数原始形式 感知机最小化目标函数对偶形式 感知机算法的收敛性 感知机流程 输入 输出 原始形式流程 对偶形式流程 感知机优缺点 优点 缺点 小结 感知机   感知机在1957年被提出,算是最古老的分类方法之一。   虽然感知机泛化能力不及其他的分类模型,但是如果能够对感知机的原理有一定的认识,在之后学习支持向量机、神经网络等机器学习算法的时候会轻松很多。 感知机学习目标 感知机模型 感知机的损失函数和目标函数 感知机原始形式和对偶形式 感知机流程 感知机优缺点 感知机引入 线性可分和线性不可分   每逢下午有体育课,总会有男孩和女孩在学校的操场上玩耍。   假设由于传统思想的影响,男孩总会和男孩一起打打篮球,女孩总会和女孩一起踢毽子、跳跳绳,如下图所示。 # 感知机引入图例 import numpy as np import matplotlib . pyplot as plt from matplotlib . font_manager import FontProperties % matplotlib inline font = FontProperties ( fname = '/Library/Fonts/Heiti.ttc' )

K最邻近分类

徘徊边缘 提交于 2020-02-07 06:19:47
最邻近分类是分类方法中比较简单的一种,下面对其进行介绍 1.模型结构说明 最邻近分类模型属于“基于记忆”的非参数局部模型,这种模型并不是立即利用训练数据建立模型,数据也不再被函数和参数所替代。在对测试样例进行类别预测的时候,找出和其距离最接近的 个样例,以其中数量最多的类别作为该样例的类预测结果。 最邻近分类模型的结构可以用下图来说明,图中叉号表示输入的待分类样例,对其分类时选定一个距离范围(虚线圆圈表示的范围),在该范围内包含有 个样例(除去待分类样例外,这里 =5),这里所说的距离并不专指距离度量(如曼哈顿距离、欧氏距离等),它可以是任意一种邻近度度量(在我的博文《数据测量与相似性分析》中有介绍),此时最邻近的5个样例中,有3个“+”例,2个“-”例,故待分类样例的类别定位“+”。为了便于确定类别, 一般取奇数。 ​ 2.模型构建 2.1 K值选取 从 最邻近分类方法的分类过程可知, 值对模型的误分类率影响较大。 较小时,相当于用较小邻域中的样例进行预测,“学习”的近似误差会减小,但是“学习“的估计误差会增大,且对邻域内的样例非常敏感,若邻近的样例中包含部分噪声,预测结果就会出错, 较大时的情况则相反。 总的来说, 值减小意味着整体模型变复杂,容易发生过拟合, 值增大意味着模型变简单,导致忽略“训练”样例中一些有用信息,预测误分类率会增高。在应用中,一般 取较小的值

理解支持向量机

社会主义新天地 提交于 2020-02-06 21:10:57
支持向量机是一个二类分类模型,但也能够扩展为多类分类。 其基于间隔最大化和核技巧的特点能够使它能够灵活处理线性或非线性分类问题。 支持向量机但是形式化为一个凸二次规划问题。学习算法是求解基于 凸二次规划的最优化算法 。 依照训练数据是否线性可分。支持向量机能够分为基于硬间隔的线性可分支持向量机、基于软间隔的线性支持向量机、基于核技巧和软间隔最大化的非线性支持向量机。 三者复杂性是依次添加的。 1、基于硬间隔最大化的线性可分支持向量机 我们知道。感知机和决策树等学习方法没有区分模型的输入空间和特征空间,即觉得两者所处的空间是一样的。 支持向量机的输入空间和特征空间是不同的。输入空间为欧氏空间或离散集合。特征空间是 希尔伯特空间 。 希尔伯特空间能够看作是欧氏空间的扩展,其空间维度能够是随意维的,包括无穷维。并且一个重要的性质是其具有欧氏空间不具备的完备性。 这些特点都是支持向量机在做非线性特征空间映射所须要的。 以下从最简单的线性可分支持向量机入手,学过感知机的都知道,感知机通过训练一个超平面将平面或空间线性可分的点进行划分。 其超平面方程为 w∙x+b=0; 分类决策函数f(x)=sign(w∙x+b)。 线性可分支持向量机也是如此,通过找寻切割平面来划分数据集。不同的是, 感知机的学习策略是误分类点到超平面距离和最小化,而线性可分支持向量机是基于硬间隔最大化的 。

算法原理详细推导与实现(四):支持向量机(上)

ぐ巨炮叔叔 提交于 2020-02-06 02:10:44
【机器学习】算法原理详细推导与实现(四):支持向量机(上) 在之前的文章中,包括线性回归和逻辑回归,都是以线性分界线进行分割划分种类的。而本次介绍一种很强的分类器【支持向量机】,它适用于线性和非线性分界线的分类方法。 函数间隔概念 为了更好的理解非线性分界线,区别两种分界线对于分类的直观理解,第一种直观理解需要考虑 logistic 回归,我们用一个 logistic 回归函数表示当 y = 1 y=1 y = 1 时概率表示为 : p ( y = 1 ∣ x ; θ ) = h ( θ ) = g ( θ T x ) = g ( z ) \begin{aligned} p(y=1|x;\theta)&=h(\theta) \\ &=g({\theta}^Tx) \\ &=g(z) \\ \end{aligned} p ( y = 1 ∣ x ; θ ) ​ = h ( θ ) = g ( θ T x ) = g ( z ) ​ 当 h ( θ ) ≥ 0.5 h(\theta) \geq 0.5 h ( θ ) ≥ 0 . 5 时,即 θ T x ≥ 0 {\theta}^Tx \geq 0 θ T x ≥ 0 时 y = 1 y=1 y = 1 ;同理当 h ( θ ) < 0.5 h(\theta) < 0.5 h ( θ ) < 0 . 5 时,即 θ T x < 0 {

svm算法 最通俗易懂讲解

 ̄綄美尐妖づ 提交于 2020-01-28 04:50:46
最近在学习svm算法,借此文章记录自己的学习过程,在学习很多处借鉴了z老师的讲义和李航的统计,若有不足的地方,请海涵;svm算法通俗的理解在二维上,就是找一分割线把两类分开,问题是如下图三条颜色都可以把点和星划开,但哪条线是最优的呢,这就是我们要考虑的问题; 首先我们先假设一条直线为 W•X+b =0 为最优的分割线,把两类分开如下图所示,那我们就要解决的是怎么获取这条最优直线呢?及W 和 b 的值;在SVM中最优分割面(超平面)就是:能使 支持向量和超平面最小距离的最大值 ; 我们的目标是寻找一个超平面,使得离超平面比较近的点能有更大的间距。也就是我们不考虑所有的点都必须远离超平面,我们关心求得的超平面能够让所有点中离它最近的点具有最大间距。 如上面假设蓝色的星星类有5个样本,并设定此类样本标记为Y =1,紫色圈类有5个样本,并设定此类标记为 Y =-1,共 T ={(X₁ ,Y₁) , (X₂,Y₂) (X₃,Y₃) .........} 10个样本,超平面(分割线)为wx+b=0; 样本点到超平面的几何距离为: 此处要说明一下: 函数距离和几何距离的关系;定义上把 样本| w▪x₁+b|的距离叫做函数距离,而上面公式为几何距离,你会发现当w 和b 同倍数增加时候,函数距离也会通倍数增加;简单个例子就是,样本 X₁ 到 2w X₁ +2b =0的函数距离是w X₁ +b

读书笔记(2)——感知机

随声附和 提交于 2020-01-24 00:57:45
本文主要参考书籍为《统计学习方法》(李航)第二版 感知机 是二类分类的线性分类模型,其输入为实例的特征向量,输出为实例的类别,取+1和-1二值。感知机对应于输入空间(特征空间)中将实例划分为正负两类的分离超平面,属于判别模型。 感知机学习旨在求出将训练数据进行线性划分的分离超平面,为此,导入基于误分类的损失函数,利用 梯度下降法 对损失函数进行极小化求得感知机模型。 即寻找一个超平面将把 线性可分数据 集分布在这个超平面的两侧。 线性可分数据集 :存在某个超平面可以将数据集的正实例点和负的实例点完全正确的划分到超平面的两侧,这样的数据集称作线性可分数据集,否则是非线性可分数据集。感知机要求数据集是线性可分的。 定义 假设 输入空间(特征空间)是 输出空间是 输入x属于X表示实例的特征向量,对应于输入空间(特征空间)的点; 输出y属于 Y表示实例的类别。 由输入空间到输出空间的函数为 f(x)=sign(w⋅x+b) x 表示实例的特征向量, w 表示权值向量, w⋅x 表示 w 和 x 的内积 sign函数表示: 从几何角度进行表示感知机模型 感知机学习策略 为了找出目标的超平面,即确定感知机模型参数w,b。需要确定一个学习策略,即定义(经验)损失函数并将损失函数极小化。 损失函数:选择误分类点到超平面S的总距离,而不是误分类点的总数。 在构造感知机的损失函数时

第 7 章 支持向量机

我的未来我决定 提交于 2020-01-22 00:11:26
支持向量机(support vector machine, SVM)是一种二类分类模型,它的基本模型是 定义在特征空间上的间隔最大的线性分类器 ,间隔最大使它有别于感知机; 支持向量机还包括核技巧,这使它成为实质上的非线性分类器, 支持向量机的学习策略就是间隔最大化,可形式化为一个求解凸二次规划(convex quadratic programming)的问题, 也等价于正则化的合页损失函数的最小化问题,支持向量机的学习算法是求解凸二次规划的最优化算法。 支持向量机学习方法包含创建由简至繁的模型。 线性可分支持向量机、线性支持向量机及非线性支持向量机。 简单模型是复杂模型的基础,也是复杂模型的特殊情况。 当训练数据线性可分时,通过硬间隔最大化(hard margin maximization),学习一个线性的分类器,即 线性可分支持向量机 (也叫硬间隔支持向量机)。 当训练数据近似线性可分时,通过软间隔最大化,也学习一个线性的分类器,即 线性支持向量机 , 又称为软间隔支持向量机; 当训练数据线性不可分时,通过使用核技巧(kenel trick)及软间隔最大化,学习 非线性支持向量机 。 当输入空间为欧式空间或者离散集合、特征空间为希尔伯特空间时,核函数(kernel function)表示将输入从输入空间映射到特征空间得到的特征向量之间的内积。 通过核函数可以学习非线性支持向量机

理解SVM(附代码)

六眼飞鱼酱① 提交于 2020-01-21 12:41:10
参考内容: https://blog.csdn.net/weixin_39605679/article/details/81170300 SVM 支持向量机是一种二分类模型,它的基本模型是定义在特征空间上的间隔最大的分类器,SVM还包含核技巧,这使它可以成为非线性的分类器。SVM的学习策略就是间隔最大化。 算法原理 SVM 学习的基本思想就是求解能够正确划分训练数据集并且几何间隔距离最大的超平面。 对于线性可分的数据,超平面(w*x+b=0)有无穷多个,但是几何间隔最大的超平面是唯一的 几何间隔: 对于给定的数据集和超平面,定义超平面关于样本点(Xi,Yi)的几何间隔为 根据点到直线的距离 扩展到超平面距离为: 这个d 就是分类间隔。 ||W|| 表示w的二范数,即求所有元素的平方和,然后开方,比如对于二维平面: 分类器的好坏评定依据就是分类间隔W=2d的大小,W越大,我们认为超平面分类效果越好,现在问题变成了最大化问题 约束条件: 至此我们已经获得了目标函数的数学形式,但是为了求解w的最大值,我们需要解决下面问题: 1: 如何判断超平面将样本点正确分类。 2 : 我们知道了求距离d的最大值,首先需要找到支持向量上的点,如何从众多的点中 选出支持向量上的点呢? 上面需要面对的问题就是约束条件,也就是我们优化的变量d的取值范围受到了限制和约束条件。SVM算法通过一些巧妙的技巧