scikit-learn - 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 性能指标的结果集合,但没有平均绝对误差,而且我尝试过的没有其他结果。
谁能解释我做错了什么,或者我在这里有什么不明白的地方?
谢谢。
解决方案
推荐阅读
- python - 将每个 id 的多个时间值分组为一个时间段,并用 SQL 显示每个时间段
- javascript - Angular - 如何从订阅服务中获取数据几次而不覆盖以前的结果
- vba - 查找带有旧对象(表)的 VBA 库的问题,需要启动并运行访问数据库
- c++ - 在 C++ 中重用未来
- three.js - Safari上的Three.js webgl视频纹理CORS问题
- java - 拆分后从骆驼路线获取原始消息
- logic - 两种面额的硬币如何兑换?
- python - 使用共享计数器对目录文件进行 Python 多处理
- graphql - 在 markdownfile 中使用 frontmatter 在页面查询中查询图像
- javascript - API datetime-local 输入格式无效