关键词:
目录
第五章 数据清洗与检验
常见的数据清洗操作包括重复值的处理、缺失值的处理、异常值的处理等操作。
5.1 数据去重
数据去重又称重复数据的删除,找出数据文件中重复的数据并将其删除,只保存唯一的数据单元,从而消除冗余数据。数据去重方法分为完全去重和不完全去重。
5.1.1 完全去重
完全去重指的是消除完全重复的数据。例如两份分别记录不同年份的用户数据信息的表格合并,发现合并后的表格存在完全重复的数据,为了便于使用这些用户数据信息,需要进行数据去重操作。
5.1.2 不完全去重
数据清洗过程中,所有字段值都相等的重复值是一定要剔除的。根据不同的业务场景,有时还需要选取其中若干字段进行去重操作。
5.2 缺失值处理
缺失值是指数据集中某个或者某些属性的值是不完整的,产生的原因主要有人为原因和机械原因两种。机械原因是由于机器故障造成数据未能收集或存储失败,人为原因是由主观失误或有意隐瞒造成。
5.2.1 缺失值清洗策略
下面通过一张图描述缺失数据的缺失率以及重要性划分的四种情况。
5.2.2 去除缺失值
数据缺失分为两种:一种是行记录的缺失,这种情况又称数据记录丢失;另一种是列值的缺失,即由于各种原因导致的数据记录中某些列的值空缺。
5.2.3 填充缺失值
数据挖掘中面对的通常都是大型的数据库,它的属性有几十个甚至几百个,因为某个属性值的缺失而放弃大量其他属性,这种删除是对信息的极大浪费,所以产生了插补缺失值的思想与方法。
常用的填充缺失值的方法是:均值填充、 热卡填充、回归填充、多重填充。
本章习题
四、操作题
1.通过kettle工具,实现一下功能:
(1)对文件进行完全去重
(2)对文件中缺失值进行填充
(1)完全去重
1. 打开kettle工具,建立转换
新建转换,添加“CSV文件输入”、“唯一行(哈希值)”控件以及Hop跳连接线。如图5-1。
图5-1
2. 配置”CSV文件输入“控件。
双击”CSV文件输入“控件,进入”CSV文件输入”界面;单击“浏览”按钮,选择需要进行完全去重处理的CSV文件;单击“获取字段”按钮,kettle自动检索CSV文件;单击“预览”按钮,查看CSV文件数据是否加载到CSV文件输入流中,如图5-2。可以看到已经完成抽取,单击“关闭”→“确定”按钮,完成配置。
图5-2
3. 配置“唯一行(哈希值)”控件。
双击“唯一行(哈希值)”控件,进入“唯一行(哈希值)”界面;在“用来比较的字段”处添加要去重的字段,可以单击“获取”按钮,添加需要去重的字段;单击“确定”按钮完成“唯一行(哈希值)”控件配置。如图5-3。
图5-3
4. 运行转换
单击工作区顶部的按钮,运行转换。如图5-4。
图5-4
(2)缺失值填充
1. 打开kettle工具,创建转换
新建转换,添加”文本文件输入“控件、”过滤记录“控件、”空操作(什么也不做)“控件、”替换NULL值“控件、”字段选择“控件、“合并记录”控件以及Hop跳连接线。如图5-5。
图5-5
2. 配置“文本文件输入”控件
双击“文本文件输入”控件,进入“文本文件输入”界面;单击“浏览”按钮,选择需要填充缺失值的文件;再单击“增加”按钮,将要填充缺失值的文件添加到“文本文件输入”控件中;单击“内容”选择卡,切换到“内容”选择卡界面。如图5-6。
图5-6
在图5-6中清除分隔符处的默认分隔符“;”,单击“Insert TAB”按钮,添加一个制表符;取消勾选“头部”复选框,不取消则会在数据抽取时会排除文件第一行数据;单击“字段”选择卡。如图5-7。
图5-7
在“字段”选择卡界面,根据文件内容添加对应的字段名称,并指定数据类型,添加的字段都选择“不去掉空格”;单击“预览”按钮,查看数据是否抽取到文本文件流中,可以看到已经成功抽取,如图5-8;单击“关闭”→“确定”按钮,完成文本文件输入”控件配置。
图5-8
3. 配置“过滤记录”控件
双击图5-5中的“过滤记录”控件,进入“过滤记录”界面;在“条件”处设置过滤的条件,将过滤字段设置为workclass、过滤值设置为private作为过滤条件;在“发送true数据给步骤”:下拉列表中选择“空操作(什么也不做)”,将另一个选择“空操作(什么也不做)2”;单击“确定”按钮,完成“过滤记录”控件配置,如图5-9。
图5-9
4. 配置“替换NULL值”控件
双击5-5中“替换NULL值”控件,进入“替换NULL值”界面;勾选“选择字段”复选框,并在“字段”框添加字段hours_per_week,值替换为44(采用平均值填充,hours_per_week所有值求和的平均值);单击“确定”按钮,完成“替换NULL值”控件配置,如图5-10。
图5-10
5. 配置“合并记录”控件
双击图5-5中“合并记录”控件,进入“合并行(比较)”界面;在“旧数据源”:后的下拉列表选择“替换NULL值“,在”新数据源“:后的下拉列表下选择”空操作(什么也不做)2“;在”匹配的关键字“部分添加关键字段userid;单击”确定“按钮,完成配置。如图5-11。
图5-11
6. 配置”替换NULL值2“控件
双击图5-5中”替换NULL值2“控件,进入”替换NULL值2“界面;勾选”选择字段“复选框,并在”字段“框添加字段workclass,值替换为private;单击”确定“按钮,完成”替换NULL值2“控件配置。如图5-12。
图5-12
7. 配置”字段选择“控件
双击图5-5中”字段选择“控件,进入”选择/改名值”界面;在“移除“选择卡界面添加需要移除的字段名称flagfield;单击”确定“按钮,完成”字段选择“控件配置。如图5-13。
图5-13
8. 运行转换
单击转换工作区顶部的运行按钮。如图5-14。
图5-14
黑马程序员《数据清洗》学习笔记csvjson数据抽取
目录4.1抽取文本数据4.1.1CSV文件的抽取 1.打开Kettle工具,创建转换 2.配置“CSV文件输入”控件 3.配置“表输出”控件 4.运行转换csv_extract4.2抽取Web数据4.2.1JSON文件的数据抽取 1.打开Kettle工具,创建转换 ... 查看详情
python数据分析与挖掘学习笔记-淘宝商品数据清洗及预处理(代码片段)
...开始啦~~这一部分主要是针对淘宝的部分商品数据(小零食)进行预处理。1.读取商品源数据这里拿到的数据是sql数据,因此需要使用mysql。首先我们安装好mysql,可以直接通过指令安装:>sudoapt-geti... 查看详情
机器学习之数据清洗与特征提取
...汪毅雄导语:本文详细的解释了机器学习中,经常会用到数据清洗与特征提取的方法PCA,从理论、数据、代码三个层次予以分析。 机器学习,这个名词大家都耳熟能详。虽然这个概念很早就被人提出来了,但是鉴于科技水平... 查看详情
机器学习中的数据清洗与特征处理综述
...转)背景随着美团交易规模的逐步增大,积累下来的业务数据和交易数据越来越多,这些数据是美团做为一个团购平台最宝贵的财富。通过对这些数据的分析和挖掘,不仅能给美团业务发展方向提供决策支持,也为业务的迭代指... 查看详情
大数据项目4(数据清洗与集成)
数据清洗与集成一、概述二、数据抽取、转换与装载三、数据清洗1.什么是数据清洗?2.数据清洗的意义3.数据质量的重要性四、数据异常的不同类型1.语法类异常2.语义类异常3.覆盖类异常五、数据质量六、数据清洗的任务和... 查看详情
机器学习-数据清洗(代码片段)
本文由brzhang数据清洗首先,为何需要对数据进行清洗数据清洗的工作绝壁是非常枯燥的,做数据研究的的人绝对无法避开这个环节,其根本原因是因为我们从各种渠道拿到的数据可能会出现:1、不合理的数据,你比如,样本中... 查看详情
机器学习-数据清洗(代码片段)
...区,获取更多腾讯海量技术实践干货哦~本文由brzhang发表数据清洗首先,为何需要对数据进行清洗数据清洗的工作绝壁是非常枯燥的,做数据研究的的人绝对无法避开这个环节,其根本原因是因为我们从各种渠道拿到的数据可能... 查看详情
数据清洗
数据清洗一是为了解决数据质量问题,二是让数据更加适合做挖掘。数据清洗,是整个数据分析过程中不可缺少的一个环节,其结果质量直接关系到模型效果和最终结论。在实际操作中,数据清洗通常会占据分析过程的50%&md... 查看详情
r语言-实验报告-数据清洗
...,以及对新语言软件进行安装。能使用NavicatforMySQL对MySQL数据库进行基本的连接测试,同时,在mysql中新建student数据库。能利用外部SQL脚本文件对数据库进行数据集的导入和初始化。熟悉利用eclipse编程工具,新建项目和工具类对... 查看详情
数据清洗
数据清洗(DataCleaning)——https://wiki.mbalib.com/wiki/%E6%95%B0%E6%8D%AE%E6%B8%85%E6%B4%97目录[隐藏]1 什么是数据清洗[1]2 数据清洗原理[2]3 数据清洗的实现方式与范围[2]4 数据清洗的方法[3]5 相关条目6 参考文献[编辑... 查看详情
数据清洗
预处理阶段预处理阶段主要做两件事情:一是将数据导入处理工具。通常来说,建议使用数据库,单机跑数搭建MySQL环境即可。如果数据量大(千万级以上),可以使用文本文件存储+Python操作的方式。二是看数据。这里包含两个部... 查看详情
转载使用pandas进行数据清洗
使用pandas进行数据清洗本文转载自:蓝鲸的网站分析笔记原文链接:使用python进行数据清洗 目录:数据表中的重复值duplicated()drop_duplicated()数据表中的空值/缺失值isnull()¬null()dropna()fillna()数据间的空格查看数据中的空格... 查看详情
做datamining,其实大部分时间都花在清洗数据
做DataMining,其实大部分时间都花在清洗数据时间 2016-12-1218:45:50 51CTO原文 http://bigdata.51cto.com/art/201612/524771.htm主题 数据挖掘 前言:很多初学的朋友对大数据挖掘第一直观的印象,都只是业务模型,以... 查看详情
机器学习——数据清洗和特征选择(代码片段)
一、缺省值填充 1. 老版本用Imputerimportnumpyasnpfromsklearn.preprocessingimportImputerX=[[2,2,4,1],[np.nan,3,4,4],[1,1,1,np.nan],[2,2,np.nan,3]]#missing_values(缺失值),strategy(策略,默认平均值),axis(选择行列,0为列,1 查看详情
python数据清洗&预处理入门完整指南(代码片段)
...则立,不预则废,训练机器学习模型也是如此。数据清洗和预处理是模型训练之前的必要过程,否则模型可能就废了。本文是一个初学者指南,将带你领略如何在任意的数据集上,针对任意一个机器学习模型... 查看详情
python数据清洗&预处理入门完整指南(代码片段)
...则立,不预则废,训练机器学习模型也是如此。数据清洗和预处理是模型训练之前的必要过程,否则模型可能就废了。本文是一个初学者指南,将带你领略如何在任意的数据集上,针对任意一个机器学习模型... 查看详情
数据清洗
为什么要预处理数据?数据缺失:记录为空&属性为空数据重复:完全重复&不完全重复数据错误:异常值&不一致数据不可用:数据正确但不可用如何预防脏数据?制定数据标准优化系统设计1. 处理数据缺失:忽略该... 查看详情
数据清洗一:(代码片段)
原数据格式: 转换的目标格式: 脚本目的:转换数据的格式,属于数据清洗部分。脚本逻辑,将文件读取后,将第一列设置为key,第三列设为列表组成的value,建立dict;然后循环dict来统计items两两之间重复的id以... 查看详情