机器学习训练营——机器学习爱好者的自由交流空间(入群联系qq:2279055353)

这是一个简单的一维回归的例子,以两种不同的方式计算:

  • 一个是无噪音的情况

  • 另一个是噪音已知的情况

在这两种情况下的核参数都由最大似然法估计得到。

实例代码

import numpy as np
from matplotlib import pyplot as pltfrom sklearn.gaussian_process import GaussianProcessRegressor
from sklearn.gaussian_process.kernels import RBF, ConstantKernel as Cnp.random.seed(1)def f(x):"""The function to predict."""return x * np.sin(x)# ----------------------------------------------------------------------
#  First the noiseless case
X = np.atleast_2d([1., 3., 5., 6., 7., 8.]).T# Observations
y = f(X).ravel()# Mesh the input space for evaluations of the real function, the prediction and
# its MSE
x = np.atleast_2d(np.linspace(0, 10, 1000)).T# Instantiate a Gaussian Process model
kernel = C(1.0, (1e-3, 1e3)) * RBF(10, (1e-2, 1e2))
gp = GaussianProcessRegressor(kernel=kernel, n_restarts_optimizer=9)# Fit to data using Maximum Likelihood Estimation of the parameters
gp.fit(X, y)# Make the prediction on the meshed x-axis (ask for MSE as well)
y_pred, sigma = gp.predict(x, return_std=True)# Plot the function, the prediction and the 95% confidence interval based on
# the MSE
plt.figure()
plt.plot(x, f(x), 'r:', label=u'$f(x) = x\,\sin(x)$')
plt.plot(X, y, 'r.', markersize=10, label=u'Observations')
plt.plot(x, y_pred, 'b-', label=u'Prediction')
plt.fill(np.concatenate([x, x[::-1]]),np.concatenate([y_pred - 1.9600 * sigma,(y_pred + 1.9600 * sigma)[::-1]]),alpha=.5, fc='b', ec='None', label='95% confidence interval')
plt.xlabel('$x$')
plt.ylabel('$f(x)$')
plt.ylim(-10, 20)
plt.legend(loc='upper left')# ----------------------------------------------------------------------
# now the noisy case
X = np.linspace(0.1, 9.9, 20)
X = np.atleast_2d(X).T# Observations and noise
y = f(X).ravel()
dy = 0.5 + 1.0 * np.random.random(y.shape)
noise = np.random.normal(0, dy)
y += noise# Instantiate a Gaussian Process model
gp = GaussianProcessRegressor(kernel=kernel, alpha=dy ** 2,n_restarts_optimizer=10)# Fit to data using Maximum Likelihood Estimation of the parameters
gp.fit(X, y)# Make the prediction on the meshed x-axis (ask for MSE as well)
y_pred, sigma = gp.predict(x, return_std=True)# Plot the function, the prediction and the 95% confidence interval based on
# the MSE
plt.figure()
plt.plot(x, f(x), 'r:', label=u'$f(x) = x\,\sin(x)$')
plt.errorbar(X.ravel(), y, dy, fmt='r.', markersize=10, label=u'Observations')
plt.plot(x, y_pred, 'b-', label=u'Prediction')
plt.fill(np.concatenate([x, x[::-1]]),np.concatenate([y_pred - 1.9600 * sigma,(y_pred + 1.9600 * sigma)[::-1]]),alpha=.5, fc='b', ec='None', label='95% confidence interval')
plt.xlabel('$x$')
plt.ylabel('$f(x)$')
plt.ylim(-10, 20)
plt.legend(loc='upper left')plt.show()

精彩内容,请关注微信公众号:统计学习与大数据

