Как преобразовать прогнозируемые результаты при выполнении перекрестной проверки в sklearn? - PullRequest
0 голосов
/ 04 марта 2020

Я разместил этот вопрос на Data Science StackExchange , но не получил ответов. Кто-то предложил мне перенести вопрос сюда, потому что он похож на вопрос программирования, поэтому у меня есть попытка.

Я хочу сделать перекрестную проверку в sklearn, как показано ниже, но предсказанный результат X по-прежнему необходимо преобразовать, чтобы уменьшить расстояние от y. Как сделать это с добавлением пользовательской функции?

model = XGBRegressor(n_estimator = 500,
                     learn_rate = 0.05,
                     random_state = 0)

pipeline = Pipeline( steps = [('preprocessor', preprocessor),
                            ('model', model)
                            ])

scores = -1 * cross_val_score(pipeline, X, y,
                            cv = 3,
                            scoring = 'neg_mean_absolute_error',
                            verbose = 0)

В y есть только 0 и 1, поэтому я хочу округлить и вырезать десятичные дроби в результате X, просто после шага для предсказания X.

Возможно, мне понадобятся другие операции с y в будущем. Например, подгонка правильного результата включает только цифры, такие как 0,5, 1,5, 2,5 ...

Пример:

X - вход

ID Column_1 Column_2 Column_3
0    'A'       10     True
1    'A'       20     False
2    'B'       30     True

y - The правильный результат

ID Result
0  1
1  0
2  1

токовый выход

ID Result
0   0.899
1  -0.001
2   1.102

ожидаемый выход

ID Result
0    1
1    0
2    1
...