【问题标题】:Invalid Parameter loss for estimator SVR估计器 SVR 的无效参数损失
【发布时间】:2020-12-18 04:48:58
【问题描述】:

这是我的代码

我使用网格搜索 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()`.

【问题讨论】:

    标签: python machine-learning svm grid-search


    【解决方案1】:

    我发现的一些错误:

    • 您似乎正在指定 loss 参数和可能的值,这些值仅针对 LinearSVR 定义,而不是 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)
    

    【讨论】:

      猜你喜欢
      • 2017-12-28
      • 2021-06-01
      • 2022-08-19
      • 2018-06-28
      • 2021-08-13
      • 2020-02-22
      • 2020-09-11
      • 2017-06-13
      • 2020-05-31
      相关资源
      最近更新 更多