数据处理
数据处理
构建机器学习系统时,对数据集的处理方法将影响你个整个构建过程中的进度。通过前面已经知道,一般把收集到的现有数据分为训练集、开发集和测试集,其中开发集也称为交叉验证集。构建机器学习系统时,采用一些不同的方法,在训练集上训练出不同的模型,随后使用开发集对模型的好坏进行评估,确信某个模型效果足够好时再用测试集进行测试。
首先需要注意的是,开发集和测试集的来源应该是相同的,且必须从所有数据中随机抽取,选择的开发测试集也要尽可能和以后机器学习系统要面对的数据一致,这样才能做到尽可能不偏离目标。
其次需要注意每个数据集大小的划分。在早期的机器学习时代,对于你拥有的所有数据集,通常就是把其中的70%作为训练集,剩下的30%作为测试集;或者要加入开发集的话,就把60%作为训练集,开发、测试集各取20%。当获得的数据比较少的时候,这种划分是合理的。但到了现在的机器学习时代,获得的数据数量一般都是成千上万的,这时就不能按传统的数据划分法来划分了。
假如获得了一百万个数据样本,将其中98%的数据都作为训练集,而只要将1%的也就是一万个数据作为开发集,1%的数据作为测试集就足够了。所以要根据实际情况,进行数据划分,而不是死板地遵循着传统。测试集的大小应该设置得足够提高系统整体性能得可信度,开发集的大小也要设置得足够用于评估几个不同的模型。