You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

关于在auto-sklearn中构建10折交叉验证回归预测模型的技术咨询

使用auto-sklearn构建10折交叉验证的回归模型

针对你40000行数据、80个特征的回归任务,你写的代码方向完全正确,我帮你梳理细节并补充一些实用的后续操作:

核心代码与参数解析

先把你的核心代码整理规范:

import autosklearn.regression

# 假设X是特征矩阵,y是连续型目标变量,feature_types是特征类型列表
automl = autosklearn.regression.AutoSklearnRegressor( 
    time_left_for_this_task=3600,  # 总搜索+训练时长:1小时
    per_run_time_limit=600,         # 单个模型训练上限:10分钟
    resampling_strategy='cv',       # 指定交叉验证作为重采样策略
    resampling_strategy_arguments={'folds': 10}  # 设置10折交叉验证
)
automl.fit(X, y, dataset_name='unused', feat_type=feature_types)
automl.refit(X.copy(), y.copy())

这里几个关键参数的作用要明确:

  • time_left_for_this_task:控制auto-sklearn的总运行时间,1小时的设置对你的数据集规模来说很合理,既能覆盖足够多的模型搜索,又不会耗时过长
  • per_run_time_limit:限制单个模型的训练时间,避免复杂模型占用过多资源拖慢整体流程
  • resampling_strategy_arguments={'folds':10}:明确指定10折交叉验证,这会让模型评估更稳定,尤其适合你的中等规模数据集
  • feat_type:这个参数非常关键,一定要准确传入每个特征的类型(比如['numerical', 'categorical', ...]),auto-sklearn会根据特征类型自动做数据预处理,大幅提升模型效果

后续实用操作

训练完成后,这些操作能帮你更好地验证、使用模型:

1. 查看最优模型详情

想知道auto-sklearn最终选了哪些模型、各模型权重是多少,可以用:

print(automl.show_models())

2. 模型性能评估

如果你划分了测试集,用测试数据评估模型的泛化能力:

# 假设你之前划分了测试集X_test, y_test
y_pred = automl.predict(X_test)

from sklearn.metrics import mean_squared_error, r2_score
print(f"测试集RMSE: {mean_squared_error(y_test, y_pred, squared=False):.2f}")
print(f"测试集R2分数: {r2_score(y_test, y_pred):.2f}")

3. 保存与加载模型

训练好的模型可以保存下来,后续直接加载使用:

import joblib

# 保存模型
joblib.dump(automl, 'auto_sklearn_regressor.pkl')

# 后续加载模型
loaded_automl = joblib.load('auto_sklearn_regressor.pkl')

一些注意事项

  • 你的数据集规模不算小,训练时确保机器有足够内存(建议16G以上),避免出现内存溢出问题
  • 如果训练过程中发现某些模型总是超时,可以适当调小per_run_time_limit,或者增加time_left_for_this_task给更多搜索时间
  • refit步骤是用整个训练集重新训练最优模型,这一步很有必要——交叉验证阶段模型是用子集训练的,refit后模型的泛化能力会更好

内容的提问来源于stack exchange,提问作者Yara

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.05.21 07:19:20