实例介绍
【实例截图】
【核心代码】
#encoding=utf-8 import numpy as np import matplotlib.pyplot as plt from sklearn import svm from sklearn.datasets import make_blobs """ --------获取数据-------- 随机生成40个独立的点,一共有两类 X数据格式[[6.37734541 ,-10.61510727],[6.50072722 ,-3.82403586]...] Y数据格式[1 0 1 0 1 ...1 0 1] 0和1代表类别 """ X,y = make_blobs(n_samples=40,centers=2,random_state=6) #随机生成2类数据,一共含40个样本 """ print X print y """ """ --------训练SVM模型-------- kernel='linear' 核函数选择Linear核,主要用于线性可分的情形。参数少,速度快。 C=1000 惩罚参数,C越大,相当于惩罚松弛变量,希望松弛变量接近0,即对误分类的惩罚增大, 趋向于对训练集全分对的情况,这样对训练集测试时准确率很高,但泛化能力弱。C值小,对误分类的惩罚减小,允许容错, 将他们当成噪声点,泛化能力较强。 """ clf = svm.SVC(kernel='linear',C=1000) #SVC时SVM的一种Type,是用来做分类的 clf.fit(X,y) #喂给模型数据,进行训练 print("模型参数W:",clf.coef_ ) #模型参数W print("模型参数b:",clf.intercept_ ) #模型参数b print("支持向量为:",clf.support_vectors_ ) #输出支持向量 xpredict = [10,-10] xpredict = np.array(xpredict).reshape(1,-1) #sklearn 0.17版本之后需要这条语句,之前版本直接传入xpredict即可 print(xpredict,"预测为:",clf.predict(xpredict),"类别") xpredict = [10,-2] xpredict = np.array(xpredict).reshape(1,-1) print(xpredict,"预测为:",clf.predict(xpredict),"类别") """ --------可视化(作为了解)-------- """ plt.scatter(X[:,0],X[:,1],c=y,cmap=plt.cm.Paired) #X[:,0]就是取所有行的第0个数据, X[:,1] 就是取所有行的第1个数据。 #plot the decision function ax = plt.gca() xlim = ax.get_xlim() #获取X轴的范围 ylim = ax.get_ylim() #获取Y轴的范围 #create grid to evaluate model xx = np.linspace(xlim[0],xlim[1],30) # 返回30个均匀分布的样本,在[xlim[0],xlim[1]]范围内 yy = np.linspace(ylim[0],ylim[1],30) YY,XX = np.meshgrid(yy,xx) xy = np.vstack([XX.ravel(),YY.ravel()]).T Z = clf.decision_function(xy).reshape(XX.shape) #绘出支持向量的分割界和分割面(二维分割面为直线) ax.contour(XX,YY,Z,colors='k',levels=[-1,0,1],alpha=0.5,linestyles=['--','-','--']) #绘出支持向量,用红色表示 ax.scatter(clf.support_vectors_[:,0],clf.support_vectors_[:,1],linewidth=1,facecolors='red') plt.show()
标签: svm
小贴士
感谢您为本站写下的评论,您的评论对其它用户来说具有重要的参考价值,所以请认真填写。
- 类似“顶”、“沙发”之类没有营养的文字,对勤劳贡献的楼主来说是令人沮丧的反馈信息。
- 相信您也不想看到一排文字/表情墙,所以请不要反馈意义不大的重复字符,也请尽量不要纯表情的回复。
- 提问之前请再仔细看一遍楼主的说明,或许是您遗漏了。
- 请勿到处挖坑绊人、招贴广告。既占空间让人厌烦,又没人会搭理,于人于己都无利。
关于好例子网
本站旨在为广大IT学习爱好者提供一个非营利性互相学习交流分享平台。本站所有资源都可以被免费获取学习研究。本站资源来自网友分享,对搜索内容的合法性不具有预见性、识别性、控制性,仅供学习研究,请务必在下载后24小时内给予删除,不得用于其他任何用途,否则后果自负。基于互联网的特殊性,平台无法对用户传输的作品、信息、内容的权属或合法性、安全性、合规性、真实性、科学性、完整权、有效性等进行实质审查;无论平台是否已进行审查,用户均应自行承担因其传输的作品、信息、内容而可能或已经产生的侵权或权属纠纷等法律责任。本站所有资源不代表本站的观点或立场,基于网友分享,根据中国法律《信息网络传播权保护条例》第二十二与二十三条之规定,若资源存在侵权或相关问题请联系本站客服人员,点此联系我们。关于更多版权及免责申明参见 版权及免责申明
网友评论
我要评论