【发布时间】:2020-09-04 22:44:42
【问题描述】:
我有一个包含 1000 个观察样本的数据集,其中 6 个特征构成 X,一个目标变量构成 Y。
我正在使用克里金法或Gaussian Process Regressor 来训练我的模型。我想使用各向异性高斯和各向异性指数相关函数作为内核。请参阅随附的方程式片段以供参考。
如何在python中定义命名函数?
【问题讨论】:
标签: python scikit-learn gaussian kriging
我有一个包含 1000 个观察样本的数据集,其中 6 个特征构成 X,一个目标变量构成 Y。
我正在使用克里金法或Gaussian Process Regressor 来训练我的模型。我想使用各向异性高斯和各向异性指数相关函数作为内核。请参阅随附的方程式片段以供参考。
如何在python中定义命名函数?
【问题讨论】:
标签: python scikit-learn gaussian kriging
Scikit-learn 提供各向异性高斯和指数内核。您所要做的就是用长度等于特征数量的数组替换长度比例。在高斯核的情况下,它的工作原理如下:
from sklearn.datasets import load_iris
from sklearn.gaussian_process import GaussianProcessClassifier
from sklearn.gaussian_process.kernels import RBF,Matern
X, y = load_iris(return_X_y=True)
kernel = 1.0 * RBF([1.0,1.5,0.5,1]) # just create anisotropic kernel here
#kernel = 1.0 * RBF([1]) # isotropic kernel
gpc = GaussianProcessClassifier(kernel=kernel,random_state=0).fit(X, y)
gpc.score(X, y)
gpc.predict_proba(X[:2,:])
您可以获得指数核作为 Matern 核的特例。我的数学有点生疏,但Rasmussen&Williams Chapter 4 说这是通过将 nu 参数设置为 0.5 来完成的:
from sklearn.gaussian_process.kernels import Matern
kernel = 1.0 * Matern(length_scale=[1.0,1.5,0.5,1], nu=0.5)
【讨论】: