支持向量机SVM
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