【问题标题】:Using .set_params() function for LinearRegression使用 .set_params() 函数进行线性回归
【发布时间】:2021-12-20 16:55:24
【问题描述】:

我最近开始研究线性回归的机器学习。我使用了LinearRegression (lr) 来预测一些值。确实,我的预测很糟糕,我被要求更改超参数以获得更好的结果。

我使用以下命令获取超参数:

lr.get_params().keys() 
lr.get_params()

并获得以下信息:

 'copy_X': True,
 'fit_intercept': True,
 'n_jobs': None,
 'normalize': False,
 'positive': False}

dict_keys(['copy_X', 'fit_intercept', 'n_jobs', 'normalize', 'positive'])

现在,问题开始出现了。我试图找到正确的语法来使用 .set_params() 函数,但每个答案似乎都超出了我的理解范围。

自从lr.set_params('normalize'==True) 等命令返回后,我尝试分配位置参数

TypeError: set_params() takes 1 positional argument but 2 were given

lr.set_params(some_params = {'normalize'}) 已返回

ValueError (`ValueError: Invalid parameter some_params for estimator LinearRegression(). Check the list of available parameters with estimator.get_params().keys().

有人可以简单解释一下这个函数是如何工作的吗?

【问题讨论】:

    标签: python machine-learning scikit-learn linear-regression hyperparameters


    【解决方案1】:

    解压** 符号,@FlaviaGiammarino 的回答相当于:

    reg.set_params(
        copy_X=False,
        fit_intercept=False,
        n_jobs=-1,
        normalize=True,
        positive=True
    )
    

    【讨论】:

      【解决方案2】:

      正确的语法是set_params(**params),其中params 是包含估计器参数的字典,请参阅scikit-learn documentation

      from sklearn.linear_model import LinearRegression
      
      reg = LinearRegression()
      
      reg.get_params()
      # {'copy_X': True,
      #  'fit_intercept': True,
      #  'n_jobs': None,
      #  'normalize': False,
      #  'positive': False}
      
      reg.set_params(**{
          'copy_X': False,
          'fit_intercept': False,
          'n_jobs': -1,
          'normalize': True,
          'positive': True
      })
      
      reg.get_params()
      # {'copy_X': False,
      #  'fit_intercept': False,
      #  'n_jobs': -1,
      #  'normalize': True,
      #  'positive': True}
      

      【讨论】:

        猜你喜欢
        • 2018-07-31
        • 2022-01-11
        • 2019-01-06
        • 2018-02-03
        • 2018-07-23
        • 2022-01-21
        • 2020-08-06
        • 1970-01-01
        相关资源
        最近更新 更多