线性思维

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维向量

矩阵与行列式的几何意义

旧街凉风 提交于 2019-12-20 02:29:05
作者:童哲 链接:https://www.zhihu.com/question/36966326/answer/70687817 来源:知乎 著作权归作者所有,转载请联系作者获得授权。 行列式这个“怪物”定义初看很奇怪,一堆逆序数什么的让人不免觉得恐惧,但其实它是有实际得不能更实际的物理意义的, 理解只需要三步 。这酸爽~ 1,行列式 是针对一个 的矩阵 而言的。 表示一个 维空间到 维空间的线性变换。那么什么是线性变换呢?无非是一个压缩或拉伸啊。假想原来空间中有一个 维的立方体(随便什么形状),其中立方体内的每一个点都经过这个线性变换,变成 维空间中的一个新立方体。 2,原来立方体有一个体积 ,新的立方体也有一个体积 。 3,行列式 是一个数对不对?这个数其实就是 ,结束了。 就这么简单?没错,就这么简单。 所以说:行列式的本质就是一句话: 行列式就是线性变换的放大率! 理解了行列式的物理意义,很多性质你根本就瞬间理解到忘不了!!!比如这个重要的行列式乘法性质: 道理很简单,因为放大率是相乘的啊~! 你先进行一个 变换,再进行一个 变换,放大两次的放大率,就是式子左边。 你把“先进行 变换,再进行 变换”定义作一个新的变换,叫做“ ”,新变换的放大律就是式子右边。 然后你要问等式两边是否一定相等,我可以明确告诉你:too simple 必须相等。因为其实只是简单的把事实陈述出来了

莫比乌斯反演学习笔记2

