支持向量机SVM:SVC

 1 import numpy as np
 2 import matplotlib.pyplot as plt
 3 from sklearn import svm
 4 from sklearn.datasets import make_blobs
 5 X,y=make_blobs(n_samples=50,centers=2,random_state=6)
 6 clf=svm.SVC(kernel=‘linear‘,C=1000)
 7 #clf=svm.SVC(kernel=‘rbf‘,C=1000)
 8 clf.fit(X,y)
 9 print("the score of this model:{}".format(clf.score(X,y)))
10 print(clf.predict(X))
11
12 plt.scatter(X[:,0],X[:,1],c=y,s=30,cmap=plt.cm.Paired)
13 ax=plt.gca()
14 xlim=ax.get_xlim()
15 ylim=ax.get_ylim()
16
17 xx=np.linspace(xlim[0],xlim[1],30)
18 yy=np.linspace(ylim[0],ylim[1],30)
19 YY,XX=np.meshgrid(yy,xx)
20 xy=np.vstack([XX.ravel(),YY.ravel()]).T
21 z=clf.decision_function(xy).reshape(XX.shape)
22
23 ax.contour(XX,YY,z,colors=‘k‘,levels=[-1,0,1],alpha=0.5,linestyles=[‘--‘,‘-‘,‘--‘])
24 ax.scatter(clf.support_vectors_[:,0],clf.support_vectors_[:,1],s=100,linewidths=1,facecolors=‘none‘)
25 plt.show()
 1 X,y=make_blobs(n_samples=50,centers=2,random_state=6)
 2 #clf=svm.SVC(kernel=‘linear‘,C=1000)
 3 clf=svm.SVC(kernel=‘rbf‘,C=1000)
 4 clf.fit(X,y)
 5 print("the score of this model:{}".format(clf.score(X,y)))
 6 print(clf.predict(X))
 7
 8 plt.scatter(X[:,0],X[:,1],c=y,s=30,cmap=plt.cm.Paired)
 9 ax=plt.gca()
10 xlim=ax.get_xlim()
11 ylim=ax.get_ylim()
12
13 xx=np.linspace(xlim[0],xlim[1],30)
14 yy=np.linspace(ylim[0],ylim[1],30)
15 YY,XX=np.meshgrid(yy,xx)
16 xy=np.vstack([XX.ravel(),YY.ravel()]).T
17 z=clf.decision_function(xy).reshape(XX.shape)
18
19 ax.contour(XX,YY,z,colors=‘k‘,levels=[-1,0,1],alpha=0.5,linestyles=[‘--‘,‘-‘,‘--‘])
20 ax.scatter(clf.support_vectors_[:,0],clf.support_vectors_[:,1],s=100,linewidths=1,facecolors=‘none‘)
21 plt.show()
 1 import numpy as np
 2 def make_meshgrid(x,y,h=.02):
 3     x_min = x.min() - 1
 4     x_max = x.max() + 1
 5     y_min = y.min() - 1
 6     y_max = y.max() + 1
 7     xx,yy=np.meshgrid(np.arange(x_min,x_max,h),
 8                       np.arange(y_min,y_max,h))
 9     return xx,yy
10
11 def plot_contours(ax,clf,xx,yy,**params):
12     z=clf.predict(np.c_[xx.ravel(),yy.ravel()])
13     z=z.reshape(xx.shape)
14     out=ax.contourf(xx,yy,z,**params)
15     return out
16
17 from sklearn.datasets import load_wine
18 wine=load_wine()
19 X=wine.data[:,:2]
20 y=wine.target
21 C=1.0
22
23 from sklearn import svm
24 import matplotlib.pyplot as plt
25 models=(svm.SVC(kernel=‘linear‘,C=C),
26         svm.LinearSVC(C=C,max_iter=10000),
27         svm.SVC(kernel=‘rbf‘,gamma=0.7,C=C),
28         svm.SVC(kernel=‘poly‘,degree=3,C=C)
29         )
30 models=(clf.fit(X,y) for clf in models)
31 titles=(‘SVC with linear kernal L1‘,
32         ‘LinearSVC(linear kernal) L2‘,
33         ‘SVC with RBF kernal‘,
34         ‘SVC with polynomial(degree=3) kernal‘
35         )
36 fig,sub=plt.subplots(2,2)
37 plt.subplots_adjust(wspace=0.4,hspace=0.4)
38 X0,X1=X[:,0],X[:,1]
39 xx,yy=make_meshgrid(X0,X1)
40 for clf,title,ax in zip(models,titles,sub.flatten()):
41     plot_contours(ax,clf,xx,yy,cmap=plt.cm.plasma,alpha=0.8)
42     ax.scatter(X0,X1,c=y,cmap=plt.cm.plasma,s=20,edgecolors=‘k‘)
43     ax.set_xlim(xx.min(),xx.max())
44     ax.set_ylim(yy.min(),yy.max())
45     ax.set_xlabel("Feature 0")
46     ax.set_ylabel("Feature 1")
47     ax.set_xticks(())
48     ax.set_yticks(())
49     ax.set_title(title)
50 plt.show()
 1 models=(svm.SVC(kernel=‘rbf‘,gamma=0.1,C=C),
 2         svm.SVC(kernel=‘rbf‘,gamma=1,C=C),
 3         svm.SVC(kernel=‘rbf‘,gamma=10,C=C),
 4         )
 5 models=(clf.fit(X,y) for clf in models)
 6 titles=(‘RBF-kernal SVC gamma=0.1‘,
 7         ‘RBF-kernal SVC gamma=1‘,
 8         ‘RBF-kernal SVC gamma=10‘
 9         )
