数据挖掘—数据预处理
文章目录
- 数据预处理
- 1 数据清洗
- 缺失值处理
- 异常值处理
- 2 数据集成
- 实体识别
- 冗余属性识别
- 数据变换
- 简单函数变换
- 规范化
- 连续属性离散化
- 属性构造
- 3 数据规约
- 属性归约
- 数值归约
- Python主要数据预处理函数
数据预处理
数据预处理的过程
数据预处理的目的:
1)提高数据质量
2)让数更好地适应特定的挖掘技术或工具
数据预处理工作量占整个数据挖掘工作量的60%
1 数据清洗
数据清洗主要是删除原始数据集中的无关数据、重复数据,平滑噪声数据,筛选掉与挖掘主题无关的数据,处理缺失值、异常值等。
缺失值处理
常用的三种缺失值处理方法:
删除记录:
- 优点:简单直接,最有效
- 缺点:以减少历史数据来换取数据的完备,会造成资源的大量浪费,丢弃了大量隐藏在这些记录中的信息。尤其是在数据集本来就包含很少记录的情况下,删除少量记录就可能严重影响分析结果的客观性和正确性。
不处理:
- 一些模型可以将缺失值作为一种特殊的取值,允许直接在含有缺失值的数据上进行建模。
数据插补:
插补方法 方法描述 均值/中位数/众数插补 根据属性值的类型,用该属性取值的平均数/中位数/众数进行插补 使用固定值 将缺失的属性值用一个常量替换 最近临插补 在记录中找到与缺失样本最接近的样本的该属性作为插补 回归方法 对带有缺失值的变量,根据已有数据与其有关的其他变量的数据建立拟合模型来预测缺失值的属性值 插值法 利用已知点建立合适的插值函数f(x),未知值由对应点xi求出的函数值f(xi)近似替代。常用插值法有拉格朗日插值、hermite插值、分段插值、样条插值
异常值处理
常用的异常值处理方法:
异常值处理方法 | 方法描述 |
---|---|
删除含有异常值的记录 | 直接将含有异常值的记录删除 |
视为缺失值 | 利用缺失值的处理方法进行处理 |
平均值修正 | 可用前后两个观测值的平均值修正该异常值 |
不处理 | 直接在具有异常值的数据集上进行挖掘建模 |
注意:有些异常值可能蕴含着有用的信息,因此,要先分析异常值出现的可能原因,再判断是否应该舍弃。例如:信用卡盗刷
2 数据集成
数据集成是将多个数据源合并存放在一个一致的数据存储位置中的过程。
注意:来自多个数据源的现实实体的表达形式是不一样的,有可能不匹配,要考虑实体识别问题和属性冗余问题,从而将源数据在最底层上加以转换、提炼和集成。
主要处理方法:
- 实体识别
- 冗余属性识别
- 数据变换
- 属性构造
- 小波变化
实体识别
实体识别从不同数据源识别出现实世界的实体,它的任务是统一不同源数据的矛盾之处。
常见的实体识别如下:
- 同名异义:数据源 A中的属性ID和数据源B中的属性ID分别描述的是菜品编号和订单编号,即描述的是不同的实体。
- 异名同义:数据源A中sales_dt和数据源B中sales_date都是描述销售日期,即A. sales_dt=B. sales_date。
- 单位不统一:描述同一个实体时分别用不同的单位,如kg和斤。
冗余属性识别
- 同一属性多次出现
- 同一属性命名不一致导致重复
有些冗余属性可以用相关分析检测。给定两个数值型的属性A和属性B,根据其属性值,用相关系数度量一个属性在多大程度上蕴含另一个属性。
数据变换
数据变换主要是对数据进行规范化处理,将数据转换成“适当的”形式,以适用于数据挖掘任务及算法的需要。
常见的变换有:
- 简单函数变换
- 规范化
- 连续数据离散化
简单函数变换
- 简单函数变换是对原始数据进行某些数学函数变换,常用的包括平方、开方、取对数、差分运算等。
- 简单函数变换常用来将不具有正态分布的数据变换成具有正态分布的数据。在时间序列分析中,简单的对数分析、差分分析可以将非平稳序列转换为平稳序列。
规范化
- 数据标准化(归一化)处理是数据挖掘中的一项基本工作。
- 为了消除指标之间的量纲和取值范围差异的影响,需要进行标准化处理,将数据按照比例进行缩放,使之落入一个特定的区域,便于进行综合分析。
- 例如:将工资收入属性值映射到[-1,1]或[0,1]内。
常见的规范化方法:
最小-最大规范化:离差标准化
x∗=x−minmax−minx^{*}=\frac{x-\min }{\max -\min } x∗=max−minx−min
优点:保留原来数据中存在的关系,方法简单。缺点:若数值集中且某个数值很大,则规范后各值会接近于0,并且相差不大。若将来遇到超过[min,max]的属性值时,会引起系统错误,需要重新确定min和max。
零-均值规范化:标准差标准化
x∗=x−x‾δx^{*}=\frac{x-\overline{\mathrm{x}}}{\delta} x∗=δx−x
x‾\overline{\mathrm{x}}x为原始数据均值,数据挖掘—数据预处理相关推荐
- 数据挖掘 —— 数据预处理
数据挖掘 -- 数据预处理 1. 数据清洗 2. 特征预处理 2.1 特征选择 2.2 特征变换 3 特征降维 1. 数据清洗 数据清洗包括数据样本抽样和异常值(空值)处理 直接丢弃(包括重复数据) ...
- 数据挖掘-数据预处理的必要性及主要任务
数据预处理的必要性及主要任务 1.数据预处理的必要性 数据库极易受噪声.缺失值和不一致数据的侵扰,因为数据库太大,并且多半来自多个异构数据源.低质量的数据导致低质量的数据挖掘. 2.数据预处理技术 ( ...
- Python数据挖掘 数据预处理案例(以航空公司数据为例)
Python数据预处理 一.内容: 1.数据清洗 2.数据集成 3.数据可视化 二.实验数据 根据航空公司系统内的客户基本信息.乘机信息以及积分信息等详细数据,依据末次飞行日期( LAST_FLIGH ...
- 机器学习与数据挖掘——数据预处理
如果有兴趣了解更多相关内容,欢迎来我的个人网站看看:瞳孔空间 一:关于数据预处理 在工程实践中,我们得到的数据会存在有缺失值.重复值等,在使用之前需要进行数据预处理.数据预处理没有标准的流程,通常针对 ...
- 文本数据挖掘----数据预处理
一.数据预处理简介 1.为什么要进行数据预处理 一开始拿到的数据在数据的质量方面或多或少有一些问题,即在数据的准确性.完整性.一 致性.合时性(实时性).可信性.解释性等方面可能存在问题,所以需要数据 ...
- 数据挖掘数据预处理(验证性)
一.背景 软件:python 实验内容: (选做)使用Pandas_datareader获取任意两支股票近三个月的交易数据.做出收盘价的变动图像. 使用Pandas_datareader获取世界银行数 ...
- 【数据挖掘】分类任务简介 ( 分类概念 | 分类和预测 | 分类过程 | 训练集 | 测试集 | 数据预处理 | 有监督学习 )
文章目录 I . 分类概念 II . 分类 ( 离散值 ) 和 预测 ( 连续值 ) III . 分类过程 IV . 分类过程中使用的数据集 ( 训练集 | 测试集 | 新数据 ) V . 数据预处理 ...
- 【数据挖掘笔记三】数据预处理
3.数据预处理 数据预处理技术: 数据清理用来清除数据中的噪声,纠正不一致: 数据集成将数据由多个数据源合并成一个一致的数据存储,如数据仓库: 数据归约通过如聚集.删除冗余特征或聚类来降低数据的规模: ...
- 插值法补齐缺失数据_数据挖掘非常重要的一步:数据预处理
为什么数据处理很重要? 对数据挖掘熟悉的小伙伴,数据处理相关的工作时间占据了整个项目的70%以上.数据的质量,直接决定了模型的预测和泛化能力的好坏.它涉及很多因素,包括:准确性.完整性.一致性.时效性 ...
最新文章
- git fetch比较差异
- svn仓库出现already locked error解决方法:cleanup
- 计算器显示代码java_java编写的计算器源代码
- 【cocos2d-x从c++到js】20:脚本语言风格的JS代码
- 【Python】Matplotlib绘制极坐标螺旋线图
- Spring 注解方式实现 事务管理
- (27)XILINX FPGA bit文件转换成MCS文件(FPGA不积跬步101)
- 程序员高效学习,坚持十年就是大师
- Codeforces Round #666 (Div. 2)D. Stoned Game(博弈问题)
- 在c语言中保留35位小数,C语言程序设计复习题(供学有余力学生练习)(35页)-原创力文档...
- oa是计算机辅助系统吗,oa是管理系统吗
- 《和扬哥一起从零开始学编程》免费、免费、免费
- Spring Cloud和Spring Boot高级视频
- 你应当知道的人工智能发展历史
- 量化私募FOF为何“脱颖而出”?
- Element 表单只能输入数字校验
- zabbix微信告警(虚拟机脚本测试成功,zabbix上收不到信息)
- java智慧农业系统-农业云端农产品仓储子系统
- 毕业设计 基于Web停车场管理系统的设计与实现
- asp.net旅游网站
热门文章