在做机器学习之前需要对数据进行数据预处理,下面介绍几种数据预处理的方法,配合着前面讲到的数据结构看会比较好。数据预处理有四个任务:数据清洗、数据集成、数据变换、数据规约。
1、数据清洗
目的: 去除数据集中的噪声和无关数据、缺失值。
方法:监督学习、无监督学习方法
监督学习方法是手工去除噪声数据和无关数据、填补缺失值等。
无监督学习方法是计算机自己根据设定算法做数据清洗。
数据量大的时候,可以先进行无监督学习,在进行监督学习方法。
数据清洗规则:空值的检查和处理;非法值的检测和处理;不一致数据的检测和处理;相似重复记录的检测和处理。
2. 数据集成
合并来自多个数据集的数据
3. 数据变换
数据被变换或统一成适合数据挖掘的格式。
4. 数据规约
数据规约是降低数据规模的方法。
实战:处理缺失值的方法
核心思想:删除缺失值或者用合理的值进行替代
分为以下三步:
1)识别缺失值
可以使用第三方包VIM来进行识别
使用complete.case(),查找没有缺失
的行。
使用!complete.case(),查找
缺失
的行
查看缺失值、缺失值比例以及数据集缺失值比例。
sum(is.na(sleep
Dream)),意思是查看该维度缺失值比例。
mean(is.na(sleep$Dream)),同上一部分。
那么查看数据集中含一个或多个缺失值比例,这么去查:
2)缺失值图形化表示
矩阵形式表示:
使用mice包中md.pattern生成完整或缺失数据框。
如第一行所示,表示42个数据一个缺失值没有。
图形形式表示:
需要使用VIM包进行可视化缺失值表示。
使用aggr(sleep,prob=FALSE,numbers=TRUE),使用aggr做缺失值汇总,prob表示概率,numbers表示数量。