明显错误的离群值(outlier)
比如某个人的年龄数据显示为175。
缺失数据
表格中有一些信息空缺,没有记录,如表4-3所示。
设想一下,假如我们遇到表4-3这样的原始数据,想必一定会很头疼吧。如果不做数据清洗,后面的模型分析等操作根本就是寸步难行。然而数据乱不等于它没有分析价值,只要经过专业的数据清洗和特征工程处理,我们仍然能得到出色的分析效果。现实中数据来源纷杂多样,绝大多数做机器学习的人都需要花费大量时间进行数据预处理和清洗。
那么,如何清洗数据呢?对于离群值(见图4-10),很多人会把离群值所在的记录去掉或者用缺失值代替,但其实很多时候这样做并不是最好的选择。离群值通常指样本中偏离均值较大的数据,在图像中通常处于“孤立”的位置。离群值所表示的数据很可能是有问题的。然而,离群值在被证明“有罪”之前都是清白的,仅当有确切、合适的理由的时候才可以去掉它,并且这样做能够提高模型的预测效果。因为“数值太大”,草率地将其去掉是不可取的,因为这个“大数值”本身可能包含了一定信息。最后无论怎样,离群值所在行的其他特征数据依然是清白的,所以这一条记录不能因为一个特征出现离群值就去掉。
对于缺失值,有几种常见的处理方式。第一种处理方式是用均值或者众数等进行填充。这样做的好处是比较快捷、方便,但可能不是最合理的方式。当缺失值比例较大时,这样做等于人为地向数据集中添加了噪声,因为这些数据并不是真实、准确的信息,从而可能会影响我们对结论的判断。类似的填充方式还有根据前后数值填充、插值填充、模型拟合填充等。第二种处理方式是去掉该特征。当一个特征大部分值都缺失时,如果我们认为这个特征对分析没有帮助,去掉该特征也并非不是一个可取的方法。第三种处理方式是保留缺失值的信息。对于分类型变量,我们可以将缺失值作为新的一类。
人工智能与大数据技术导论
144