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

Posted

技术标签:

【中文标题】机器学习中的大量特征不好(回归)?【英文标题】:Large number of features in Machine Learning is bad (regression)? 【发布时间】:2016-03-08 15:08:48 【问题描述】:

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

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

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

【问题讨论】:

【参考方案1】:

@stellasia,好的开始!

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

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

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

SKLearn 不错。 SciKit 也是如此。如果您知道如何编写底层矩阵方程,Octave 和 MatLib 就非常好。

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

【讨论】:

【参考方案2】:

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

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

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

    一旦您对似乎有贡献的功能有了更好的了解,您就可以使用一些功能选择算法(例如,如果您使用的是 python,则包含在 sklearn 中的算法)

【讨论】:

以上是关于机器学习中的大量特征不好(回归)?的主要内容,如果未能解决你的问题,请参考以下文章

处理回归(机器学习)中分类特征的未分配(空)值?

机器学习实战------利用logistics回归预测病马死亡率

处理回归(机器学习)中特征的未分配(空)值?

机器学习:逻辑回归(使用多项式特征)

零基础学Python--机器学习:机器学习算法和开发

菜鸟笔记Python3——机器学习 逻辑回归算法