【机器学习算法-python实现】svm支持向量机(1)—理论知识介绍

(转载请注明出处:http://blog.csdn.net/buptgshengod)

1.背景

强烈推荐阅读(http://www.cnblogs.com/jerrylead/archive/2011/03/13/1982639.html)

支持向量机SVM(support vector machines)。

SVM是一种二值分类器,是近些年比較流行的一种分类算法。

本文,首先要介绍一些主要的知识概念,在下一章将对SVM进行简单地代码实现。

2.基本概念

(1)线性可分

首先介绍一下什么叫线性可分,引用一张上一节的图。

线性可分实际上就是能够用一条直线将两种不同的点区分开来。

由此我们能够得到线性不可分就是两种点混合在一起不能区分。

可是线性不可分的点事实上也能够用数学方法区分开来。

比方说一个四维的数据集我们能够用一个三维的对象将其分开,这个对象叫做超平面。

下图的超平面就是那条蓝线。

(2)支持向量

支持向量,如今我们知道了超平面的概念。支持向量事实上就是距离超平面在近期的向量。

以上图为例,就是距离蓝线近期的那些点。方法就是点到线的距离判定。

一旦我们找到了这些支持向量,那么我们就能够放大这些向量,仅仅考虑这些对象,用到的是序列最小优化的思想。

(3)拉格朗日乘子法

对于支持向量的求法,我们须要一定的约束条件。

比方说我们设点到超平面的距离是d,我们要求取d>1的点作为约束条件。

由于假设没有这个约束条件会使得计算出现误差。

这个公式是我们去点到超平面距离最小的点的集合,且满足

在存在约束条件情况下求极值的问题。我们用到拉格朗日乘子法(參见百度百科)。

(4)变型

參照拉格朗日公式F(x1,x2,...λ)=f(x1,x2,...)-λg(x1,x2...)。我们把上面的式子变型为

约束条件就变成了

上式的參数c使松弛变量,由于我们看到图中一些红点被分到了绿点的范围里,为了考虑到这样的问题,引入一个变量来控制。

svm的主要任务是计算參数C。

时间: 04-01

【机器学习算法-python实现】svm支持向量机(1)—理论知识介绍的相关文章

【机器学习算法-python实现】svm支持向量机(2)—简化版SMO算法

(转载请注明出处:http://blog.csdn.net/buptgshengod) 1.背景知识 通过上一节我们通过引入拉格朗日乗子得到支持向量机变形公式.详细变法可以参考这位大神的博客--地址 参照拉格朗日公式F(x1,x2,...λ)=f(x1,x2,...)-λg(x1,x2...).我们把上面的式子变型为: 约束条件就变成了: 下面就根据最小优化算法SMO(Sequential Minimal Optimization).找出距离分隔面最近的点,也就是支持向量集.如下图的蓝色点所示.

【机器学习算法-python实现】采样算法的简单实现

1.背景 采样算法是机器学习中比较常用,也比较容易实现的(出去分层采样).常用的采样算法有以下几种(来自百度知道): 一.单纯随机抽样(simple random sampling) 将调查总体全部观察单位编号,再用抽签法或随机数字表随机抽取部分观察单位组成样本. 优点:操作简单,均数.率及相应的标准误计算简单. 缺点:总体较大时,难以一一编号. 二.系统抽样(systematic sampling) 又称机械抽样.等距抽样,即先将总体的观察单位按某一顺序号分成n个部分,再从第一部分随机抽取第k

【机器学习算法-python实现】矩阵去噪以及归一化

1.背景 项目需要,打算用python实现矩阵的去噪和归一化.用numpy这些数学库没有找到很理想的函数,所以一怒之下自己用标准库写了一个去噪和归一化的算法,效率有点低,不过还能用,大家如果有需要可以拿去. (1)去噪算法:根据概率论的知识,如果一组数据服从正态分布,我们设均值是n,方差是v,那么对于每个离散数值有百分之九十二以上的概率会在(n-3*v,n+3*v)的区间内.所以这里的去噪功能主要是实现如果超出了区间就将这个值标记为区间所能容忍最大值. (2)归一化:找到输入队列最大值max,最

【机器学习算法-python实现】协同过滤(cf)的三种方法实现

(转载请注明出处:http://blog.csdn.net/buptgshengod) 1.背景 协同过滤(collaborative filtering)是推荐系统常用的一种方法.cf的主要思想就是找出物品相似度高的归为一类进行推荐.cf又分为icf和ucf.icf指的是item collaborative filtering,是将商品进行分析推荐.同理ucf的u指的是user,他是找出知趣相似的人,进行推荐.通常来讲icf的准确率可能会高一些,通过这次参加天猫大数据比赛,我觉得只有在数据量非

【机器学习算法-python实现】K-means无监督学习实现分类

1.背景 无监督学习的定义就不多说了,不懂得可以google.因为项目需要,需要进行无监督的分类学习. K-means里面的K指的是将数据分成的份数,基本上用的就是算距离的方法. 大致的思路就是给定一个矩阵,假设K的值是2,也就是分成两个部分,那么我们首先确定两个质心.一开始是找矩阵每一列的最大值max,最小值min,算出range=max-min,然后设质心就是min+range*random.之后在逐渐递归跟进,其实要想明白还是要跟一遍代码,自己每一步都输出一下看看跟自己想象的是否一样. (

机器学习算法推导过程中的数据基础知识

1.向量.矩阵求导 当然了,这里补充一下求解过程中的关于向量.矩阵求导的几个公式: 这里其实只需要明白第一个,后边的三个都可以由第一个简单的推导而来. 注意这里对列向量AX的每一项的求导写为行,不然就会得到一个超越矩阵,我们不采用这种方式.

8种常见机器学习算法比较

机器学习算法太多了,分类.回归.聚类.推荐.图像识别领域等等,要想找到一个合适算法真的不容易,所以在实际应用中,我们一般都是采用启发式学习方式来实验.通常最开始我们都会选择大家普遍认同的算法,诸如SVM,GBDT,Adaboost,现在深度学习很火热,神经网络也是一个不错的选择.假如你在乎精度(accuracy)的话,最好的方法就是通过交叉验证(cross-validation)对各个算法一个个地进行测试,进行比较,然后调整参数确保每个算法达到最优解,最后选择最好的一个.但是如果你只是在寻找一个

(转)8种常见机器学习算法比较

机器学习算法太多了,分类.回归.聚类.推荐.图像识别领域等等,要想找到一个合适算法真的不容易,所以在实际应用中,我们一般都是采用启发式学习方式来实验.通常最开始我们都会选择大家普遍认同的算法,诸如SVM,GBDT,Adaboost,现在深度学习很火热,神经网络也是一个不错的选择.假如你在乎精度(accuracy)的话,最好的方法就是通过交叉验证(cross-validation)对各个算法一个个地进行测试,进行比较,然后调整参数确保每个算法达到最优解,最后选择最好的一个.但是如果你只是在寻找一个

机器学习算法集锦

机器学习 机器学习(Machine Learning, ML)是一门多领域交叉学科,涉及概率论.统计学.逼近论.凸分析.算法复杂度理论等多门学科.专门研究计算机怎样模拟或实现人类的学习行为,以获取新的知识或技能,重新组织已有的知识结构使之不断改善自身的性能. 严格的定义:机器学习是一门研究机器获取新知识和新技能,并识别现有知识的学问.这里所说的"机器",指的就是计算机,电子计算机,中子计算机.光子计算机或神经计算机等等. 机器学习概论 由上图所示:机器学习分为四大块: classifi