在数据量不足的情况下,用那种数据挖掘模型效果会更好?

雷天琪

法国电信 机器学习实习生

巴黎综合理工学院(École Polytechnique)

知乎链接:http://www.zhihu.com/question/35649122/answer/64675192

我们在机器学习的案例中经常会陷入一种情况,即数据量不足,或者在维度过高的情况下,数据量相对不足。 如果是维度过高造成的数据量不足(维度灾难),我们可以用降维的方式来“缓解压力”,但是在某些情况下,即使降维之后,我们依然没有足够的数据。 比如一次调查中,我们只获得了几千份样本,那么,在数据量已经固定且很少的情况下,我们可以用什么方法,或者哪种模型来取得更好的预测性能?为什么?

我还是写一些自己的理解。

其实这里所说的数据量不足,可以换一种方式去理解:在维度高的情况下,数据相对少。

举一个特例,比如只有一维,和1万个数据,那么这种情况下,我们可以认为数据量其实是足够的,因为数据密度相对来说很高。

如果数据的维度有1000维,数据量仍然有1万,这种情况下,数据的密度就相当低了。 引用wiki里的两句话: - The common theme of these problems is that when the dimensionality increases, the volume of the space increases so fast that the available data become sparse. This sparsity is problematic for any method that requires statistical significance. In order to obtain a statistically sound and reliable result, the amount of data needed to support the result often grows exponentially with the dimensionality. - With a fixed number of training samples, the predictive power reduces as the dimensionality increases, and this is known as the Hughes effect or Hughes phenomenon