倖福魔咒の 提交于 2019-12-06 08:40:44
前置知识:莫比乌斯反演学习笔记1 本文介绍一些莫比乌斯反演的灵活应用,包括杜教筛等内容。 一、整除分块(数论分块) 补充一点基础知识... 具体来说就是:如果我们要求 \(\sum \limits_{i=1}^n\lfloor\frac{n}{i}\rfloor\) ,并不需要用朴素算法 \(O(n)\) 去求,可以加快速度。 定理1:所有 \(1 \leq i \leq n\) 的 \(\lfloor\frac{n}{i}\rfloor\) 的结果最多只有 \(2\sqrt n\) 种。 证明:对于 \(i \in [1,\sqrt n]\) ,显然最多只有 \(\sqrt n\) 种取值,而对于 \(i \in [\sqrt n+1,n]\) , \(\lfloor\frac{n}{i}\rfloor\leq\sqrt n\) ,因此也最多有 \(\sqrt n\) 种取值,两个部分相加,因此最多有 \(2\sqrt n\) 种取值。 定理2:对于确定的 \(i\) ,能使得 \(\lfloor\frac{n}{x}\rfloor=\lfloor\frac{n}{i}\rfloor\) 的 \(x_{max}=\Big\lfloor\cfrac{n}{\lfloor\frac{n}{i}\rfloor}\Big\rfloor\) 。 这里选取了两种证明方法。 证法1:记 \(f

支持向量机SVM

泄露秘密 提交于 2019-12-04 09:02:35
svm简介 支持向量机(support vector machines)是一种二分类模型,它的目的是寻找一个超平面来对样本进行分割,分割的原则是间隔最大化,最终转化为一个凸二次规划问题来求解。由简至繁的模型包括: 当训练样本线性可分时,通过硬间隔最大化,学习一个线性可分支持向量机; 当训练样本近似线性可分时,通过软间隔最大化,学习一个线性支持向量机; 当训练样本线性不可分时,通过核技巧和软间隔最大化,学习一个非线性支持向量机; 1、间隔最大化和支持向量 如果一个线性函数能够将样本分开,称这些数据样本是线性可分的。那么什么是线性函数呢?其实很简单,在二维空间中就是一条直线,在三维空间中就是一个平面,以此类推,如果不考虑空间维数, 这样的线性函数统称为超平面。我们看一个简单的二维空间的例子,O代表正类,X代表负类,样本是线性可分的,但是很显然不只有这一条直线可以将样本分开,而是有无数条, 我们所说的线性可分支持向量机就对应着能将数据正确划分并且间隔最大的直线。 这篇博客的第一层便介绍了SVM的基础 简单的SVM程序实现 1 from sklearn import svm 2 x = [[3, 3], [4, 3], [1, 1]] 3 y = [1, 1, -1] 4 5 model = svm.SVC(kernel='linear') 6 model.fit(x,y) 7 print

线性代数的直观理解 -- Intuition in Linear Algebra

北慕城南 提交于 2019-11-29 10:47:56
受《理解线性代数》启发,结合自身学习的经验,直观的总结我对线性代数的理解。强调直观是因为在这里不纠缠于数学的严谨性,所以如果追求数学严谨性和证明的还是去看教材比较好。 统计的目标是对数表内各种数据进行挖掘从而找出隐含其中的关系,线性代数为统计提供了对数表的表达方式和对数表进行处理的工具。 在初等数学中我们学过函数,用来表示的数据之间一种确定的关系,给定x一定能算出唯一的y。但现实中我们遇到的数据可就没有那么明确的联系了,我们不知道谁和谁有联系,甚至不知道是不是存在联系。因此我们急需一种框架来帮助我们处理这些”不好看”的数据。统计就是为了处理数据而生的,它的目标即挖掘出数据之间的联系,从而抽象出数学模型来做解释或预测。 先来扯句题外话,我们知道数学的本质是抽象。那究竟什么是抽象?抽象就是从不同个体中找相同,这些相同也就是规律和关系。初等数学中学到的函数关系就是一种规律,无论x到底是什么值,它和y之间都存在这样的规律。这也是为什么说数学模型都是错的,但却是有用的原因。抽象忽略了个体差异,只留相同点,利用相同点我们能处理满足此相同点的任何差异个体。 言归正传。回忆下中学解析几何或者大学微积分时我们是如何处理数据的: 我们会把函数f(x)映射到欧几里得空间内笛卡尔坐标系做visualization。在代数上对函数的操作等价于对欧几里得空间中相应函数图像做操作。函数是确定的关系

SVM入门

倾然丶 夕夏残阳落幕 提交于 2019-11-27 10:00:23
(一)SVM的八股简介 支持向量机(Support Vector Machine)是Cortes和Vapnik于1995年首先提出的,它在解决小样本、非线性及高维模式识别中表现出许多特有的优势,并能够推广应用到函数拟合等其他机器学习问题中[10]。 支持向量机方法是建立在统计学习理论的VC 维理论和结构风险最小原理基础上的,根据有限的样本信息在模型的复杂性(即对特定训练样本的学习精度,Accuracy)和学习能力(即无错误地识别任意样本的能力)之间寻求最佳折衷,以期获得最好的推广能力[14](或称泛化能力)。 以上是经常被有关SVM 的学术文献引用的介绍,有点八股,我来逐一分解并解释一下。 Vapnik是统计机器学习的大牛,这想必都不用说,他出版的《Statistical Learning Theory》是一本完整阐述统计机器学习思想的名著。在该书中详细的论证了统计机器学习之所以区别于传统机器学习的本质,就在于统计机器学习能够精确的给出学习效果,能够解答需要的样本数等等一系列问题。与统计机器学习的精密思维相比,传统的机器学习基本上属于摸着石头过河,用传统的机器学习方法构造分类系统完全成了一种技巧,一个人做的结果可能很好,另一个人差不多的方法做出来却很差,缺乏指导和原则。 所谓VC维是对函数类的一种度量,可以简单的理解为问题的复杂程度,VC维越高,一个问题就越复杂

SVM入门(一 ~ 三)简介 (转)

杀马特。学长 韩版系。学妹 提交于 2019-11-27 06:38:34
(一)SVM的八股简介 支持向量机(Support Vector Machine)是Cortes和Vapnik于1995年首先提出的,它在解决小样本、非线性及高维模式识别中表现出许多特有的优势,并能够推广应用到函数拟合等其他机器学习问题中[10]。 支持向量机方法是建立在统计学习理论的VC 维理论和结构风险最小原理基础上的,根据有限的样本信息在模型的复杂性(即对特定训练样本的学习精度,Accuracy)和学习能力(即无错误地识别任意样本的能力)之间寻求最佳折衷,以期获得最好的推广能力[14](或称泛化能力)。 以上是经常被有关SVM 的学术文献引用的介绍,有点八股,我来逐一分解并解释一下。 Vapnik是统计机器学习的大牛,这想必都不用说,他出版的《Statistical Learning Theory》是一本完整阐述统计机器学习思想的名著。在该书中详细的论证了统计机器学习之所以区别于传统机器学习的本质,就在于统计机器学习能够精确的给出学习效果,能够解答需要的样本数等等一系列问题。与统计机器学习的精密思维相比,传统的机器学习基本上属于摸着石头过河,用传统的机器学习方法构造分类系统完全成了一种技巧,一个人做的结果可能很好,另一个人差不多的方法做出来却很差,缺乏指导和原则。 所谓VC维是对函数类的一种度量,可以简单的理解为问题的复杂程度,VC维越高,一个问题就越复杂