版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
第Python机器学习应用之支持向量机的分类预测篇目录1、Question2、Answer!SVM3、软间隔4、超平面支持向量机常用于数据分类,也可以用于数据的回归预测
1、Question
我们经常会遇到这样的问题,给你一些属于两个类别的数据(如子图1),需要一个线性分类器将这些数据分开,有很多分法(如子图2),现在有一个问题,两个分类器,哪一个更好?为了判断好坏,我们需要引入一个准则:好的分类器不仅仅能够很好的分开已有的数据集,还能对为知的数据进行两个划分,假设现在有一个属于红色数据点的新数据(如子图3中的绿三角),可以看到此时黑色的线会把这个新的数据集分错,而蓝色的线不会。**那么如何评判两条线的健壮性?**此时,引入一个重要的概念最大间隔(刻画着当前分类器与数据集的边界)(如子图4中的阴影部分)可以看到蓝色的线最大的间隔大于黑色的线,所以选择蓝色的线作为我们的分类器。(如子图5)此时的分类器是最优分类器吗?或者说,有没有更好的分类器具有更大的间隔?有的(如子图6)为了找到最优分类器,引入SVM
2、Answer!SVM
importnumpyasnp
importmatplotlib.pyplotasplt
fromsklearn.datasetsimportmake_blobs
X,y=make_blobs(n_samples=60,centers=2,random_state=0,cluster_std=0.4)
x_fit=np.linspace(0,3)
#使用SVM
fromsklearn.svmimportSVC
#SVM函数
clf=SVC(kernel='linear')
clf.fit(X,y)
#最佳函数
w=clf.coef_[0]
a=-w[0]/w[1]
y_p=a*x_fit-(ercept_[0])/w[1]
#最大边距下边界
b_down=clf.support_vectors_[0]
y_down=a*x_fit+b_down[1]-a*b_down[0]
#最大边距上届
b_up=clf.support_vectors_[-1]
y_up=a*x_fit+b_up[1]-a*b_up[0]
#画散点图
X,y=make_blobs(n_samples=60,centers=2,random_state=0,cluster_std=0.4)
plt.scatter(X[:,0],X[:,1],c=y,s=50,cmap=plt.cm.Paired)
#画函数
plt.plot(x_fit,y_p,'-c')
#画边距
plt.fill_between(x_fit,y_down,y_up,edgecolor='none',color='#AAAAAA',alpha=0.4)
#画支持向量
plt.scatter(clf.support_vectors_[:,0],clf.support_vectors_[:,1],edgecolor='b',
s=80,facecolors='none')
运行结果
其中带边线的是距离当前分类器最近的点,将这些点称之为支持向量,支持向量机为我们在众多可能的分类器之间进行选择的原则,从而确保对为知数据集具有更高的泛化性
3、软间隔
在很多时候,我们拿到是数据不想上述那样分明(如下图)这种情况并不容易找到上述那样的最大间隔。于是就有了软间隔,相对于硬间隔,我们允许个别数据出现在间隔带中。我们知道,如果没有一个原则进行约束,满足软间隔的分类器也会出现很多条。所以需要对分错的数据进行惩罚,SVM函数,有一个参数C就是惩罚参数。惩罚参数越小,容忍性就越大
此处C设置为1
#%%软间隔
X,y=make_blobs(n_samples=60,centers=2,random_state=0,cluster_std=0.9)
x_fit=np.linspace(-2,4)
#惩罚参数:C=1,
clf=SVC(C=1,kernel='linear')
clf.fit(X,y)
#最佳函数
w=clf.coef_[0]
a=-w[0]/w[1]
y_great=a*x_fit-(ercept_[0])/w[1]
#最大边距下边界
b_down=clf.support_vectors_[0]
y_down=a*x_fit+b_down[1]-a*b_down[0]
#最大边距上边界
b_up=clf.support_vectors_[-1]
y_up=a*x_fit+b_up[1]-a*b_up[0]
#画散点图
plt.scatter(X[:,0],X[:,1],c=y,s=50,cmap=plt.cm.Paired)
#画函数
plt.plot(x_fit,y_great,'-c')
#画边距
plt.fill_between(x_fit,y_down,y_up,edgecolor='none',color='#AAAAAA',alpha=0.4)
#画支持向量
plt.scatter(clf.support_vectors_[:,0],clf.support_vectors_[:,1],edgecolor='b',
s=80,facecolors='none')
运行结果
当将C设置为0.2时,SVM会更有包容性,从而兼容更多的错分样本,结果如下:
4、超平面
有时,我们得到的数据是这样的(如下图),这时,可以将二维空间(低维)的数据映射到三维空间(高维)中,此时,可以通过一个超平面对数据进行划分,所以,映射的目的在于使用SVM在高维空间找到超平面的能力
#%%超平面
fromsklearn.datasetsimportmake_circles
#画散点图
X,y=make_circles(100,factor=.1,noise=.1,random_state=2025)
plt.scatter(X[:,0],X[:,1],c=y,s=50,cmap=plt.cm.Paired)
#数据映射
r=np.exp(-(X[:,0]**2+X[:,1]**2))
ax=plt.subplot(projection='3d')
ax.scatter3D(X[:,0],X[:,1],r,c=y,s=50,cmap=plt.cm.Paired)
ax.set_xlabel('x')
ax.set_ylabel('y')
ax.set_zlabel('z')
x_1,y_1=np.meshgrid(np.linspace(-1,1),np.linspace(-1,1))
z=0.01*x_1+0.01*y_1+0.5
ax.plot_surface(x_1,y_1,z,alpha=0.3)
运行结果
使用高斯核函数实现这种情形的分类
#%%使用高斯核函数实现这种分类:kernel=‘rbf'
X,y=make_circles(100,factor=.1,noise=.1,random_state=2025)
plt.scatter(X[:,0],X[:,1],c=y,s=50,cmap=plt.cm.Paired)
clf=SVC(kernel='rbf')
clf.fit(X,y)
ax=plt.gca()
x=np.linspace(-1,1)
y=np.linspace(-1,1)
x_1,y_1=np.meshgrid(x,y)
P=np.zeros_like(x_1)
fori,xiinenumerate(x):
forj,yjinenumerate(y):
P[i,j]=clf.decision_function(np.array([[xi,yj]]))
ax.contour(x_1,y_1,P,colors='k',le
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 2025-2030智慧消防行业供需发展分析及城市安全管理规划分析研究报告
- 2025-2030智慧法庭建设行业市场需求现状及竞争格局规划分析报告
- 2025-2030智慧气象行业技术革新与市场需求研究分析报告
- 2025-2030智慧校园行业风险投资发展分析及投资融资策略研究报告
- 2025-2030智慧旅游行业政策环境现状分析及商业模式创新研究
- 2026安徽合肥热电集团春季招聘25人备考题库含答案详解(夺分金卷)
- 机械攻击对存储设备影响分析-洞察与解读
- 2025-2030智慧建筑解决方案供需分析投资评估发展规划报告
- 2026陕西汉中市精神病医院招聘5人备考题库及参考答案详解ab卷
- 2025-2030智慧家居系统应用场景分析及用户需求研究报告
- 【《某煤矿深部煤巷二次支护设计分析》14000字(论文)】
- 2025年中级消防设施操作员理论知识考试真题(后附专业答案和解析)
- 学前教育原理(第2版) 课件 第一章 学前教育导论
- 新生儿电解质紊乱与护理
- 保安公司现场安保信息管理制度
- 生物分离工程教学课件
- (高清版)DG∕TJ 08-2312-2019 城市工程测量标准
- 人工智能项目产业投资基金设立流程
- GB/T 3405-2025石油苯
- DB1331T 063-2023雄安新区地埋管地源热泵系统工程技术规程
- 标准图集-L22G310-钢筋混凝土结构构造
评论
0/150
提交评论