本题纯粹用作练习,无任何其他意义。

采用高斯基函数作为线性回归模型,用sklearn.gaussian_process.GaussianProcessRegressor可以进行回归,顺便学习画3D图。

代码如下:

# -*- coding: utf-8 -*-
import numpy as np
import matplotlib.pyplot as plt
from sklearn.gaussian_process import GaussianProcessRegressor
from sklearn.gaussian_process.kernels import RBF, ConstantKernel as C
from mpl_toolkits.mplot3d import Axes3Dtest = np.array([[2004,98.31]])
data = np.array([[2001,100.83,410],[2005,90.9,500],[2007,130.03,550],[2004,78.88,410],[2006,74.22,460],[2005,90.4,497],[1983,64.59,370],[2000,164.06,610],[2003,147.5,560],[2003,58.51,408],[1999,95.11,565],[2000,85.57,430],[1995,66.44,378],[2003,94.27,498],[2007,125.1,760],[2006,111.2,730],[2008,88.99,430],[2005,92.13,506],[2008,101.35,405],[2000,158.9,615]])
kernel = C(0.1, (0.001,0.1))*RBF(0.5,(1e-4,10))
reg = GaussianProcessRegressor(kernel=kernel,n_restarts_optimizer=10,alpha=0.1)
reg.fit(data[:,:-1], data[:,-1])
x_min, x_max = data[:, 0].min() - 1, data[:, 0].max() + 1
y_min, y_max = data[:, 1].min() - 1, data[:, 1].max() + 1
xset, yset = np.meshgrid(np.arange(x_min, x_max, 0.5), np.arange(y_min, y_max, 0.5))
output,err = reg.predict(np.c_[xset.ravel(), yset.ravel()],return_std=True)
output,err = output.reshape(xset.shape),err.reshape(xset.shape)
sigma = np.sum(reg.predict(data[:,:-1], return_std=True)[1])
up,down = output*(1+1.96*err), output*(1-1.96*err)fig = plt.figure(figsize=(10.5,5))
ax1 = fig.add_subplot(121, projection='3d')
surf = ax1.plot_wireframe(xset,yset,output, rstride=10, cstride=2, antialiased=True)
surf_u = ax1.plot_wireframe(xset,yset,up,colors='lightgreen',linewidths=1,rstride=10, cstride=2, antialiased=True)
surf_d = ax1.plot_wireframe(xset,yset,down,colors='lightgreen',linewidths=1,rstride=10, cstride=2, antialiased=True)
ax1.scatter(data[:,0],data[:,1],data[:,2],c='red')
ax1.set_title('House Price at (2004, 98.31): {0:.2f}$*10^4$ RMB'.format(reg.predict(test)[0]))
ax1.set_xlabel('Year')
ax1.set_ylabel('Area, $m^2$')
ax1.set_zlabel('Price,$10^4$ RMB')ax = fig.add_subplot(122)
s = ax.scatter(data[:,0],data[:,1],c=data[:,2],cmap=plt.cm.viridis)
# ax.contour(xset,yset,output)
im = ax.imshow(output, interpolation='bilinear', origin='lower',extent=(x_min, x_max-1, y_min, y_max), aspect='auto')
plt.colorbar(s,ax=ax)
ax.set_title('House Price,$10^4$ RMB')
ax.hlines(test[0,1],x_min, x_max-1)
ax.vlines(test[0,0],y_min, y_max)
ax.text(test[0,0],test[0,1],'{0:.2f}$*10^4$ RMB'.format(reg.predict(test)[0]),ha='left',va='bottom',color='k',size=11,rotation=90)
ax.set_xlabel('Year')
ax.set_ylabel('Area, $m^2$')
plt.subplots_adjust(left=0.05, top=0.95, right=0.95)
plt.show()

成图如下:(左图中绿色网格面为置信度为95%的上下界面,蓝色网格为回归面)

