4

正如标题所建议的那样,我想对我的随机采样器的比率进行网格搜索。我想尝试比率 10、15 和 20,其中比率 = 10 是重采样多数类的数量/少数类的数量。

示例:如果少数类有 10 个元素,多数 1000,比率为 5,我将有 10 个少数和 50 个多数。这就是 Random Under Sampler 文档的建议。

https://imbalanced-learn.readthedocs.io/en/stable/generated/imblearn.under_sampling.RandomUnderSampler.html

from imblearn.pipeline import make_pipeline as imbalanced_make_pipeline
from sklearn.model_selection import GridSearchCV 

pipe = imbalanced_make_pipeline(RandomUnderSampler(),
                            SMOTE(),
                            RandomForestClassifier())

gsc = GridSearchCV(estimator=pipe, param_grid= {'smote__ratio': [5, 10, 15],
                                            'randomforestclassifier__criterion': ["entropy"], 
                                            'randomforestclassifier__max_depth': np.arange(10,30,5), 
                                            'randomforestclassifier__min_samples_leaf': np.arange(5,15,3)},
               scoring='f1',cv=5, verbose=2)

grid_result = gsc.fit(X, y)

我收到此错误:

AttributeError: 'NoneType' object has no attribute 'items'

有人可以帮助我吗?谢谢。

4

0 回答 0