1.1.3 数据预处理
从互联网上获取的数据大多是含有噪声的数据(Dirty Data),这种数据要么有缺失值,要么字段不规范,如果不先做数据预处理就进行数据分析,那么,就会印证数据分析的名言:“Garbage in,Garbage out。”
即便是从组织内部数据库或Excel获取的数据,也需要对其进行检查,确认无误后方能进行下一步分析。针对不同的数据类型,数据预处理要采用不同的方法。
(1)数值型数据
数值型数据的数据预处理具体如下。
①读入数据后,先检查数据对象类型,查看字段及记录条数。
②检查有无缺失值,缺失值数据需要进行处理。
③如果是连续型数值数据,需要检查数据的分布情况以及有无异常值,异常值数据需进行处理。
④如果是类别数值数据,需要检查有无缺失类别或类别分布异常的情况。
⑤在R语言中,需要注意的是,类别数值数据如果是以字符形式(如“BJ”代表北京)表示的,那么,需要检查是因子型还是字符型。
(2)文本型数据
文本型数据的数据预处理具体如下。
①读入数据后,先检查数据对象类型(在R语言里一般list居多),查看字段及记录条数。
②检查文本数据有无乱码或异常字符,如有,要用正则表达式进行处理。
③如果读入的文本数据是中文字符,且后续需要分析,那么,需要先做中文分词(在R语言里用jiebaR分词包)。
④如果读入的文本数据后续要基于词向量(Word Embedding)分析,那么,还需要用word2vec对语料文本进行词向量预处理(建议在Python里实现,用scikit-learn包里的word2vec)。
⑤Python中的文本处理一般用nltk包(详细介绍可参考网址:http://www.nltk.org/)。
这里仅对数据预处理进行简要介绍,详细操作会在本书的后续章节结合实例详细展开。下面介绍数据分析的相关流程。