【发布时间】:2016-07-13 09:12:01
【问题描述】:
我正在使用 Python 2.7 中的 GPy 库来执行高斯过程回归。我首先遵循 GitHub 页面中提供的教程笔记本。
示例代码:
import numpy as np
import matplotlib.pyplot as plt
f = lambda x : np.sin(x**2)
kernel = GPy.kern.RBF(input_dim=1, variance=1., lengthscale=1.)
X=np.random.rand(2,1)
Y=f(X)
m = GPy.models.GPRegression(X,Y,kernel)
m.optimize_restarts(num_restarts = 10,verbose=False)
fig=m.plot()
plt.show()
我目睹的奇怪的事情是 GPRegression 类中没有实现 plot 函数(好吧,它只是 的一个小子类>GP.),也不是它的超类 (GP),也不是它的超超类 (Model).. . 全部位于 GPy.core 中。
我调用 m.plot() 时执行的绘图函数在 GPy.plotting.gpy_plot 中(不包含任何类,但仍使用“self”关键字作为函数参数 - 但也许它只是函数参数的“坏”名称?)。
我看不到 GPy.core.GP 对象如何访问这个绘图函数(乍一看,两个 python 文件之间没有任何链接 - Ctrl+F "plot" in GPy/core/gp.py 没有给出任何例子)。
当我打电话时
vars(GPy.models.gp_regression.GP).keys()
,绘图功能确实有,虽然在GPy.core.GP中没有直接实现。
同样的事情:(最小的可重现示例)
import GPy.core.gp
import GPy.likelihoods
import GPy.kern
import matplotlib.pyplot as plt
GPy.core.gp.GP.__dict__.keys()
了解如何 GP 调用gpy_plot 中的绘图函数,以及为什么 以这种方式编码?
【问题讨论】:
标签: python python-2.7 gpy