估计SVR的无效参数损失

2024-06-26 13:20:23 发布

您现在位置:Python中文网/ 问答频道 /正文

这是我的密码

我使用网格搜索cv进行超参数调整。但它显示出错误

param_grid = {"kernel" : ['linear', 'poly', 'rbf', 'sigmoid'],
            'loss' : ['epsilon_insensitive', 'squared_epsilon_insensitive'],
             "max_iter" : [1,10,20],
             'C' : [np.arange(0,20,1)]} 

model = GridSearchCV(estimator = svr, param_grid = param_grid, cv = 5, verbose = 3, n_jobs = -1)

m1 = model.fit(x_train,y_train)

ValueError: Invalid parameter loss for estimator SVR(C=array([ 0,  1,  2,  3,  4,  5,  6,  7,  8,  9, 10, 11, 12, 13, 14, 15, 16,
   17, 18, 19]),
kernel='linear'). Check the list of available parameters with `estimator.get_params().keys()`.

Tags: 网格密码参数modelparam错误trainkernel
1条回答
网友
1楼 · 发布于 2024-06-26 13:20:23

我发现了一些错误:

  • 您似乎正在指定一个loss参数和可能的值,这些参数和值仅为^{}定义,而不是为SVR定义。另一方面,如果您确实想要使用LinearSVR,则不能指定内核,因为它必须是线性的

  • 我还注意到网格定义中的'C' : [np.arange(0,20,1)]会产生错误,因为它会导致嵌套列表。只需使用np.arange(0,20,1)

假设您有一个SVR,以下内容应该适用于您:

from sklearn.svm import SVR
svr = SVR()

param_grid = {"kernel" : ['linear', 'poly', 'rbf', 'sigmoid'],
             "max_iter" : [1,10,20],
             'C' : np.arange(0,20,1)} 

model = GridSearchCV(estimator = svr, param_grid = param_grid, 
                     cv = 5, verbose = 3, n_jobs = -1)
m1 = model.fit(X_train, y_train)

相关问题 更多 >