修改平衡随机森林抽样

时间:2020-10-09 17:32:37

标签: python machine-learning scikit-learn random-forest imblearn

我想将BalancedRandomForest库中的采样类型从RandomUnderSampling更改为ClusterCentroid,我已经更改了这一部分

self.base_sampler_ = RandomUnderSampler(
        sampling_strategy=self._sampling_strategy,
        replacement=self.replacement,
    )

成为这个

 self.base_sampler_ = ClusterCentroids(
        sampling_strategy=self._sampling_strategy,
        replacement=self.replacement,
    )

我修改的代码在#386行中。

在jupyter笔记本上运行后,出现了这样的错误

`---------------------------------------------------------------------------
TypeError                                 Traceback (most recent call last)
<ipython-input-19-098f56165cd0> in <module>
      2 
      3 classifier = BalancedRandomForestClassifier(n_estimators=1000, random_state=5)
----> 4 classifier.fit(X_train, y_train)

~\Anaconda3\lib\site-packages\imblearn\ensemble\_forest.py in fit(self, X, y, sample_weight)
    481 
    482         # Check parameters
--> 483         self._validate_estimator()
    484 
    485         if not self.bootstrap and self.oob_score:

~\Anaconda3\lib\site-packages\imblearn\ensemble\_forest.py in _validate_estimator(self, default)
    371         self.base_sampler_ = ClusterCentroids(
    372             sampling_strategy=self._sampling_strategy,
--> 373             replacement=self.replacement,
    374         )
    375 

~\Anaconda3\lib\site-packages\imblearn\utils\_validation.py in inner_f(*args, **kwargs)
    638                           FutureWarning)
    639         kwargs.update({k: arg for k, arg in zip(sig.parameters, args)})
--> 640         return f(**kwargs)
    641     return inner_f

TypeError: __init__() got an unexpected keyword argument 'replacement'`

我现在不知道该怎么办,是否仍然可以将RandomSampling更改为ClusterCentroid?谢谢。

0 个答案:

没有答案