训练LinearRegression(ElasticNet)模型后如何将系数与对应特征匹配
完整实现代码
import pandas as pd # 提取GridSearchCV调参后的最优模型 best_model = grid_model.best_estimator_ # 特征名要和训练时输入的特征顺序完全一致,这里用你原始数据集的列名即可 feature_list = df.columns # 提取最优模型的系数数组 coef_list = best_model.coef_ # 生成一一配对的DataFrame feature_coef_df = pd.DataFrame({ '特征名称': feature_list, 'SalePrice相关系数': coef_list }) # 筛选系数不为0的特征,并按系数绝对值从大到小排序,方便直接查看强相关特征 non_zero_coef_df = feature_coef_df[feature_coef_df['SalePrice相关系数'] != 0].sort_values( by='SalePrice相关系数', ascending=False, key=lambda x: abs(x) ) # 打印结果 print(non_zero_coef_df) # 可选:导出为csv文件存到本地 # non_zero_coef_df.to_csv('房价相关特征系数表.csv', encoding='utf_8_sig', index=False)
注意事项
- 必须保证
df.columns的特征顺序和你训练时输入scaled_X_train的特征顺序完全一致,否则会出现特征和系数配对错误的问题 - 系数为正代表该特征和房价呈正相关,系数为负代表呈负相关,绝对值越大相关性越强
- 如果你的训练集
scaled_X_train是DataFrame格式,也可以直接用scaled_X_train.columns代替df.columns,不会出现顺序不一致的问题
内容的提问来源于stack exchange,提问作者Nooby
相关产品推荐
相关产品推荐

