Я создаю RandomForestClassifier на основе некоторых клинических данных, где целевая переменная (результат) является двоичным (0 или 1). Для реализации этого я использую Python и scikit-learn.
Набор данных состоит как из категориальных, так и из числовых переменных, и я работаю с конвейером предварительной обработки.
Код: Выделить всё
numeric_transformer = Pipeline(steps=[
("imputer", IterativeImputer(max_iter=20, random_state=42)),
("scaler", StandardScaler())
])
categorical_transformer = Pipeline(steps=[
("imputer", SimpleImputer(strategy="most_frequent")),
("onehot", OneHotEncoder(handle_unknown="ignore"))
])
preprocessor = ColumnTransformer(
transformers=[
("num", numeric_transformer, numeric_columns),
("cat", categorical_transformer, categorical_columns)
]
)
model = RandomForestClassifier(random_state=42)
pipeline = Pipeline(steps=[
("preprocessor", preprocessor),
("model", model)
])
grid_search = GridSearchCV(pipeline, param_grid, cv=5, scoring="balanced_accuracy", verbose=4, n_jobs = -1)
Вопрос. Поскольку я использовал OneHotEncoder для категориальных переменных, не следует ли мне ожидать более 116 значений в массиве? Я считаю, что ответ заключается в том, как ColumnTransformer обрабатывает преобразования, но я немного запутался.
Буду очень признателен за любые разъяснения!
Спасибо!
Подробнее здесь: https://stackoverflow.com/questions/792 ... estclassif
Мобильная версия