我正在尝试在 auto-sklearn 中建立一个具有 10 倍交叉验证的预测模型。我的数据集有大约 40k 行和 80 个特征。这是我的代码(其中 X 是我的特征,y 是连续结果变量):
automl = autosklearn.regression.AutoSklearnRegressor(
time_left_for_this_task=3600, per_run_time_limit=600,
resampling_strategy='cv',
resampling_strategy_arguments={'folds': 10})
automl.fit(X, y, dataset_name='unused', feat_type=feature_types)
automl.refit(X.copy(), y.copy())
automl.cv_results_
最后一行的输出对我来说有点混乱
{'mean_fit_time': array([6.00111840e+02, 1.76325102e+01, 1.68442428e+01,
1.68408656e+00,
9.08970833e-01, 1.73636928e+01, 5.83850384e-01, 8.99704933e-01,
1.77676334e+01, 8.56771708e-01, 1.58957437e+02, 6.00050516e+02,
6.00073232e+02, 1.72906122e+01, 6.00116965e+02, 6.00113743e+02,
3.24114606e+02]),
'mean_test_score': array([0. , 0.2108587, 0. , 0. , 0. , 0. ,
0. , 0. , 0. , 0. , 0.2108587, 0. ,
0. , 0.2108587, 0. , 0. , 0. ]),
[结果文本较长,但由于字符限制,我已将其删除]
'rank_test_scores': array([4, 1, 4, 4, 4, 4, 4, 4, 4, 4, 1, 4, 4, 1, 4, 4, 4]),
'status': ['Timeout', 'Success', 'Memout', 'Crash', 'Memout', 'Memout', 'Crash', 'Crash', 'Crash', 'Memout', 'Success', 'Timeout', 'Crash', 'Success', 'Timeout', 'Timeout', 'Timeout']}
没有mean_train_score,似乎mean_test_score有很多遗漏。难道我做错了什么?当我让我的模型运行更长时间时,我会遇到同样的问题。当我运行 10 倍交叉验证时,我的 R2 也比不运行时更差
任何指导将不胜感激。雅拉。