机器学习中的大量特征不好(回归)?

Large number of features in Machine Learning is bad (regression)?

我正在对公寓特征进行线性回归分析,然后预测公寓的价格。目前,我已经收集了我所在城市 13000 套公寓的特征。我有 23-25 个特征,我不确定在公寓价格预测中有这么多特征是否正常。

我有这些特点:
小区、微区、住宅小区、建筑年份、房屋建筑material、房间数、层数、总面积、居住面积、条件、楼层material、卫生间类型、阳台、门类型、固定电话、互联网连接类型、停车位可用性、家具可用性、天花板高度、安全性。

回归有这么多特征正常吗?这些特征适合做公寓的线性回归分析吗?由于冗余,减少功能数量并摆脱某些功能可能会更好?我的案例(公寓价格预测)中的大量特征是否可能导致过度拟合?

您是如何找到这些功能的?您是否已经 运行 数据集上的特征选择算法?我真的很怀疑。我不知道您已经遵循了哪些步骤,但是在开始机器学习问题时,您首先必须对数据有一些直觉:

  1. 看数据做直方图,相关图...比如面积和房间数可能高度相关...

  2. 如果要进行线性回归,必须确保与目标变量(即价格)的关系确实是线性的:可能需要使用原始特征的某些函数来得到线性关系

  3. 一旦你更好地了解似乎有贡献的特征,你可以使用一些特征选择算法(例如,如果你使用 python)

@stellasia,好的开始!

是的,拥有这么多功能很常见:抓住您认为 可能 需要的所有内容,然后让您的分析工具(或个人研磨)建议不需要的内容.很难添加你没有的东西。

您可以从 运行 通过线性回归建模器开始。如果你没有,运行 每个特征与价格的相关系数;这可以让你消除那些接近 0 的(没有明显的效果)。

之后,对剩下的所有特征做全相关矩阵;那些 sigma 接近 +1.00 或 -1.00 的人表明您可以消除这些因素中的任何一个:它们相互预测得很好,因此您不需要两者。

SKLearn 很好。 SciKit 也是如此。如果您知道如何编写底层矩阵方程,Octave 和 MatLib 会非常出色。

我还可以推荐开源包 TrustedAnalytics(我是该项目的软件负责人之一)。 Python API 非常适合数据科学,但它 一个大数据包:它位于您可能没有的其他工具之上。