支持向量机回归python_python 机器学习之支持向量机非线性回归SVR模型
本文介绍了python 支持向量机非线性回归SVR模型,废话不多说,具体如下:
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_regression():
'''
加载用于回归问题的数据集
'''
diabetes = datasets.load_diabetes() #使用 scikit-learn 自带的一个糖尿病病人的数据集
# 拆分成训练集和测试集,测试集大小为原始数据集大小的 1/4
return train_test_split(diabetes.data,diabetes.target,test_size=0.25,random_state=0)
#支持向量机非线性回归SVR模型
def test_SVR_linear(*data):
X_train,X_test,y_train,y_test=data
regr=svm.SVR(kernel='linear')
regr.fit(X_train,y_train)
print('Coefficients:%s, intercept %s'%(regr.coef_,regr.intercept_))
print('Score: %.2f' % regr.score(X_test, y_test))
# 生成用于回归问题的数据集
X_train,X_test,y_train,y_test=load_data_regression()
# 调用 test_LinearSVR
test_SVR_linear(X_train,X_test,y_train,y_test)
def test_SVR_poly(*data):
'''
测试 多项式核的 SVR 的预测性能随 degree、gamma、coef0 的影响.
'''
X_train,X_test,y_train,y_test=data
fig=plt.figure()
### 测试 degree ####
degrees=range(1,20)
train_scores=[]
test_scores=[]
for degree in degrees:
regr=svm.SVR(kernel='poly',degree=degree,coef0=1)
regr.fit(X_train,y_train)
train_scores.append(regr.score(X_train,y_train))
test_scores.append(regr.score(X_test, y_test))
ax=fig.add_subplot(1,3,1)
ax.plot(degrees,train_scores,label="Training score ",marker='+' )
ax.plot(degrees,test_scores,label= " Testing score ",marker='o' )
ax.set_title( "SVR_poly_degree r=1")
ax.set_xlabel("p")
ax.set_ylabel("score")
ax.set_ylim(-1,1.)
ax.legend(loc="best",framealpha=0.5)
### 测试 gamma,固定 degree为3, coef0 为 1 ####
gammas=range(1,40)
train_scores=[]
test_scores=[]
for gamma in gammas:
regr=svm.SVR(kernel='poly',gamma=gamma,degree=3,coef0=1)
regr.fit(X_train,y_train)
train_scores.append(regr.score(X_train,y_train))
test_scores.append(regr.score(X_test, y_test))
ax=fig.add_subplot(1,3,2)
ax.plot(gammas,train_scores,label="Training score ",marker='+' )
ax.plot(gammas,test_scores,label= " Testing score ",marker='o' )
ax.set_title( "SVR_poly_gamma r=1")
ax.set_xlabel(r"$\gamma$")
ax.set_ylabel("score")
ax.set_ylim(-1,1)
ax.legend(loc="best",framealpha=0.5)
### 测试 r,固定 gamma 为 20,degree为 3 ######
rs=range(0,20)
train_scores=[]
test_scores=[]
for r in rs:
regr=svm.SVR(kernel='poly',gamma=20,degree=3,coef0=r)
regr.fit(X_train,y_train)
train_scores.append(regr.score(X_train,y_train))
test_scores.append(regr.score(X_test, y_test))
ax=fig.add_subplot(1,3,3)
ax.plot(rs,train_scores,label="Training score ",marker='+' )
ax.plot(rs,test_scores,label= " Testing score ",marker='o' )
ax.set_title( "SVR_poly_r gamma=20 degree=3")
ax.set_xlabel(r"r")
ax.set_ylabel("score")
ax.set_ylim(-1,1.)
ax.legend(loc="best",framealpha=0.5)
plt.show()
# 调用 test_SVR_poly
test_SVR_poly(X_train,X_test,y_train,y_test)
def test_SVR_rbf(*data):
'''
测试 高斯核的 SVR 的预测性能随 gamma 参数的影响
'''
X_train,X_test,y_train,y_test=data
gammas=range(1,20)
train_scores=[]
test_scores=[]
for gamma in gammas:
regr=svm.SVR(kernel='rbf',gamma=gamma)
regr.fit(X_train,y_train)
train_scores.append(regr.score(X_train,y_train))
test_scores.append(regr.score(X_test, y_test))
fig=plt.figure()
ax=fig.add_subplot(1,1,1)
ax.plot(gammas,train_scores,label="Training score ",marker='+' )
ax.plot(gammas,test_scores,label= " Testing score ",marker='o' )
ax.set_title( "SVR_rbf")
ax.set_xlabel(r"$\gamma$")
ax.set_ylabel("score")
ax.set_ylim(-1,1)
ax.legend(loc="best",framealpha=0.5)
plt.show()
# 调用 test_SVR_rbf
test_SVR_rbf(X_train,X_test,y_train,y_test)
def test_SVR_sigmoid(*data):
'''
测试 sigmoid 核的 SVR 的预测性能随 gamma、coef0 的影响.
'''
X_train,X_test,y_train,y_test=data
fig=plt.figure()
### 测试 gammam,固定 coef0 为 0.01 ####
gammas=np.logspace(-1,3)
train_scores=[]
test_scores=[]
for gamma in gammas:
regr=svm.SVR(kernel='sigmoid',gamma=gamma,coef0=0.01)
regr.fit(X_train,y_train)
train_scores.append(regr.score(X_train,y_train))
test_scores.append(regr.score(X_test, y_test))
ax=fig.add_subplot(1,2,1)
ax.plot(gammas,train_scores,label="Training score ",marker='+' )
ax.plot(gammas,test_scores,label= " Testing score ",marker='o' )
ax.set_title( "SVR_sigmoid_gamma r=0.01")
ax.set_xscale("log")
ax.set_xlabel(r"$\gamma$")
ax.set_ylabel("score")
ax.set_ylim(-1,1)
ax.legend(loc="best",framealpha=0.5)
### 测试 r ,固定 gamma 为 10 ######
rs=np.linspace(0,5)
train_scores=[]
test_scores=[]
for r in rs:
regr=svm.SVR(kernel='sigmoid',coef0=r,gamma=10)
regr.fit(X_train,y_train)
train_scores.append(regr.score(X_train,y_train))
test_scores.append(regr.score(X_test, y_test))
ax=fig.add_subplot(1,2,2)
ax.plot(rs,train_scores,label="Training score ",marker='+' )
ax.plot(rs,test_scores,label= " Testing score ",marker='o' )
ax.set_title( "SVR_sigmoid_r gamma=10")
ax.set_xlabel(r"r")
ax.set_ylabel("score")
ax.set_ylim(-1,1)
ax.legend(loc="best",framealpha=0.5)
plt.show()
# 调用 test_SVR_sigmoid
test_SVR_sigmoid(X_train,X_test,y_train,y_test)
以上就是本文的全部内容,希望对大家的学习有所帮助,也希望大家多多支持我们。
时间: 2019-06-23
支持向量机回归python_python 机器学习之支持向量机非线性回归SVR模型相关推荐
- python支持向量机回归_机器学习实战-支持向量机原理、Python实现和可视化(分类)...
支持向量机(SVM)广泛应用于模式分类和非线性回归领域. SVM算法的原始形式由Vladimir N.Vapnik和Alexey Ya提出.自从那以后,SVM已经被巨大地改变以成功地用于许多现实世界问 ...
- python svr回归_python机器学习库scikit-learn:SVR的基本应用
scikit-learn是python的第三方机器学习库,里面集成了大量机器学习的常用方法.例如:贝叶斯,svm,knn等. scikit-learn的官网 : http://scikit-learn ...
- 支持向量机回归_机器学习系列17:支持向量机
机器学习系列17:支持向量机 支持向量机(Support vector machine)是一种强大的机器学习算法,和神经网络相比,它在学习复杂的非线性方程时,能够提供更清晰和更加强大的方式.为了学习支 ...
- 机器学习之支持向量机回归(机器学习技法)
核函数山脊回归 Represent Theorem 表达理论就是指如果一个模型是带有L2正则化的线性模型,那么它在最佳化的时候的权重参数值W*将能够用Z空间的资料的线性组合来表示.它的推论就是L2的正 ...
- 均值方差模型python_Python机器学习之“选择最优模型”
关键问题是:假如模型效果不好,应该如何改善?答案可能有以下几种.用更复杂 / 更灵活的模型. 用更简单 / 更确定的模型. 采集更多的训练样本. 为每个样本采集更多的特征. 问题的答案往往与直觉相悖. ...
- 机器学习训练建模、集成模型、模型评估等代码总结(2019.05.21更新)
这篇博客总结一些有关机器学习的模型代码与评价指标,力求一针见血,复制粘贴即可食用,hhhhhh,不定期更新 代码中使用的案例是pandas构造的dataframe型的数据,变量名为 dataframe ...
- 机器学习:SVR支持向量机回归
机器学习:SVR支持向量机回归 一直以来接触的都是支持向量去做分类,这里稍微谈一下SVR,就是用支持向量去做回归.SVR最回归在本质上类似于SVM,都有一个margin,只不过是这里的margin表示 ...
- python svr回归_机器学习入门之机器学习之路:python支持向量机回归SVR 预测波士顿地区房价...
本文主要向大家介绍了机器学习入门之机器学习之路:python支持向量机回归SVR 预测波士顿地区房价,通过具体的内容向大家展现,希望对大家学习机器学习入门有所帮助. 支持向量机的两种核函数模型进行预 ...
- Python实现ABC人工蜂群优化算法优化支持向量机回归模型(SVR算法)项目实战
说明:这是一个机器学习实战项目(附带数据+代码+文档+视频讲解),如需数据+代码+文档+视频讲解可以直接到文章最后获取. 1.项目背景 人工蜂群算法(Artificial Bee Colony, AB ...
最新文章
- scrapy-redis源码抛析
- Python/Anaconda-python2.x代码转为python3.x代码
- 基于业务和平台理解数字营销概念
- sql优化个人总结(全)
- php常见后缀绕过,文件包含漏洞(绕过姿势)
- gdb对应vc调试命令
- 如何优雅的使用迅雷(Mac)
- Unity3D动态加载FBX文件
- 通用软件无线电平台 USRP X310
- 原来姹紫嫣红开遍 -- 牡丹亭·游园惊梦
- 本体开发日记07-我与java分词组件的爱恨情仇
- Cell:基于33个遗传多样性水稻种质泛基因组分析揭示“隐藏”的基因组变异
- 用matlab做随机实验1
- PowerQuery操作分类3
- C语言控制流编程试题,可编程序控制系统设计师(中级)职业认证理论考试试题(含答案).doc...
- 再见了 HDFS!这个资源调度框架已成气候!
- 北大天网搜索引擎TSE分析及完全注释[6]倒排索引的建立的程序分析(2)
- Unity3D入门第一天:初识Unity
- 服务器远程桌面 蓝屏,远程桌面连接windows server 2003蓝屏
- bootstrap实现pc屏幕五等分
热门文章
- 算法导论:dfs深度优先搜索算法及基于dfs的拓扑排序以及宽度优先搜索算法bfs
- 【 Linux 】图形化界面打开指定目录
- 在C语言中rand的用法,c语言中rand的用法
- [OpenCV实战]52 在OpenCV中使用颜色直方图
- [零刻]EQ12迷你主机设置来电开机自启教程
- 设为首页加入收藏兼容360/火狐/谷歌/IE/搜狗/猎狐/Safari/等主流浏览器的代码
- mysql读取工具下载_百度云文件数据库读取工具
- BCELoss和BCEWithLogitsLoss的区别
- 雪 python_Python实现下雪场景
- linux主机宕机排查问题方法