【Python实例第36讲】一个高斯过程回归的例子相关推荐

  1. python 高斯烟羽模型_GPR(高斯过程回归)详细推导

    GPR(高斯过程回归)详细推导 一.综述 GPR来源于线性模型,有两种方式可以推导出GPR,一种是weight space view,另外一种是function space view.两者考察方式假设 ...

  2. 高斯过程回归python_基于python的高斯过程回归训练集数据扩充

    我正在用scikit学习研究高斯过程回归问题.为了进行预测,我有这样的数据集,它包含传感器在三维坐标系中的10个不同位置:例如Sensor1 coords: [[ 30.1678 -173.569 7 ...

  3. 线形回归和梯度下降的Python实例。

    线形回归和梯度下降的Python实例. 内容模仿学习于:https://www.cnblogs.com/focusonepoint/p/6394339.html 本文只是做为一个自我梳理 线形回归的特 ...

  4. python现有两个磁盘文件a和b_有两个磁盘文件A和B,各存放一行字母,要求把这两个文件中的信息合并(按字母顺序排列), 输出到一个新文件C中Python实例...

    有两个磁盘文件A和B,各存放一行字母,要求把这两个文件中的信息合并(按字母顺序排列), 输出到一个新文件C中Python实例 题目:有两个磁盘文件A和B,各存放一行字母,要求把这两个文件中的信息合并( ...

  5. python实例属性与类属性_Python中的类属性和实例属性引发的一个坑-续

    上篇文章Python 中的类属性和实例属性,我们探讨了类属性和实例属性引发的一个小坑.总结了类属性和实例属性的区别如下:类属性可以被类和实例调用,实例属性只能被实例调用 类属性不会随着实例的调用而改变 ...

  6. python tkinter计算器实例_python -Tkinter 实现一个小计算器功能

    原博文 2017-03-25 22:08 − 文章来源:http://www.cnblogs.com/Skyyj/p/6618739.html 本代码是基于python 2.7的 如果是对于pytho ...

  7. python传递类的实例_使用Python将变量从一个类实例传递到另一个类实例?

    我在将一个类实例中定义的变量传递到另一个类实例时遇到问题.我对使用类比较陌生,但据我所知,变量可以通过简单地定义为类实例的一部分(例如在下面的示例中)从一个实例传递到另一个实例.虽然我以前使用过这个模 ...

  8. python框架实例,从零构建一个简单的 Python 框架

    为什么你想要自己构建一个 web 框架呢?我想,原因有以下几点: 你有一个新奇的想法,觉得将会取代其他的框架 你想要获得一些名气 你遇到的问题很独特,以至于现有的框架不太合适 你对 web 框架是如何 ...

  9. python语言例子_第一个Python实例

    1. 第一个Python实例 Python随着时代的进步,变得越来越受欢迎,当然也有它受人喜欢的道理.下面我们首先通过对比来了解一下. 不知道大家有没有学过C或C++,在C语言中输出一个简单的'Hel ...

  10. python高斯噪声怎么去除_高斯过程和高斯过程回归

    本文未经允许禁止转载,谢谢合作. 本文我们介绍高斯过程及其在机器学习中应用的一个例子--高斯过程回归. 高斯过程在语音合成中有广泛的应用,我计划在之后的文章中介绍一些应用,但本节我们重点讨论相关的基础 ...

最新文章

  1. 重磅推荐:中国人工智能趋势报告(完整版)
  2. 移动IM开发指南3:如何优化登录模块
  3. 华人科学家在加拿大被区别对待,曾研究出埃博拉病毒治疗方法,Science刊文:同行震惊...
  4. 在Ubuntu服务器上使用python3+selenium模块
  5. 对话行癫:解密阿里云顶层设计和底层逻辑
  6. java客户端程序用什么自动化测试_五大Java自动化测试框架
  7. 数据科学 IPython 笔记本 9.7 数组上的计算:广播
  8. lazyload 加载
  9. 编写优质嵌入式C程序
  10. 【史上最详细】信贷中逾期天数统计说明
  11. 超低插损的新材料射频开关(PCM RF switch)的新进展
  12. CodeForces 140C New Year Snowmen (贪心+优先队列)
  13. java万能爬虫爬取拉勾网
  14. [附源码]java毕业设计在线学习网站的设计与实现
  15. B站台湾大学郭彦甫|MATLAB 学习笔记|08 图像处理I Image Processing
  16. 图片搜索引擎 - WebCrawler
  17. 职业竞技选手金咕咕修理手机,天价换屏幕
  18. 100+文档格式预览,私有化部署,10分钟搭建专属IM
  19. jsp035ssm公文流转管理系统(源码)
  20. python处理nc数据_利用python如何处理nc数据详解

热门文章

  1. 自制有保鲜功能的金字塔
  2. IGMP SSM Mapping原理与实验
  3. KVM详解(一)——KVM基础知识
  4. IS-IS快速收敛调优(二)——链路故障检测、LSP智能定时器和SPF智能定时器
  5. 比特币 的 正统 ——BCH
  6. IT人的学习方法论-5 也谈IT的创新
  7. Android支付宝刷步数,支付宝运动怎么刷步数? 支付宝如何快速刷步数?
  8. 12.MongoDB之固定集合(Capped Collections)
  9. history指令显示日期时间
  10. 信号量——内核信号量、POSIX信号量、system V信号量