1. 前言
机器学习中最值得问的一个问题是,到底需要多少数据才可以得到一个较好的模型?从理论角度,有Probably approximately correct (PAC) learning theory来描述在何种情况下,可以得到一个近似正确的模型。但从实用角度看,PAC的使用范围还是比较局限的。
所以今天我们主要想讨论一个问题:到底如何定义有效数据量。
2.数据的粒度
数据的粒度可以理解为数据的细分程度,或者具体程度。举个简单例子,我们想预测股票的走势,那么我们可以得到以下历史数据:
每秒钟的交易数据
每分钟的交易数据
…
每年的交易数据
换成另一个场景,如果我们打算对一个句子进行截断,“我今天真高兴”,那么结果可以是:
我 | 今 | 天 | 真 | 高 | 兴
我今 | 今天 | 天真 | 真高 | 高兴
我今天 | 天真高 | 高兴X
随着细分程度的改变,那么数据量也有明显的变化。数据的粒度越细,数据量越大。一般来说,我们追求尽量细分的数据,因为可以通过聚合(aggregation)来实现从具体数据到宏观数据的还原,但反之则不可得。
但是不是数据越具体越好?不一定,过于具体的数据缺失了特征,有效的特征仅在某个特定的粒度才存在。打个比方,人是由原子、分子、细胞、组织、器官构成,但在分子层面我们不一定能分辨它是人,只有到达一定的粒度才可以。因此,数据收集的第一个重点是搞清楚,在什么粒度可以解决我们的问题,而不是盲目的收集一大堆数据,或者收集过于抽象的数据。