0

我正在尝试在 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 也比不运行时更差

任何指导将不胜感激。雅拉。

4

0 回答 0