高斯基函数线性组合回归练习——sklearn库高斯过程回归相关推荐

  1. 【机器学习之逻辑回归】sklearn+python逻辑回归详解

    文章目录 一.逻辑回归 二.算法原理介绍 三.代码实现 3.1 sklearn-API介绍 3.2 sklearn-代码实现 3.3 python手写代码实现 四.总结 五.算法系列 一.逻辑回归 逻 ...

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

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

  3. python对逻辑回归进行显著性_python sklearn库实现简单逻辑回归的实例代码

    Sklearn简介 Scikit-learn(sklearn)是机器学习中常用的第三方模块,对常用的机器学习方法进行了封装,包括回归(Regression).降维(Dimensionality Red ...

  4. Py之scikit-learn:机器学习sklearn库的简介、六大基本功能介绍(数据预处理/数据降维/模型选择/分类/回归/聚类)、安装、使用方法(实际问题中如何选择最合适的机器学习算法)之详细攻略

    Py之scikit-learn:机器学习sklearn库的简介(组件/版本迭代).六大基本功能介绍(数据预处理/数据降维/模型选择/分类/回归/聚类).安装.使用方法(实际问题中如何选择最合适的机器学 ...

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

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

  6. python svr回归_使用sklearn库中的SVR做回归分析

    sklearn中的回归有多种方法,广义线性回归集中在linear_model库下,例如普通线性回归.Lasso.岭回归等:另外还有其他非线性回归方法,例如核svm.集成方法.贝叶斯回归.K近邻回归.决 ...

  7. sklearn库:分类、回归、聚类、降维、模型优化、文本预处理实现用例(赶紧收藏)

    分类算法 # knn算法 from sklearn.neighbors import KNeighborsClassifier knn = KNeighborsClassifier() ''' __i ...

  8. 高斯过程回归python_sklearn文档 — 1.7. 高斯过程

    原文章为scikit-learn中"用户指南"-->"监督学习的第七节:Gaussian Processes"###### 高斯过程(GP)是一种被设计来 ...

  9. 高斯过程回归的权空间观点推导及代码实现

    文章目录 1.高斯过程简介 1.1定义 2.部分基础知识(已具备的直接跳至第3节) 2.1 部分矩阵计算基础 2.1.1 分块矩阵求逆 2.1.2 矩阵求逆引理 2.2 多元高斯分布 2.2.1 联合 ...

  10. rbf核函数_高斯过程回归础(使用GPy和模拟函数数据集)

    为什么要了解高斯过程呢?因为不了解高斯过程就不能聊贝叶斯优化. 假设有这么一个函数: .现在有训练的数据y和一堆X.然后来了一个新的X让你用既有的数据去预测者个新的X所对应的y. 高斯过程(回归)的思 ...

最新文章

  1. 生物信息培训之WGCNA-权重基因共表达网络分析
  2. jconsole_我的Wiki:使用JConsole对WildFly(或JBoss AS7)进行远程JMX访问
  3. LeetCode Search in Rotated Sorted Array II -- 有重复的旋转序列搜索
  4. JBoss Fuse –一些鲜为人知的技巧
  5. 交付方式 saas_扩展和交付SaaS启动的最佳方法
  6. 深度学习在医疗方面的应用 精准医学受追捧
  7. Python的网络编程[1] - FTP 协议[1] - 使用 pyftplib 建立 FTP 服务器
  8. mysql更改执行计划_11g中 connect by 语句执行计划改变
  9. win10 1803官方原版镜像
  10. 算法竞赛入门-刽子手游戏(Hangman Judge )
  11. 全国计算机考试上传不了照片,报考2018计算机等级考试对上传照片有何要求?...
  12. NAudio:MP3转WAV和Wav转Mp3
  13. centos 安装dosbox
  14. 测试独立显卡坏,可以将显示器接口插在集成显卡上试试
  15. URAL 1389 Roadworks 贪心
  16. NCRE 四级数据库工程师教程,例题加解析,干货
  17. 环回接口(loopback interface)
  18. 洛谷 P1095 守望者的逃离
  19. 【求助】救救“这个可怜的孩子”
  20. aarch64指令集_AArch64应用程序级编程模型

热门文章

  1. Knowledge-Aware Graph-Enhanced GPT-2 for Dialogue State Tracking论文笔记
  2. 小游戏流量变现瓶颈,新增长点是超级App?
  3. mstar v56几路hdmi_TCL MStar常用升级方法图文教程
  4. sql语句中大于号小于号的处理
  5. 戴维斯计算机科学值得读吗,2018加州大学戴维斯分校计算机科学专业基本信息详细解读...
  6. 锆石 Hello FPGA 笔记——part1 数字电路篇
  7. 【刷题】LOJ 6008 「网络流 24 题」餐巾计划
  8. VBA教程初级(五):复杂数组
  9. 美国东海岸的数据中心为风暴做好准备
  10. html消除自带边距,CSS3中清除外边距、内边距margin,padding使用方法