【问题标题】:Getting number of arguments error with scikit RFE使用 scikit RFE 获取参数数量错误
【发布时间】:2022-01-11 18:59:48
【问题描述】:

我遇到了这个错误。我认为这是我的本地设置的问题。

# Importing RFE and LinearRegression
from sklearn.feature_selection import RFE
from sklearn.linear_model import LinearRegression

# Running RFE with the output number of the variable equal to 10
lm = LinearRegression()
lm.fit(X_train, y_train)

rfe = RFE(lm, 10)             # running RFE
rfe = rfe.fit(X_train, y_train)

在 jupyter 上运行单元格时出现以下错误

---------------------------------------------------------------------------
TypeError                                 Traceback (most recent call last)
~\AppData\Local\Temp/ipykernel_3420/241754350.py in <module>
      3 lm.fit(X_train, y_train)
      4 
----> 5 rfe = RFE(lm, 10)             # running RFE
      6 rfe = rfe.fit(X_train, y_train)

TypeError: __init__() takes 2 positional arguments but 3 were given

上面的代码似乎对其他人有用。

【问题讨论】:

    标签: python scikit-learn


    【解决方案1】:

    正如您在 RFE 类 (https://github.com/scikit-learn/scikit-learn/blob/7e1e6d09b/sklearn/feature_selection/_rfe.py#L176) 的 __init__ 方法中看到的,您只能传递两个位置参数(selfestimator)。

    根据Python documentation

    *”或“*identifier”之后的参数是关键字参数,只能传递使用过的关键字参数。

    在你的情况下,你应该输入:

    rfe = RFE(lm, n_features_to_select=10)
    

    【讨论】:

      猜你喜欢
      • 2016-03-16
      • 2018-11-18
      • 1970-01-01
      • 1970-01-01
      • 2021-11-04
      • 1970-01-01
      • 2019-02-03
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多