为什么我使用高斯过程回归得到GridCV的错误?

时间:2017-10-17 06:31:02

标签: machine-learning scikit-learn

我正在尝试使用GridCV确定sklearn中GPR的超参数。 但是,我收到以下错误:
                  ValueError:不支持连续

欢迎任何见解。我的代码如下:

import numpy as np

from sklearn.gaussian_process import GaussianProcess
from sklearn.gaussian_process import regression_models as regression
from sklearn.gaussian_process import correlation_models as correlation
from sklearn.datasets import make_regression
from sklearn.utils.testing import assert_greater, assert_true, raises
from sklearn.model_selection import GridSearchCV

b, kappa, e = 5., .5, .1
g = lambda x: b - x[:, 1] - kappa * (x[:, 0] - e) ** 2.
X = np.array([[-4.61611719, -6.00099547],
              [4.10469096, 5.32782448],
              [0.00000000, -0.50000000],
              [-6.17289014, -4.6984743],
              [1.3109306, -6.93271427],
              [-5.03823144, 3.10584743],
              [-2.87600388, 6.74310541],
              [5.21301203, 4.26386883]])
y = g(X).ravel()


tuned_parameters = [{'corr':['squared_exponential'], 'theta0': [0.01, 0.2, 0.8, 1.]},
                    {'corr':['cubic'], 'theta0': [0.01, 0.2,  0.8, 1.]}]

scores = ['precision', 'recall']

xy_line=(0,1200)


for score in scores:
    print("# Tuning hyper-parameters for %s" % score)
    print()

gp = GridSearchCV(GaussianProcess(normalize=False), tuned_parameters, cv=5,
                   scoring='%s_weighted' % score)
gp.fit(X, y)

1 个答案:

答案 0 :(得分:4)

精确度和召回率是用于分类而非回归的度量标准。将scoring='%s_weighted' % score更改为scoring='r2'GridSearchCV之类的内容,您的错误就会消失。