10 fig,sub=plt.subplots(1,3,figsize=(15,3))
11
12 X0,X1=X[:,0],X[:,1]
13 xx,yy=make_meshgrid(X0,X1)
14 for clf,title,ax in zip(models,titles,sub.flatten()):
15     plot_contours(ax,clf,xx,yy,cmap=plt.cm.plasma,alpha=0.8)
16     ax.scatter(X0,X1,c=y,cmap=plt.cm.plasma,s=20,edgecolors=‘k‘)
17     ax.set_xlim(xx.min(),xx.max())
18     ax.set_ylim(yy.min(),yy.max())
19     ax.set_xlabel("Feature 0")
20     ax.set_ylabel("Feature 1")
21     ax.set_xticks(())
22     ax.set_yticks(())
23     ax.set_title(title)
24 plt.show()

原文地址:https://www.cnblogs.com/St-Lovaer/p/12294488.html

时间: 2024-11-04 16:07:54

支持向量机SVM:SVC的相关文章

sklearn集成支持向量机svm.SVC参数说明

经常用到sklearn中的SVC函数,这里把文档中的参数翻译了一些,以备不时之需. 本身这个函数也是基于libsvm实现的,所以在参数设置上有很多相似的地方.(PS: libsvm中的二次规划问题的解决算法是SMO).sklearn.svm.SVC(C=1.0, kernel='rbf', degree=3, gamma='auto', coef0=0.0, shrinking=True, probability=False, tol=0.001, cache_size=200, class_w

吴裕雄 python 机器学习——支持向量机SVM非线性分类SVC模型

import numpy as np import matplotlib.pyplot as plt from sklearn import datasets, linear_model,svm from sklearn.model_selection import train_test_split def load_data_classfication(): ''' 加载用于分类问题的数据集 ''' # 使用 scikit-learn 自带的 iris 数据集 iris=datasets.lo

支持向量机(SVM)笔记

SVM 1.概述 SVM全称Support_Vector_Machine,即支持向量机,是机器学习中的一种监督学习分类算法,一般用于二分类问题.对于线性可分的二分类问题,SVM可以直接求解,对于非线性可分问题,其也可以通过核函数将低维映射到高维空间从而转变为线性可分.对于多分类问题,SVM经过适当的转换,也能加以解决.相对于传统的分类算法如logistic回归,k近邻法,决策树,感知机,高斯判别分析法(GDA)等,SVM尤其独到的优势.相对于神经网络复杂的训练计算量,SVM在训练方面较少计算量的

支持向量机 SVM - Wenjing

概念 将向量映射到一个更高维的空间里,在这个空间里建立有一个最大间隔超平面.在分开数据的超平面的两边建有两个互相平行的超平面,分隔超平面使两个平行超平面的距离最大化.假定平行超平面间的距离或差距越大,分类器的总误差越小. 基本模型是定义在特征空间上的间隔最大的线性分类器 SVM的的学习算法就是求解凸二次规划的最优化算法. 数学理论 评估指标 ScikitLearn 中的线性回归用法 12345678910111213 from sklearn.model_selection import tra

基于支持向量机SVM的人脸识别

一.线性SVM 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)=>

支持向量机(SVM)(二)-- 拉格朗日对偶(Lagrange duality)

简介: 1.在之前我们把要寻找最优的分割超平面的问题转化为带有一系列不等式约束的优化问题.这个最优化问题被称作原问题.我们不会直接解它,而是把它转化为对偶问题进行解决. 2.为了使问题变得易于处理,我们的方法是把目标函数和约束全部融入一个新的函数,为了使问题变得易于处理,我们的方法是把目标函数和约束全部融入一个新的函数,即拉格朗日函数,再通过这个函数来寻找最优点.即拉格朗日函数,再通过这个函数来寻找最优点. 3.约束条件可以分成不等式约束条件和等式约束条件,只有等式约束条件的问题我们在高等数学课

支持向量机(SVM)(五)-- SMO算法详解

一.我们先回顾下SVM问题. A.线性可分问题 1.SVM基本原理: SVM使用一种非线性映射,把原训练            数据映射到较高的维.在新的维上,搜索最佳分离超平面,两个类的数据总可以被超平面分开. 2.问题的提出: 3.如何选取最优的划分直线f(x)呢? 4.求解:凸二次规划 建立拉格朗日函数: 求偏导数: B.线性不可分问题 1.核函数 如下图:横轴上端点a和b之间红色部分里的所有点定为正类,两边的黑色部分里的点定为负类. 设: g(x)转化为f(y)=<a,y> g(x)=

第八篇:支持向量机 (SVM)

前言 本文讲解如何使用R语言中e1071包中的SVM函数进行分类操作,并以一个关于鸢尾花分类的实例演示具体分类步骤. 分析总体流程 1. 载入并了解数据集:2. 对数据集进行训练并生成模型:3. 在此模型之上调用测试数据集进行分类测试:4. 查看分类结果:5. 进行各种参数的调试并重复2-4直至分类的结果让人满意为止. 参数调整策略 综合来说,主要有以下四个方面需要调整: 1. 选择合适的核函数:2. 调整误分点容忍度参数cost:3. 调整各核函数的参数:4. 调整各样本的权重. 其中,对于特

机器学习第7周-炼数成金-支持向量机SVM

支持向量机SVM 原创性(非组合)的具有明显直观几何意义的分类算法,具有较高的准确率源于Vapnik和Chervonenkis关于统计学习的早期工作(1971年),第一篇有关论文由Boser.Guyon.Vapnik发表在1992年(参考文档见韩家炜书9.10节)思想直观,但细节异常复杂,内容涉及凸分析算法,核函数,神经网络等高深的领域,几乎可以写成单独的大部头与著.大部分非与业人士会觉得难以理解.某名人评论:SVM是让应用数学家真正得到应用的一种算法 思路 简单情况,线性可分,把问题转化为一个