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

如何在使用Logistic Regression时打印特征重要性有序列表?

逻辑回归输出特征重要性(含特征名称)的实现方案

可以实现该需求。逻辑回归的拟合系数本身可用于表征特征重要性,结合你使用的RFE的内置属性,就能同时输出特征名称和对应的重要性排序,具体实现如下:

代码实现

假设你使用的训练特征为DataFrame格式(可直接提取列名作为特征名),在你现有代码的基础上,补充以下代码即可得到排序后的特征重要性列表:

import pandas as pd
import numpy as np

# 提取所有原始特征名,若你的训练数据不是DataFrame,可替换为自己存储的特征名列表
feature_names = X_train_SMOTE.columns

# 1. 提取RFE的特征筛选结果和排名
selected_mask = log_reg_model.support_
rfe_rank = log_reg_model.ranking_

# 2. 提取最终训练好的逻辑回归的系数,取绝对值作为重要性数值(正负仅代表影响方向)
lr_coef = log_reg_model.estimator_.coef_[0]
feature_importance = np.abs(lr_coef)

# 3. 拼接为DataFrame并筛选被RFE选中的特征
feature_df = pd.DataFrame({
    "特征名称": feature_names,
    "是否被RFE选中": selected_mask,
    "RFE排名": rfe_rank
})
selected_feature_df = feature_df[feature_df["是否被RFE选中"]].copy()
selected_feature_df["特征重要性"] = feature_importance

# 4. 按重要性从高到低排序输出
sorted_importance = selected_feature_df.sort_values("特征重要性", ascending=False).reset_index(drop=True)
print(sorted_importance)

注意事项

  • 上述代码适用于二分类场景,如果你是多分类任务,逻辑回归的coef_会返回每个类别对应的系数,可根据需求取对应类别的系数,或对每个特征的所有类别系数取平均值/最大值作为整体重要性。
  • 如果你需要保留特征对结果的影响方向,不需要对系数取绝对值即可,正系数代表特征值越高,样本被判定为正例的概率越高,负系数则相反。
  • 如果你不需要提前用RFE筛选特征,直接使用未经过RFE封装的逻辑回归模型计算重要性的话,直接取log_reg_model.coef_计算即可,不需要通过estimator_属性获取。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.09.26 14:06:03