python机器学习库scikit-learn:SVR的基本应用


Posted in Python onJune 26, 2019

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

scikit-learn的官网 : http://scikit-learn.org/stable/index.html点击打开链接

SVR是支持向量回归(support vector regression)的英文缩写,是支持向量机(SVM)的重要的应用分支。

scikit-learn中提供了基于libsvm的SVR解决方案。

PS:libsvm是台湾大学林智仁教授等开发设计的一个简单、易于使用和快速有效的SVM模式识别与回归的软件包。

我们自己随机产生一些值,然后使用sin函数进行映射,使用SVR对数据进行拟合

from __future__ import division
import time
import numpy as np
from sklearn.svm import SVR
from sklearn.model_selection import GridSearchCV
from sklearn.model_selection import learning_curve
import matplotlib.pyplot as plt
 
rng = np.random.RandomState(0)
 
#############################################################################
# 生成随机数据
X = 5 * rng.rand(10000, 1)
y = np.sin(X).ravel()
 
# 在标签中对每50个结果标签添加噪声
 
y[::50] += 2 * (0.5 - rng.rand(int(X.shape[0]/50)))
 
X_plot = np.linspace(0, 5, 100000)[:, None]
 
#############################################################################
# 训练SVR模型
 
#训练规模
train_size = 100
#初始化SVR
svr = GridSearchCV(SVR(kernel='rbf', gamma=0.1), cv=5,
     param_grid={"C": [1e0, 1e1, 1e2, 1e3],
        "gamma": np.logspace(-2, 2, 5)})
#记录训练时间
t0 = time.time()
#训练
svr.fit(X[:train_size], y[:train_size])
svr_fit = time.time() - t0
 
t0 = time.time()
#测试
y_svr = svr.predict(X_plot)
svr_predict = time.time() - t0

然后我们对结果进行可视化处理

#############################################################################
# 对结果进行显示
plt.scatter(X[:100], y[:100], c='k', label='data', zorder=1)
plt.hold('on')
plt.plot(X_plot, y_svr, c='r',
   label='SVR (fit: %.3fs, predict: %.3fs)' % (svr_fit, svr_predict))
 
plt.xlabel('data')
plt.ylabel('target')
plt.title('SVR versus Kernel Ridge')
plt.legend()
 
plt.figure()

python机器学习库scikit-learn:SVR的基本应用

##############################################################################
# 对训练和测试的过程耗时进行可视化
X = 5 * rng.rand(1000000, 1)
y = np.sin(X).ravel()
y[::50] += 2 * (0.5 - rng.rand(int(X.shape[0]/50)))
sizes = np.logspace(1, 4, 7)
for name, estimator in {
      "SVR": SVR(kernel='rbf', C=1e1, gamma=10)}.items():
 train_time = []
 test_time = []
 for train_test_size in sizes:
  t0 = time.time()
  estimator.fit(X[:int(train_test_size)], y[:int(train_test_size)])
  train_time.append(time.time() - t0)
 
  t0 = time.time()
  estimator.predict(X_plot[:1000])
  test_time.append(time.time() - t0)
 
 plt.plot(sizes, train_time, 'o-', color="b" if name == "SVR" else "g",
    label="%s (train)" % name)
 plt.plot(sizes, test_time, 'o--', color="r" if name == "SVR" else "g",
    label="%s (test)" % name)
 
plt.xscale("log")
plt.yscale("log")
plt.xlabel("Train size")
plt.ylabel("Time (seconds)")
plt.title('Execution Time')
plt.legend(loc="best")

python机器学习库scikit-learn:SVR的基本应用

################################################################################
# 对学习过程进行可视化
plt.figure()
 
svr = SVR(kernel='rbf', C=1e1, gamma=0.1)
train_sizes, train_scores_svr, test_scores_svr = \
 learning_curve(svr, X[:100], y[:100], train_sizes=np.linspace(0.1, 1, 10),
     scoring="neg_mean_squared_error", cv=10)
 
plt.plot(train_sizes, -test_scores_svr.mean(1), 'o-', color="r",
   label="SVR")
 
plt.xlabel("Train size")
plt.ylabel("Mean Squared Error")
plt.title('Learning curves')
plt.legend(loc="best")
 
plt.show()

python机器学习库scikit-learn:SVR的基本应用

看见了熟悉的LOSS下降图,我仿佛又回到了学生时代。。

