我可以在逻辑回归中拥有太多特征吗?

Can i have too many features in a logistic regression?

我正在构建一个模型,根据 data set 的 170 万条记录来预测纽约街头的行人伤亡情况。我决定从 ON STREET NAME 列中构建虚拟特征,以查看可能提供的预测能力。这样,我就有了大约 7500 个特征。

我试过 运行,我立即收到 Jupyter 内核死机的警告。再次尝试,同样的事情发生了。考虑到模型拟合需要多长时间,以及计算机运行的热度,当我尝试拟合 100 个特征时,我只能假设 LogisticRegression() 不适合处理这样的特征集。

两个问题:

  1. 是这样吗,逻辑回归是为了处理更小的特征集吗?
  2. 有没有什么方法可以减轻这种情况,并在这样的特征集上应用逻辑回归模型?

你至少应该提供一个日志,或者一个我们可以重现的例子,这样其他人就可以确定问题所在。 旁注 7500 个功能和 170 万行,假设每个元素都是浮点数,您在那里获得了大约 48 GB 的数据,ram 可能是一个主要问题。

  1. Logistic 回归是一个非常简单的模型,虽然它可以处理大量数据,但它不适用于复杂的数据,它的性能表现平平。您在这里崩溃的问题可能是为了训练,使用了最小二乘法,它要求所有数据都在 ram
  2. 对于大型数据集,应使用梯度下降变化,这将允许您训练数据并应用逻辑回归。有了这么多数据,您可以使用更复杂的模型来获得更好的结果。

最后,PCA 等特征缩减方法或某些特征选择方法可能会有所帮助,因此您无需更改模型