SVM算法

作者: 遇见百分百 | 来源:发表于2018-05-16 11:42 被阅读0次

1、背景

     1.1 最早是由 Vladimir N. Vapnik 和 Alexey Ya. Chervonenkis 在1963年提出

     1.2 目前的版本(soft margin)是由Corinna Cortes 和 Vapnik在1993年提出,并在1995年发表

     1.3 深度学习(2012)出现之前,SVM被认为机器学习中近十几年来最成功,表现最好的算法

2、机器学习的一般框架

    训练集==提取特征向量==结合一定的算法==(分类器:决策树、,KNN)==得到结果

3、介绍

    3.1例子:

    介绍:二类线?那条线更好

3.2svm寻找区分的超平面(hyper plane),边界最大

总共可以有多少可能的超平面,?如何选取使得平面最大的超平面(max margin hyperplane)

超平面到一侧最近点的距离等于另外一侧最近点的距离,二侧的二个超平面平行。

3、线性可分(linear separable)和线性不可分(linear inseparable)

4、定义和公式

超平面的定义:

W*X+b=0

W={w1,w2,....wn}

 W: weight vectot,n是特征值的个数, X: 训练实例,b: bias

4.1假设为2维特征向量:X=(x1,x2)

5.2对于任何测试(要归类)代入公式,得出的符号是正还是负

测试代码:

from sklearnimport svm

x=[[2,0],[1,1],[2,3],[3,4],[3,5]]

y=[0,0,1,1,1]

clf=svm.SVC(kernel='linear')

clf.fit(x,y)

print (clf)

print (clf.support_vectors_)

print (clf.support_)

print (clf.n_support_)

print(clf.predict([[2,0]]))#测试


import numpyas np

import pylabas pl

#主要对Python进行画图的操作

from sklearnimport svm

#产生数据,随机数

np.random.seed(100)

X=np.r_[np.random.randn(20,2)-[2,2],np.random.randn(20,2)+[2,2]]

#产生20个点的2维的,均值和方差都为2的二维数组,可以使用一条直线分开

Y=[0]*20+[1]*20

#使用svm,产生模型

clf=svm.SVC(kernel='linear')

clf.fit(X,Y)

#得到超平面get the separating hyperplane

w=clf.coef_[0]#参数

a=-w[0]/w[1]#斜率

xx=np.linspace(-5,5)#xx的值

yy=a*xx-(clf.intercept_[0])/w[1]#画出斜线

#取出二个支持向量,求出二个向量的直线,最大化边界

b=clf.support_vectors_[0]

yy_down=a*xx+(b[1]-a*b[0])

b=clf.support_vectors_[-1]

yy_up=a*xx+(b[1]-a*b[0])

print ("w:",w)

print ("a:",a)

print ("support_vectors_",clf.support_vectors_)

print ("clf.coef_",clf.coef_)

pl.plot(xx,yy,'k-')

pl.plot(xx,yy_down,'k--')

pl.plot(xx,yy_up,'k--')

pl.scatter(clf.support_vectors_[:,0],clf.support_vectors_[:,-1],s=80,facecolors='none')

pl.scatter(X[:,0],X[:,-1],c=Y,cmap=pl.cm.Paired)#scatter显示出离散的点

pl.axis('tight')

pl.show()

相关文章

  • 机器学习小组第十周打卡

    学习目标 知识点描述:致敬真神:支持向量机 学习目标: SVM算法原理及数学推导 SVM算法中的核函数 SVM算法...

  • 11 SVM - SMO - 序列最小优化算法

    05 SVM - 支持向量机 - 概念、线性可分06 SVM - 线性可分模型算法和案例07 SVM - 软间隔模...

  • 必须掌握的算法

    逻辑回归 SVM XGBoost LDA FM FMM 推荐算法常用推荐算法

  • 支持向量机算法

    支持向量机(Support Vector Machine, SVM)是有监督分类算法。 一、SVM本质 (1)无数...

  • SVM算法

    svm是一种用来进行分类的算法,如果待分类数据是线性可分的,就可以求解线性可分支持向量机来进行分类;如果待分类数据...

  • SVM算法

    1、背景 1.1 最早是由Vladimir N. Vapnik 和 Alexey Ya. Chervonenkis...

  • SVM 算法

    1、参数解读 C 的作用类似于 1/λ,当 C 不是非常非常大的时候,它可以忽略掉一些异常点的影响,得到更好的决策...

  • SVM算法

    7.20:::::::硬间隔最大化(线性可分) 二分类问题 找到超平面 且是最优超平面(最大间距的超平面凸二次规...

  • SVM支持向量机

    一、SVM简述 SVM支持向量机(英文全称:support vector machine)是一个分类算法, 通过找...

  • 支持向量机/SVM(Support Vector Machine

    SVM,曾经是最为流行的机器学习算法,可以用于分类问题、回归问题及异常点检测问题。不仅如此,SVM的算法动机可以通...

网友评论

      本文标题:SVM算法

      本文链接:https://www.haomeiwen.com/subject/thhpdftx.html