数据与特征

数据清洗(data cleaning)

/ DAY-tuh KLEE-ning /

现实世界里的数据来时是乱的,就像刚从田里拔出、还沾满泥土的蔬菜。有错别字、空白格、五花八门写法的日期、带着多余货币符号的价格,同一位顾客以略有出入的名字被录入了两遍。数据清洗,就是在模型见到它之前,把这一切洗净、理顺的那份不光鲜却必不可少的工作。

具体说来,清洗包括:修正或剔除明显错误,统一格式(同一种日期写法、同一种度量单位),去除重复行,规范文本(让「NYC」和「New York City」被认作同一地方),决定如何处理缺失值,以及标出不可能的条目,比如一个200岁的人或负数的体重。目标是得到准确、一致、可信的数据——未必完美,但要好到让其中的规律是真实的,而非粗心造成的假象。

为何重要:垃圾进,垃圾出。模型会忠实地学到数据里的一切,包括其中的错误,因此脏数据会悄无声息地毒化下游的一切。实践中,数据科学家常常把一个项目的大部分时间花在清洗与准备上,而非建模本身。这活儿乏味,却往往正是模型可靠性获得最大提升的地方。

在一张销售表里,你发现「$1,200」「1200 USD」和「1.2k」指的是同一个金额;城市列里有「Beijing」「beijing」和「Peking」;还有用999当作「未知」占位的年龄。清洗会把它们变成一列干净的数字、一个规范统一的城市名,以及一个诚实标出的「年龄缺失」标记。

一个金额、一座城市的三种写法,加一个假年龄——清洗让它们变得诚实而一致。

清洗是为了去掉错误,而不是去掉不顺心的真相。仅仅因为某些行拉低了模型分数就删掉它们,或把数值「修正」成你期望看到的样子,这不是清洗——而是在偷偷制造结论。

又称
data cleansingdata scrubbing数据清洗数据清理資料清理