在好例子网,分享、交流、成长!
您当前所在位置:首页Python 开发实例Python语言基础 → python Support Vector Machine(SVM)

python Support Vector Machine(SVM)

Python语言基础

下载此实例
  • 开发语言:Python
  • 实例大小:2.53KB
  • 下载次数:16
  • 浏览次数:357
  • 发布时间:2019-12-27
  • 实例类别:Python语言基础
  • 发 布 人:byh123
  • 文件格式:.py
  • 所需积分:1
 相关标签: svm

实例介绍

【实例简介】

【实例截图】

from clipboard


from clipboard

【核心代码】

#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

实例下载地址

python Support Vector Machine(SVM)

不能下载?内容有错? 点击这里报错 + 投诉 + 提问

好例子网口号:伸出你的我的手 — 分享

网友评论

发表评论

(您的评论需要经过审核才能显示)

查看所有0条评论>>

小贴士

感谢您为本站写下的评论,您的评论对其它用户来说具有重要的参考价值,所以请认真填写。

  • 类似“顶”、“沙发”之类没有营养的文字,对勤劳贡献的楼主来说是令人沮丧的反馈信息。
  • 相信您也不想看到一排文字/表情墙,所以请不要反馈意义不大的重复字符,也请尽量不要纯表情的回复。
  • 提问之前请再仔细看一遍楼主的说明,或许是您遗漏了。
  • 请勿到处挖坑绊人、招贴广告。既占空间让人厌烦,又没人会搭理,于人于己都无利。

关于好例子网

本站旨在为广大IT学习爱好者提供一个非营利性互相学习交流分享平台。本站所有资源都可以被免费获取学习研究。本站资源来自网友分享,对搜索内容的合法性不具有预见性、识别性、控制性,仅供学习研究,请务必在下载后24小时内给予删除,不得用于其他任何用途,否则后果自负。基于互联网的特殊性,平台无法对用户传输的作品、信息、内容的权属或合法性、安全性、合规性、真实性、科学性、完整权、有效性等进行实质审查;无论平台是否已进行审查,用户均应自行承担因其传输的作品、信息、内容而可能或已经产生的侵权或权属纠纷等法律责任。本站所有资源不代表本站的观点或立场,基于网友分享,根据中国法律《信息网络传播权保护条例》第二十二与二十三条之规定,若资源存在侵权或相关问题请联系本站客服人员,点此联系我们。关于更多版权及免责申明参见 版权及免责申明

;
报警