“如果我能获得更多的训练数据,我的模型精度就会大大提高”,“我们应该通过API获得更多的数据”,“源数据质量太差,我们无法使用”。
这是很多工程师在模型表现不力时给出的一些解释或者理由。
数据作为机器学习或分析项目的基础,虽然现在拥有的可用数据比之前要多,但是数据不足或者数据类型不匹配等问题并不少见。
然而如何知道这些问题是真正的问题点还是仅仅是借口呢?换句话说,如何发现数据是否是项目的限制因素?
那就需要,查找数据瓶颈!
一般来说,主要可以从以下三个方面来调整数据:
-
深度:增加数据点的数量
-
广度:增加数据源的多样性
-
高质量:整合混乱的数据!
一:从数据深度上下功夫
这种方式不需要改变数据结构,而是新增数据点。
你不能一直控制数据点(例如:你不能轻易地新增用户),但是至少可以在某些方面一直控制这个点。
在下面这几个不同的情况下,增加数据量是很有用的。
1、A/B测试或实验
如果你正在运行一个实验,需要足够的数据点来实现结果统计的意义,而需要多少个数据点,还受到其他因素的影响,例如:误差范围、置信区间和分布的方差。对于要进行的每一个实验,都有一个最小数据量阈值:如果已经达到这个阈值,则可以继续进行下一步,因为再增加数据点已经起不到任何作用了。否则,数据将会成为实验的瓶颈。下面这篇博文对此进行了很好的概述:
https://towardsdatascience.com/how-do-you-know-you-have-enough-training-data-ad9b1fd679ee
2、机器学习中的预测精度
如果你正在运行的是一个预测模型,预测精度会随着数据量的增加而提高,但是这个精度会达到某个“饱和”点,如何去发现是否已经达到这样的一个点呢?你可以用不同数量的训练数据点来重新训练模型,然后根据数据量绘制预测精度。如果曲线没有变平,则模型可能从额外增加的数据进一步受益。
来源:Kim 和 Park 在 researchgate 上发表的文章
https://www.researchgate.net/publication/228784109_A_Survey_of_Applications_of_Artificial_Intelligence_Algorithms_in_Eco-environmental_Modelling)
3、赋能深度学习
虽然传统的机器学习模型可以在较小的数据量下运行,但是模型越复杂,它需要的数据量就越多,到最后,如果没有大量的数据作为支撑,深度学习模型就无法运行。对机器学习模型来说,大数据是一种需求,而不是提高性能的好方法。
4、分析和思路
即使你没有将数据用于预测,但是想要丰富报告或者进行一次分析来证实你的决策,数据量仍然有可能会成为预测的瓶颈。不过如果你的数据具备许多异构性,并且你还能够从不同的粒度层级上对其进行分析,增加数据量便是正确的做法。例如你有一个庞大的销售队伍,销售的产品范围非常宽泛,每一个销售人员可能只销售产品中的一个子集。如果你想比较他们在销售某一特定产品方面的能力,可能就无从比较了。
二:从数据广度上下功夫
数据的多样性是关键,但就经验而言,这方面的数据也常常被高估。
我之前有一份工作:便是在一家初创公司用机器学习做房价预测。我们的战略优势是拥有各种各样的数据,因此可以整合所有可能的数据资源,以帮助对房地产进行预测。
而提高模型的预测能力的关键,就在于确定要获取哪些数据资源。
如何评估获取新数据的成本与收益?
我们需要从两个关键点对新数据的收益进行评估:新数据与我们试图预测的目标变量的相关性是什么(希望尽可能高),新数据与已有数据的相关性是什么(希望尽可能少)。但是,这并不容易定量分析,但是一些定性的判断可以帮助我们筛选出最合适我们的新数据。
评估新数据的成本可以看作是拥有数据的总成本。有时,购买数据或支付API会产生实际成本,但这只是其中的一部分。往往如下这些因素才是最需要考虑的:
-
一次性获取 vs 反复获取
-
数据转换和存储的复杂性
-
数据质量和数据清理的需求
-
数据处理和解析
三:提高数据质量
哈佛大学教授Xiao-Li Meng曾做过一个非常鼓舞人心的演讲,他提到:“数据质量远比数据数量重要”。
这个演讲的美妙之处在于,他能够用数学方法量化这句话,观察数据质量或数量的统计度量。
观看演讲地址:
https://www.youtube.com/watch?v=8YLdIDOMEZs
我的商业经验也反映了这一点:通常情况下,公司往往在获取或合并更多的数据前,并没有先分析当前现有数据是否已足够。
数据质量经常是一个问题,而且还是一个大问题。这个问题可能是由于手工输入错误、原始数据的不准确性、聚合或处理层中的问题、某段时间内数据丢失等原因造成的。
提高数据质量,是一个需要花费大量时间并且很无趣的工作,但是它也可以给我们带来最有益的的结果。
四:总结
如果模型表现不佳确实存在数据瓶颈,那就试着找出瓶颈在哪里。总而言之,可以从这三个方面入手:
第一,数据量的问题往往可以通过简单的统计显著性或准确性曲线来检验识别。如果这不是问题所在,那就继续进行下一步。
第二,根据我的经验,我们所拥有的数据的多样性往往被夸大,这并不是因为新数据没有用处,而是因为新数据资源可能已经包含了以某种方式捕获的信息,特别是在已经有了一个相对丰富的数据集的情况下。
第三,数据质量是关键,关注更小、更干净的数据集比关注更大、更混乱的数据集要好得多。