首页 > 解决方案 > Auto-sklearn 平均绝对误差度量没有结果

问题描述

我正在尝试使用基于库 scikit-learn 的 Python 库 auto-sklearn 来解决回归问题。

当我按照官方文档上的教程进行操作时,一切正常,但是当我想将度量标准从 r2 更改为表示绝对错误时,我总是得到这个结果:

[(1.000000, MyDummyRegressor(configuration=1, init_params=None, random_state=None))]

这是我的代码

def main():

X, y = sklearn.datasets.make_regression()                                                          
X_train, X_test, y_train, y_test = \                                                               
    sklearn.model_selection.train_test_split(X, y, random_state=1)                                 

automl = autosklearn.regression.AutoSklearnRegressor(
    time_left_for_this_task=120,
    per_run_time_limit=30,
    tmp_folder='/tmp/autosklearn_holdout_example_tmp',
    output_folder='/tmp/autosklearn_holdout_example_out',
    disable_evaluator_output=False,
    ml_memory_limit=1024,
    seed=123,
)
automl.fit(
    X_train,
    y_train,
    dataset_name='random_regression',
    metric=autosklearn.metrics.mean_absolute_error)

print(automl.show_models())
test_predictions = automl.predict(X_test, batch_size=100)
print("MAE test score:", sklearn.metrics.mean_absolute_error(y_test, test_predictions))

print(automl.sprint_statistics())

这是输出

[(1.000000, MyDummyRegressor(configuration=1, init_params=None, random_state=None)),]
MAE test score: 160.38897901387986
auto-sklearn results:
  Dataset name: random_regression
  Metric: mean_absolute_error
  Best validation score: 0.000000
  Number of target algorithm runs: 88
  Number of successful target algorithm runs: 50
  Number of crashed target algorithm runs: 37
  Number of target algorithms that exceeded the time limit: 0
  Number of target algorithms that exceeded the memory limit: 1

所以基本上,我有一个 r2 性能指标的结果集合,但没有平均绝对误差,而且我尝试过的没有其他结果。

谁能解释我做错了什么,或者我在这里有什么不明白的地方?

谢谢。

标签: scikit-learnregressionmetricsautoml

解决方案


推荐阅读