2017-10-17 51 views
0

我正在尝试使用GridCV确定sklearn中GPR的超参数。 不过,我收到以下错误:
ValueError异常:连续不支持为什么使用高斯过程回归对GridCV产生错误?

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

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) 

回答

4

精度和召回率是用于分类而不是回归的度量。将scoring='%s_weighted' % score更改为GridSearchCV中的scoring='r2',您的错误消失。

相关问题