机器学习中的大量功能很糟糕(回归)?

时间:2015-12-03 20:28:50

标签: machine-learning regression linear-regression feature-selection

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

我有这些功能:
区,微区,住宅社区,建筑年份,房屋建筑材料,房间数,楼层,总面积,生活区域,条件,地板材料,浴室类型,阳台,门类型,固定电话,互联网连接类型,停车场可用性,家具供应,天花板高度,安全性。

拥有如此多的回归功能是否正常?这些功能是否适合对公寓进行线性回归分析?可能是因为冗余会减少功能数量并摆脱一些功能?在我的情况下(公寓价格预测)中的大量功能是否可能导致过度拟合?

2 个答案:

答案 0 :(得分:2)

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

  1. 查看制作直方图,相关图的数据......例如,房间的面积和数量可能高度相关......

  2. 如果要执行线性回归,则必须确保与目标变量(即价格)的关系确实是线性的:可能需要使用原始要素的某些函数来获得线性关系< / p>

  3. 一旦您对所提供的功能有了更好的了解,您就可以使用一些功能选择算法(例如,如果您使用的是python,那么打包在sklearn中)

答案 1 :(得分:1)

@stellasia,好开始!

是的,拥有这么多功能很常见:抓住你认为可能需要的所有东西,然后让你的分析工具(或个人研磨)表明什么不是需要。添加一些你没有的东西是非常困难的。

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

之后,对所有剩余的特征进行完整的相关矩阵;那些在+1.00或-1.00附近的西格玛表示你可以消除这些因素中的任何一个:他们相互预测得很好,你不需要两者。

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

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