如何执行具有大量功能的Logistic回归?


10

我有一个包含330个样本和每个样本27个特征的数据集,以及Logistic回归的二元类问题。

根据“十个规则”,每个功能至少需要包含10个事件。虽然,我有一个不平衡的数据集,有20%的正类和80%的负类。

这仅给我70个事件,因此Logistic模型仅包含大约7/8个功能。

我想将所有功能评估为预测器,但我不想手工选择任何功能。

那你有什么建议呢?我应该将所有7种功能组合在一起吗?我应该使用关联模型单独评估每个功能,然后只为最终模型选择最佳功能吗?

我也对分类和连续特征的处理感到好奇,可以混合使用吗?如果我有类别[0-1]和连续[0-100],我应该归一化吗?

我目前正在使用Python。

非常感谢你的帮助!


“我也对分类和连续特征的处理感到好奇”,我认为这将是一个单独的问题。实际上,这里已经有人问过了
E_net4邮政保洁员

2
没有足够的样本和不相关的特征之间是有区别的。由于一些简单的规则,我不会过多地专注于选择恰好7个功能...
oW_

1
无论如何都要做:使用交叉验证来优化正则化。我建议使用弹性网(L1 + L2)。
Emre

Answers:


6

为了将模型减少到7个变量,您可以采取以下几种方法:

  1. PCA(无监督):这将创建数据的“新”线性组合,其中每个过程组件都将尽可能解释数据的差异。因此,前7个组件(共27个组件)应该能够解释数据变化的很大百分比。然后,您可以将这七个组件插入逻辑回归方程。这里的缺点是,因为这些组件是原始变量的组合,所以您使用回归模型会失去一些可解释性。但是,它应该产生非常好的准确性。此技术适用于其他降维方法,例如
  2. 回归中的另一种常见方法是逐步进行,其中从一个变量开始,然后在每个步骤中添加另一个变量,该变量根据某些条件(通常是BIC或AIC分数)保留或删除。向后逐步回归是一回事,但是您要从所有变量开始,然后根据某些条件再次删除一个。基于一个简短的搜索它似乎并不认为Python已经逐步回归,但他们确实在此描述的类似特征消除算法数据科学职务
  3. 大号1个大号1个

正如@ E_net4所评论的那样,您的连续问题在另一篇文章中得到了解决。


5

您过于重视“ 10条规则”。这是一个非常粗略的经验法则。不能像使用它时那样使用它。

听起来您在想:“我只有70个肯定实例,因此按照10的规则,我只能使用7个功能;如何选择要使用的7个功能?”

那不是十法则的意思。这不是指定允许您使用多少功能的规则。10规则是描述性的,而不是描述性的,它是一个近似准则:如果实例数量少于要素数量的10倍,那么您过度拟合的风险就很高,结果可能会很差。

那你该怎么办?无论如何,您应该做自己想做的事情:使用正则化,并使用交叉验证选择正则化超参数。同样,在完成关于分类器的所有操作之前,不要触摸保持测试集也很重要,以避免过度拟合和准确性估计偏差。

而且,如果您可以获得更多数据,那将真正有帮助。

最后,由于类不平衡,您可以考虑阅读有关类不平衡及其处理方法的信息。

By using our site, you acknowledge that you have read and understand our Cookie Policy and Privacy Policy.
Licensed under cc by-sa 3.0 with attribution required.