Get error: unexpected keyword argument 'random_state' when using TomekLinks

Get error: unexpected keyword argument 'random_state' when using TomekLinks

我的代码是:

  undersample = TomekLinks(sampling_strategy='majority', n_jobs= -1,  random_state = 42)
  X_tl, y_tl = undersample.fit_resample(X, y)

当我 运行 它时,我得到这个错误:

TypeError: __init__() got an unexpected keyword argument 'random_state'

我的包版本是:

 imbalanced-learn==0.9.0

虽然在documentation中存在这个参数:

random_state : int, RandomState instance or None, optional (default=None)

当我检查 _tomek_links.py 中的构造函数时,我没有看到随机状态字段:

  @_deprecate_positional_args
    def __init__(self, *, sampling_strategy="auto", n_jobs=None):
        super().__init__(sampling_strategy=sampling_strategy)
        self.n_jobs = n_jobs

我想,您看错了文档。那个是版本 0.3.0-dev,所以我检查了:https://imbalanced-learn.org/stable/references/generated/imblearn.under_sampling.TomekLinks.html——这个参数在较新的版本 0.9.0.

中已被弃用

此外,正如文档所述,您似乎必须在 make_classification 函数中指定它,如下所示:

X, y = make_classification(n_classes=2, class_sep=2,
                           weights=[0.1, 0.9], 
                           n_informative=3, n_redundant=1, 
                           flip_y=0, n_features=20, 
                           n_clusters_per_class=1, 
                           n_samples=1000, random_state=10
                          )