Logistic回归中可以包含太多功能吗?

问题描述

我正在建立一个模型,以根据data set的170万条记录来预测纽约街头的行人伤亡。我决定在ON STREET NAME列之外构建虚拟功能,以了解可能提供的预测能力。这样,我大约有7500个功能

我尝试运行该代码,然后立即收到Jupyter内核死亡的警报。再次尝试,发生了同样的事情。考虑到模型需要花费多长时间以及计算机运行的温度如何,当我尝试适应100个功能部件时,我只能假设LogisticRegression()并不意味着要处理这样的功能部件。

两个问题:

  1. 是这样吗,逻辑回归是否意味着可以处理更小的特征集?
  2. 是否有某种方法可以缓解这种情况,并在这功能集上应用逻辑回归模型

解决方法

您至少应提供日志或我们可以复制的示例,以便其他人可以确定问题。 旁注7500的功能和170万行(假设这是您在其中获得约48 GB数据的每个元素的浮动),内存可能会是一个主要问题。

  1. 逻辑回归是一个非常简单的模型,尽管它可以处理数量,但并不意味着对于复杂数据,其性能表现不佳。您在此处崩溃的问题可能是,为了进行训练,使用了最小二乘法,该方法要求所有数据都在ram中
  2. 对于大型数据集,应使用梯度下降变化,这将允许您训练数据并应用逻辑回归。拥有如此多的数据,您可以使用更复杂的模型来获得更好的结果。

诸如PCA之类的最终特征缩减方法或某些特征选择方法可能会提供足够的帮助,因此您无需更改模型