在sklearn中进行交叉验证时,如何转换预测结果?

时间:2020-03-04 08:10:34

标签: python scikit-learn data-science pipeline cross-validation

我发布了this question on 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-正确的结果

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

0 个答案:

没有答案