Установка параметров импутера в трехуровневом конвейере - PullRequest
0 голосов
/ 07 апреля 2020

Я новичок ie в этой области DataScience и для организации своего кода я использую конвейер.

Ниже приведен фрагмент кода, который я пытаюсь организовать:

### Preprocessing ###
# Preprocessing for numerical data
numerical_transformer = Pipeline(steps=[
                ('imputer', SimpleImputer()),
                ('scaler', StandardScaler())
])

# Preprocessing for categorical data
categorical_transformer = Pipeline(steps=[
    ('imputer', SimpleImputer(strategy='most_frequent')),
    ('onehot', OneHotEncoder(handle_unknown='ignore', sparse=False))
])

# Bundle preprocessing for numerical and categorical data
preprocessor = ColumnTransformer(
    transformers=[
        ('num', numerical_transformer, numerical_cols),
        ('cat', categorical_transformer, categorical_cols)
    ])

### Model ###
model = XGBRegressor(objective ='reg:squarederror', n_estimators=1000, learning_rate=0.05) 

### Processing ###
# Bundle preprocessing and modeling code in a pipeline
my_pipeline = Pipeline(steps=[('preprocessor', preprocessor),
                              ('model', model)
                             ])

parameters = {}
# => How to set the parameters for one of the parts of the numerical_transformer pipeline?

# GridSearch
CV = GridSearchCV(my_pipeline, parameters, scoring = 'neg_mean_absolute_error', n_jobs= 1)

CV.fit(X_train, y_train) 

Как изменить параметры Imputer, найденные в конвейере numeric_transformer?

Спасибо,

1 Ответ

0 голосов
/ 07 апреля 2020

После @desernaut, указывающего в правильном направлении, это ответ:

parameters['preprocessor__num__imputer__strategy'] = ['most_frequent','mean', 'median',]

Спасибо @desernaut!

...