我正在尝试使用基于库 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 性能指标的结果集合,但没有平均绝对误差,而且我尝试过的没有其他结果。
谁能解释我做错了什么,或者我在这里有什么不明白的地方?
谢谢。