以上就是本文的全部内容,希望对大家的学习有所帮助,也希望大家多多支持三水点靠木。

Python 相关文章推荐
python实现根据图标提取分类应用程序实例
Sep 28 Python
Python json模块使用实例
Apr 11 Python
深入浅析ImageMagick命令执行漏洞
Oct 11 Python
根据DataFrame某一列的值来选择具体的某一行方法
Jul 03 Python
Python实战之制作天气查询软件
May 14 Python
Python2.7版os.path.isdir中文路径返回false的解决方法
Jun 21 Python
使用django实现一个代码发布系统
Jul 18 Python
Python 图像对比度增强的几种方法(小结)
Sep 25 Python
执行Django数据迁移时报 1091错误及解决方法
Oct 14 Python
Django将默认的SQLite更换为MySQL的实现
Nov 18 Python
pycharm远程连接服务器并配置python interpreter的方法
Dec 23 Python
Python字节单位转换(将字节转换为K M G T)
Mar 02 Python
Python Numpy 实现交换两行和两列的方法
Jun 26 #Python
python 字典操作提取key,value的方法
Jun 26 #Python
通过PYTHON来实现图像分割详解
Jun 26 #Python
Flask模板引擎之Jinja2语法介绍
Jun 26 #Python
如何使用Python实现自动化水军评论
Jun 26 #Python
详解用pyecharts Geo实现动态数据热力图城市找不到问题解决
Jun 26 #Python
Python 数据可视化pyecharts的使用详解
Jun 26 #Python
You might like
PHP树的代码,可以嵌套任意层
2006/10/09 PHP
我的论坛源代码(七)
2006/10/09 PHP
php flv视频时间获取函数
2010/06/29 PHP
php实现单链表的实例代码
2013/03/22 PHP
Yii2框架RESTful API 格式化响应,授权认证和速率限制三部分详解
2016/11/10 PHP
PHP实现断点续传乱序合并文件的方法
2018/09/06 PHP
详解PHP多个进程配合redis的有序集合实现大文件去重
2019/03/06 PHP
从sohu弄下来的flash中展示图片的代码
2007/04/27 Javascript
NodeJS与Mysql的交互示例代码
2013/08/18 NodeJs
用jQuery实现的智能隐藏、滑动效果的返回顶部代码
2014/03/18 Javascript
jQuery使用之标记元素属性用法实例
2015/01/19 Javascript
jQuery实现输入框下拉列表树插件特效代码分享
2015/08/27 Javascript
快速掌握WordPress中加载JavaScript脚本的方法
2015/12/17 Javascript
JavaScript基础知识点归纳(推荐)
2016/07/09 Javascript
微信小程序 摇一摇抽奖简单实例实现代码
2017/01/09 Javascript
Extjs gridpanel 中的checkbox(复选框)根据某行的条件不能选中的解决方法
2017/02/17 Javascript
详解如何提高 webpack 构建 Vue 项目的速度
2017/07/03 Javascript
jQuery实现的点击显示隐藏下拉菜单功能完整示例
2019/05/17 jQuery
小程序点击图片实现png转jpg
2019/10/22 Javascript
Python中实现从目录中过滤出指定文件类型的文件
2015/02/02 Python
Python中datetime模块参考手册
2017/01/13 Python
浅析python实现scrapy定时执行爬虫
2018/03/04 Python
利用python循环创建多个文件的方法
2018/10/25 Python
让你Python到很爽的加速递归函数的装饰器
2019/05/26 Python
django基础学习之send_mail功能
2019/08/07 Python
Tensorflow的常用矩阵生成方式
2020/01/04 Python
Tensorflow 实现释放内存
2020/02/03 Python
python使用pyecharts库画地图数据可视化的实现
2020/03/25 Python
python interpolate插值实例
2020/07/06 Python
css3实现信纸/同学录效果的示例代码
2018/12/11 HTML / CSS
webView加载html图片遇到的问题解决
2019/10/08 HTML / CSS
高级技校毕业生自荐信
2013/11/18 职场文书
办公自动化专业大学生职业规划书
2014/03/06 职场文书
教师作风整改措施思想汇报
2014/10/12 职场文书
苹果发布了MagSafe固件更新,可以不外接电源实现最高7.5W充电
2022/04/21 数码科技
Win11控制面板快捷键是什么?Win11打开控制面板的方法汇总
2022/07/07 数码科技