我正在使用逻辑回归进行二元分类。我有一个大数据集(恰好高度不平衡:19:1)。因此,我使用 scikit-learnLogisticRegression()
对 80% 的标记数据进行训练,然后用另外 20% 进行验证(我查看了 ROC 下的区域以及精确召回,因为数据非常不平衡;我还使用了该模型class_weight='auto'
)。
我的主要问题如下:一旦我开始生成未标记输入向量的预测(使用predict_proba()
),我如何判断哪些特征对特定输入的预测贡献最大?我想这可能与基于标记的训练数据(例如系数大小)的模型通常确定的“最重要特征”不同。
我有一个非常基本的想法:
将我的输入特征值与我的特征系数的绝对值相乘。贡献最大的特征就是对应于具有最大值的条目的特征。
做 (1) 但对所有内容(训练和输入特征)使用 z 分数。我认为这很重要,因为我担心某些功能范围可能与其他功能范围非常不同,而仅采用产品可能无法捕捉到这一点;但我想这些系数应该反映范围,所以也许这并不重要。
任何想法将不胜感激,因为我是新手。逻辑回归特有的东西(即 sigmoid 而不仅仅是线性函数)以及任何关于如何在 scikit-learn 中实现特定动作(例如变换)的参考将不胜感激,因为我实际上正在使用真实数据进行项目。