本文介绍了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模型相关推荐

  1. python支持向量机回归_机器学习实战-支持向量机原理、Python实现和可视化(分类)...

    支持向量机(SVM)广泛应用于模式分类和非线性回归领域. SVM算法的原始形式由Vladimir N.Vapnik和Alexey Ya提出.自从那以后,SVM已经被巨大地改变以成功地用于许多现实世界问 ...

  2. python svr回归_python机器学习库scikit-learn:SVR的基本应用

    scikit-learn是python的第三方机器学习库,里面集成了大量机器学习的常用方法.例如:贝叶斯,svm,knn等. scikit-learn的官网 : http://scikit-learn ...

  3. 支持向量机回归_机器学习系列17:支持向量机

    机器学习系列17:支持向量机 支持向量机(Support vector machine)是一种强大的机器学习算法,和神经网络相比,它在学习复杂的非线性方程时,能够提供更清晰和更加强大的方式.为了学习支 ...

  4. 机器学习之支持向量机回归(机器学习技法)

    核函数山脊回归 Represent Theorem 表达理论就是指如果一个模型是带有L2正则化的线性模型,那么它在最佳化的时候的权重参数值W*将能够用Z空间的资料的线性组合来表示.它的推论就是L2的正 ...

  5. 均值方差模型python_Python机器学习之“选择最优模型”

    关键问题是:假如模型效果不好,应该如何改善?答案可能有以下几种.用更复杂 / 更灵活的模型. 用更简单 / 更确定的模型. 采集更多的训练样本. 为每个样本采集更多的特征. 问题的答案往往与直觉相悖. ...

  6. 机器学习训练建模、集成模型、模型评估等代码总结(2019.05.21更新)

    这篇博客总结一些有关机器学习的模型代码与评价指标,力求一针见血,复制粘贴即可食用,hhhhhh,不定期更新 代码中使用的案例是pandas构造的dataframe型的数据,变量名为 dataframe ...

  7. 机器学习:SVR支持向量机回归

    机器学习:SVR支持向量机回归 一直以来接触的都是支持向量去做分类,这里稍微谈一下SVR,就是用支持向量去做回归.SVR最回归在本质上类似于SVM,都有一个margin,只不过是这里的margin表示 ...

  8. python svr回归_机器学习入门之机器学习之路:python支持向量机回归SVR 预测波士顿地区房价...

    本文主要向大家介绍了机器学习入门之机器学习之路:python支持向量机回归SVR  预测波士顿地区房价,通过具体的内容向大家展现,希望对大家学习机器学习入门有所帮助. 支持向量机的两种核函数模型进行预 ...

  9. Python实现ABC人工蜂群优化算法优化支持向量机回归模型(SVR算法)项目实战

    说明:这是一个机器学习实战项目(附带数据+代码+文档+视频讲解),如需数据+代码+文档+视频讲解可以直接到文章最后获取. 1.项目背景 人工蜂群算法(Artificial Bee Colony, AB ...

最新文章

  1. scrapy-redis源码抛析
  2. Python/Anaconda-python2.x代码转为python3.x代码
  3. 基于业务和平台理解数字营销概念
  4. sql优化个人总结(全)
  5. php常见后缀绕过,文件包含漏洞(绕过姿势)
  6. gdb对应vc调试命令
  7. 如何优雅的使用迅雷(Mac)
  8. Unity3D动态加载FBX文件
  9. 通用软件无线电平台 USRP X310
  10. 原来姹紫嫣红开遍 -- 牡丹亭·游园惊梦
  11. 本体开发日记07-我与java分词组件的爱恨情仇
  12. Cell:基于33个遗传多样性水稻种质泛基因组分析揭示“隐藏”的基因组变异
  13. 用matlab做随机实验1
  14. PowerQuery操作分类3
  15. C语言控制流编程试题,可编程序控制系统设计师(中级)职业认证理论考试试题(含答案).doc...
  16. 再见了 HDFS!这个资源调度框架已成气候!
  17. 北大天网搜索引擎TSE分析及完全注释[6]倒排索引的建立的程序分析(2)
  18. Unity3D入门第一天:初识Unity
  19. 服务器远程桌面 蓝屏,远程桌面连接windows server 2003蓝屏
  20. bootstrap实现pc屏幕五等分

热门文章

  1. 算法导论:dfs深度优先搜索算法及基于dfs的拓扑排序以及宽度优先搜索算法bfs
  2. 【 Linux 】图形化界面打开指定目录
  3. 在C语言中rand的用法,c语言中rand的用法
  4. [OpenCV实战]52 在OpenCV中使用颜色直方图
  5. [零刻]EQ12迷你主机设置来电开机自启教程
  6. 设为首页加入收藏兼容360/火狐/谷歌/IE/搜狗/猎狐/Safari/等主流浏览器的代码
  7. mysql读取工具下载_百度云文件数据库读取工具
  8. BCELoss和BCEWithLogitsLoss的区别
  9. 雪 python_Python实现下雪场景
  10. linux主机宕机排查问题方法