I want to create a pipeline that continues encoding, scaling then the xgboost classifier for multilabel problem. The code block;
# Create a boolean mask for categorical columns
categorical_columns = X.columns[X.dtypes == 'O'].tolist()
#Distinct columns for to find catagories
unique_list = [X[c].unique().tolist() for c in categorical_columns]
# Create a boolean mask for numerical columns
numerical_columns = X.columns[X.dtypes != 'O'].tolist()
#Encoding & Scaling objects
scaler = StandardScaler()
ohe = OneHotEncoder(categories=unique_list, sparse=False)
#Define a pipeline
pipeline = Pipeline([("ohe_onestep", ohe.fit_transform(X[categorical_columns])),
("scaler_onestep", scaler.fit_transform(X[numerical_columns])),
MultiOutputClassifier(xgb.XGBClassifier(objective='binary:logistic'))])
# Cross-validate the model
cross_val_scores = cross_val_score(pipeline, X, y,
scoring='accuracy', cv=5)
But when i run the code this error appears ; Row is;
> pipeline = Pipeline([("ohe_onestep", ohe.fit_transform(X[categorical_columns])),
'MultiOutputClassifier' object is not iterable
How can i solve this problem?