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

如何在Pipeline与GridSearchCV场景下获取LinearRegression的特征系数

问题原因排查

  • 第一个报错原因:cv_results_是GridSearchCV存储所有交叉验证结果的字典类型属性,本身不包含best_estimator_,best_estimator_是GridSearchCV实例拟合后直接挂载的属性,不需要通过cv_results_访问。
  • 第二个报错原因:scikit-learn中所有拟合后才生成的属性都会以下划线结尾,TransformedTargetRegressor初始化时传入的regressor是未拟合的原始模型实例,拟合完成后的训练好的模型存储在regressor_属性中,访问未拟合的LinearRegression自然不存在coef_属性。

正确获取系数的代码

# 从Pipeline中取出GridSearchCV实例
grid_search = mlr_co2.named_steps['gridsearchcv_lr']
# 取出最优的TransformedTargetRegressor实例
best_ttr = grid_search.best_estimator_
# 取出拟合完成的LinearRegression实例,获取系数
lr_coef = best_ttr.regressor_.coef_
print(lr_coef)

如果需要将系数和原始特征对应,可补充以下代码从预处理步骤获取特征名:

import pandas as pd
# 从Pipeline中取出预处理器实例
preprocessor = mlr_co2.named_steps['preprocessor']
# 获取预处理后的特征名称
feature_names = preprocessor.get_feature_names_out()
# 组合生成特征-系数对应表
coef_df = pd.DataFrame({
    'feature': feature_names,
    'coefficient': lr_coef
})
print(coef_df)

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.09.29 09:27:06