简单的翻译过来就是,当维度增加的时候,训练所需要的数据量需要成指数级别的增长才能满足要求。 维度很高,且数据量不足的情况下,训练模型仅仅是去“记忆”数据,而不是去“学习”数据。因为对于高维度来说,空间的自由度非常大,在数据量相对不高的情况下,其实每一个数据都可以看成是一个“特例”,这也是造成过拟合现象的原因。 但是,高维度的情况下也有一个好处:既然空间的自由度很高,那么数据就更可能线性可分,在维度高到一定程度的时候,我们就可以认为其线性可分的概率为1 (其实这个观点是缺少严谨的数学验证的,可以参考:如何证明无穷多维的情况下,数据一定线性可分? http://www.zhihu.com/question/35610783/answer/64040353)。 所以得出的结论是,在数据量不足的情况下(相对于高维度下的数据量不足问题),我们可以使用线性分类器来解决问题,因为其“更可能线性可分”,比如,使用SVM来分类数据量少的问题。 最近做的一个项目就遇到了这个问题,从上面的分析的基础上,可以看出线性分类器可以保证在数据量很少的情况下的性能,但是我的实际项目不能验证这一点。 :( 我的实际项目中,效果最好的还是随机森林(可以应对线性不可分的情况),而SVM和其他的一些模型并无明显差别,唯一显著的效果是,False Positive很少,不过这一点在某些情况下很重要。至于原因,现在只能理解为数据中有错误。

数据量少的时候应该选择怎样的模型,其实只能回答『That depends』,机器学习领域一大类papers都是关于如何在存在假设的数据中寻找一种合适的表示(『降维』或『升维』),以提高分类器、回归器的性能。 不如,举出几个具体问题,比如数据的形式(图像或者文本,是否有缺失),数据的规模(样本数和维度大小),数据中存在的结构信息(稀疏、低秩)。这样更容易回答。 维度非常高1000多维度,并且每个维度都很重要,数据量很少,是调查结果,只有近万份,数据是很稀疏的,基本上是连续值。在这种情况下,如何选择模型?为什么? 这其实还是一个比较一般的问题,我尽量从一个比较一般的角度回答,描述的也都是一些常用的简单的做法,假设要做的是一个分类问题,我描述一下我拿到这样一份数据的做法(流程),面对实际情况,我们总是一步一步来,先分析数据,尝试最简单的方案,再作调整。已知:1000维的feature,近10000的sample,而且数据是稀疏的。 首先,尝试一下常用的线性分类器,比如SVM、LR这些,看训练误差和测试误差的差异,这个时候可能出现多种情况。 (1) 如果训练误差远小于测试误差,说明分类器已经过拟合了,考虑如何避免过拟合。

(2) 如果训练误差与测试误差差不多,但是测试误差太大,说明模型复杂度很可能不够。

(3) 如果训练误差与测试误差差不多,而且测试误差已经足够小,结束。 针对(1),这个时候产生了严重的过拟合,这意味着样本数目不够,一般我们没法补充样本。那么就要考虑如何采用提高泛化能力,如果数据没有很特别的性质(稀疏、低秩等),我们可以考虑添加一些常用正则化项,比如L2-norm,还可以使用一些常用的降维方法(其实也就是常用的假设),比如PCA(假设方差小的数据分布方向是噪声产生的)、LDA。如果数据中有一些性质,比如题主提到feature是稀疏的,由于数据来自『调查结果』,所以很多时候不是数据稀疏,而是数据不完整(被调查的对象没有提供这部分数据,而不是它没有这部分属性),那么可以通过补全这些feature来降低缺失带来的影响,比如假设样本构成矩阵,每一列有一个样本组成,那么我们可以对进行低秩分解,比如,这样的一个列就代表了的一个列,与的乘积又补全了,此时,用作为训练样本可能得到更好的结果。再比如,数据中存在大量的污染,一些废的feature其实对label影响不大,那么我们可以考虑去除一些feature,降低参数空间,从而提高泛化性,简单的方法是给训练参数加稀疏正则项,比如常用的L1-norm(要是觉得不够系数还可以用capped L1-norm、Lp-norm、SCAD、MCP这些更加稀疏的正则化项),来过滤掉不重要的feature。总而言之,要依赖于数据的特点(除了上面提到的特性,也许还存在正负样本不平衡等性质),设计出减小过拟合程度的方案。 针对(2),可以采用更加复杂的模型,比如带隐变量的模型,比较典型的就是Neural Network,当然这不是唯一的选择,还有决策树以及ensemble类的方法GBDT、Random Forest等。 针对不同情况选择合适的模型之后,观察现在的训练误差和测试误差。回到第(1),(2),(3)步,继续考察新方案。针对具体的业务问题,关键在于迭代得更新方案(不断优化泛化性能),发现数据的新的特性,最终设计出合适于具体业务的模型。

原文发布于微信公众号 - 大数据挖掘DT数据分析(datadw)

原文发表时间:2016-04-23

本文参与腾讯云自媒体分享计划,欢迎正在阅读的你也加入,一起分享。

发表于

我来说两句

0 条评论
登录 后参与评论

相关文章

来自专栏架构师之路

秒懂“线性回归预测”

线性回归是机器学习中的概念,线性回归预测算法一般用以解决“使用已知样本对未知公式参数的估计”类问题。

1092
来自专栏CDA数据分析师

一文看懂自动驾驶中应用的机器学习算法

机器学习算法已经被广泛应用于自动驾驶各种解决方案,电控单元中的传感器数据处理大大提高了机器学习的利用率,也有一些潜在的应用,比如利用不同外部和内部的传感器的数据...

23410
来自专栏AI科技评论

干货 | 三分钟重新学习交叉验证

AI 科技评论按:文章的作者 Georgios Drakos 是一名数据科学家,通过本文作者向我们介绍了交叉验证的基本概念、作用以及如何使用。AI 科技评论根据...

571
来自专栏应兆康的专栏

23. 处理偏差和方差

1106
来自专栏专知

【EMNLP2018】FAIR动态元嵌入:动态选择词嵌入模型

【导读】词嵌入已经彻底改变了自然语言处理(NLP)的世界。从概念上讲,词嵌入是一种语言建模方法,它将句子中的短语或单词映射到向量和数字。任何NLP应用程序的第一...

691
来自专栏小詹同学

机器学习,你不得不掌握的十大算法(上篇)

这是小詹关于机器学习的第①篇文章 ● 机器学习及其分类 我们知道,机器学习(Machine Learning, ML)是一门多领域交叉学科,涉及概率论、统计学...

3425
来自专栏新智元

【一图看懂】机器学习6大算法,优势劣势全解析

【新智元导读】我们将机器学习中最突出、最常用的算法分为三类:线性模型、基于树的模型、神经网络,用一张图表简明地指出了每一类的优势和劣势。 在机器学习中,我们的目...

4109
来自专栏数据科学与人工智能

【算法】机器学习算法的优点和缺点

从Logistic回归开始,然后尝试Tree Ensembles和/或Neural Networks。 奥卡姆的剃刀原理:使用最简单的算法,可以满足您的需求,并...

1270
来自专栏人人都是极客

Peter教你谈情说AI | 01导读

机器学习已经慢慢演变成了根据已知模型 + 框架运用的开发,用不了多久机器学习就会变成像多媒体,图形开发等一样,只要根据已知的 api 开发相应的 AI app ...

584
来自专栏企鹅号快讯

盘点实际项目应用中的最佳机器学习模型

关键时刻,第一时间送达! 作者简介:chen_h,AI 算法工程师,擅长利用 TensorFlow 处理 NLP 问题。曾任职蘑菇街(美丽联合集团)和 AI10...

2176

扫码关注云+社区