预先处理在GridSearchCV管道中使用SMOTEENN

时间:2019-12-29 04:19:46

标签: random-forest sklearn-pandas grid-search imblearn imbalanced-data

我正在处理高度不平衡的数据集的分类问题。我正在尝试在网格搜索管道中使用.parent { display: flex; flex-wrap: wrap-reverse; },但是我不断收到此ValueError:

SMOTEENN

我在网上发现,如果从imblearn导入了管道,SMOTEENN可以与GridSearchCV一起使用。我正在使用来自imblearn的管道,但它仍然给我这个错误。

该问题首先在我尝试使用ValueError: Invalid parameter randomforestclassifier for estimator Pipeline(memory=None, steps=[('preprocessor_X', ColumnTransformer(n_jobs=None, remainder='drop', sparse_threshold=0.3, transformer_weights=None, transformers=[('num', Pipeline(memory=None, steps=[('scaler', StandardScaler(copy=True, with_mean=True, with_std=True))], verbose=False), ['number_of_participants', 'count_timely_submission', 'count_by_self', 'count_at_ra... class_weight='balanced', criterion='gini', max_depth=None, max_features='auto', max_leaf_nodes=None, max_samples=None, min_impurity_decrease=0.0, min_impurity_split=None, min_samples_leaf=1, min_samples_split=2, min_weight_fraction_leaf=0.0, n_estimators=100, n_jobs=None, oob_score=False, random_state=0, verbose=0, warm_start=False))], verbose=False))], verbose=False). Check the list of available parameters with `estimator.get_params().keys()`. 并获取X和y变量时开始。我有一个SMOTEENN函数,可将数据分解为X,y。我想在该函数中使用prepare_data()并返回平衡数据。但是,我的功能之一是字符串类型-需要放在SMOTEENN中。由于某些原因,OneHotEncoder似乎没有处理字符串。因此,我需要在管道中使用它,以便SMOTEENN将有效SMOTEENN

我在下面粘贴我的管道代码。任何帮助或解释将不胜感激!谢谢!

post-preprocessing

1 个答案:

答案 0 :(得分:0)

您已将RandomForestClassifier命名为classification,并且该管道在下一个管道中被命名为model。因此,您必须按照以下步骤更改param_grid


param_grid = {'model__classification__max_depth': [3,5,7,10], 
              'model__classification__min_samples_split': [10,25,40]}