当前位置: 首页 > 编程日记 > 正文

数据预处理(完整步骤)

原文:http://dataunion.org/5009.html

一:为什么要预处理数据?
(1)现实世界的数据是肮脏的(不完整,含噪声,不一致)
(2)没有高质量的数据,就没有高质量的挖掘结果(高质量的决策必须依赖于高质量的数据;数据仓库需要对高质量的数据进行一致地集成)
(3)原始数据中存在的问题:
不一致 —— 数据内含出现不一致情况
重复
不完整 —— 感兴趣的属性没有
含噪声 —— 数据中存在着错误、或异常(偏离期望值)的数据
高维度
二:数据预处理的方法
(1)数据清洗 —— 去噪声和无关数据
(2)数据集成 —— 将多个数据源中的数据结合起来存放在一个一致的数据存储中
(3)数据变换 —— 把原始数据转换成为适合数据挖掘的形式

(4)数据规约 —— 主要方法包括:数据立方体聚集,维度归约,数据压缩,数值归约,离散化和概念分层等。

(5)图说事实

三:数据选取参考原则
(1)尽可能富余属性名和属性值明确的含义
(2)统一多数据源的属性编码
(3)去除唯一属性
(4)去除重复属性
(5)去除可忽略字段
(6)合理选择关联字段
(7)进一步处理:

通过填补遗漏数据、消除异常数据、平滑噪声数据,以及纠正不一致数据,去掉数据中的噪音、填充空值、丢失值和处理不一致数据

四:用图说话,(我还是习惯用统计图说话)

数据清洗的路子:刚拿到的数据 —-> 和数据提供者讨论咨询 —–> 数据分析(借助可视化工具)发现脏数据 —->清洗脏数据(借助MATLAB或者Java/C++语言) —–>再次统计分析(Excel的data analysis不错的,最大小值,中位数,众数,平均值,方差等等,以及散点图) —–> 再次发现脏数据或者与实验无关的数据(去除) —–>最后实验分析 —-> 社会实例验证 —->结束。

一 数据清理

试图填充缺失值,光滑噪声并识别离群点,并纠正数据中的不一致。

1)处理缺失值方法:

a.忽略元祖,挖掘任务涉及分类任务中如果缺少类标号时通常这样做

b.人工填写缺失值,量大时行不通

c.使用一个全局常量填充缺失值,简单但不可靠

d.使用属性的均值填充缺失值

e.使用与给定元组属同一类的所有样本的属性均值

f.使用最有可能的值填充缺失值,可以用回归,使用贝叶斯形式化的基于推理的工具或决策树归纳确定,是流行的做法。

2)数据光滑技术:噪声是被测量的变量的随机误差或方差

a.分箱,分箱方法通过考察数据的“近邻”(即周围的值)来光滑有序数据的值,有序值分布到一些“桶”或箱中。由于分箱方法考察近邻的值,因此进行局部光滑。几种分箱技术:用箱均值光滑、用箱边界光滑、用箱中位数光滑。

b.回归:可以用一个函数(如回归函数)拟合数据来光滑数据。线性回归涉及找出拟合两个属性(或变量)的“最佳”线,是的一个属性可以用来预测另一个。多元线性回归是线性回归的扩展,其中涉及的属性多于两个,并且数据拟合到一个多维曲面。

c.聚类:通过聚类检测离群点

3)数据清理作为一个过程的方法:过程的第一步是偏差检测,有大量商业工具帮助我们进行偏差检测,数据清洗工具、数据审计工具、数据迁移工具、ETL工具。新的数据清理方法强调加强交互性,如Potter's Wheel,集成了偏差检测和数据变换。

二 数据集成和变换

1)数据集成:数据分析任务多半涉及数据集成。数据集成合并多个数据源中的数据,存放在一个一致的数据存储(如数据仓库)中。这些数据源可能包括多个数据库、数据立方体或一般文件。数据集成有三个主要问题:a.模式集成和对象匹配,实体识别问题:来自多个信息源的现实世界的等价实体如何才能匹配?元数据可以帮助避免模式集成的错误。b.冗余:有些冗余可以被相关分析检测到。通过计算属性A,B的相关系数(皮尔逊积矩系数)来判断是否冗余;对于离散数据,可通过卡方检验来判断两个属性A和B之间的相关联系。c.数据值冲突的检测与处理

2)数据变换:将数据转换或统一成适合于挖掘的形式。涉及如下内容:

a.光滑:去掉数据的噪声,包括分箱,回归和聚类

b.聚集:对数据进行汇总或聚集。这一步通常用来为多粒度数据分析构造数据立方体

c.数据泛化:使用概念分层,用高层概念替换底层或“原始”数据。

d.规范化:又称为归一化,feature scaling特征缩放。将属性数据按比例缩放,使之落入一个小的特定区间。规范化方法:

1.最小-最大规范化:v'=[(v-min)/(max-min)]*(new_max-new_min)+new_min

2.z-score规范化(或零均值规范化):v'=(v-属性A的均值E)/属性A的标准差∽

3.小数定标规范化:v'=v/10的j次方,j是使Max(|v'|)<1的最小整数

e.属性构造(或特征构造):可以构造新的属性并添加到属性集中,以帮助挖掘过程。

三 数据归约

数据集可能非常大!面对海量数据进行复杂的数据分析和挖掘将需要很长的时间。数据归约技术可以用来得到数据集的归约表示,它小很多,但仍接近保持原数据的完整性。数据归约策略如下:

1)数据立方体聚集:聚集操作用于数据立方体结构中的数据。数据立方体存储多维聚集信息。

2)属性子集选择,参见文本分类概述中特征选择算法

3)维度归约:使用数据编码或变换,以便得到原数据的归约或“压缩”表示。归约分为无损的和有损的。有效的有损维归约方法为:小波变换和主成分分析

4)数值归约:通过选择替代的、‘较小的’数据表示形式来减少数据量

5)离散化和概念分层产生

转载于:https://www.cnblogs.com/zhizhan/p/4870397.html

相关文章:

码农技术炒股之路——抓取日线数据、计算均线和除权数据

日线数据是股票每日收盘后的信息。这块数据不用实时抓取&#xff0c;所以并不占用宝贵的交易时间的资源。于是我们抓取完数据后直接往切片后的数据库中保存。&#xff08;转载请指明出于breaksoftware的csdn博客&#xff09; 抓取日线数据 我们先要获取今天有交易信息的股票代…

茫茫碌碌的日子

一连很好多天&#xff0c;都在为公司数据库基础构架升级的事情忙活着。升级的事情还是比较棘手的。需要升级硬件服务器&#xff0c;相关的存储&#xff0c;操作系统&#xff0c;数据库产品&#xff0c;涉及面非常多。当然烦心的事情就很多。作为线上生产系统&#xff0c;升级和…

Python PK C++,究竟谁更胜一筹?

作者 | Farhad Malik译者 | 弯月&#xff0c;编辑 | 屠敏来源 | CSDN&#xff08;ID&#xff1a;CSDNnews&#xff09;在编程生涯的早期阶段&#xff0c;我参与过一款C数学优化应用程序的开发&#xff0c;这个程序对性能的要求很高。至今我依然记得那段艰难的经历。在那个项目中…

oracle--查看表空间大小以及修改表空间大小

为什么80%的码农都做不了架构师&#xff1f;>>> 一.修改表空间大小 解决以上问题的办法&#xff1a;通过增大表空间即可解决&#xff0c;如下&#xff1a; Sql代码 使用dba用户登陆 sqlplus / as sysdba; 执行如下命令&#xff1a; SQL >…

同步、异步、堵塞、非堵塞和函数调用及I/O之间的组合概念

在我们工作和学习中&#xff0c;经常会接触到“同步”、“异步”、“堵塞”和“非堵塞”这些概念&#xff0c;但是并不是每个人都能将它们的关系和区别说清楚。本文将对这些基本概念进行讨论&#xff0c;以期让大家有更清楚的认识。&#xff08;转载请指明出于breaksoftware的c…

“抗击”新型肺炎!阿里达摩院研发AI算法,半小时完成疑似病例基因分析

利用技术辅助抗击疫情&#xff0c;阿里巴巴、百度等科技巨头各显身手。此前&#xff0c;AI科技大本营采访报道了阿里达摩院《数十名工程师作战5天&#xff0c;阿里达摩院连夜研发智能疫情机器人》一文&#xff0c;后者为了解决客服人力不足的局面&#xff0c;快速响应政府需求开…

反编译工具jad简单用法

反编译工具jad简单用法 下载地址&#xff1a;[url]http://58.251.57.206/down1?cidB99584EFA6154A13E5C0B273C3876BD4CC8CE672&t2&fmt&usrinput[/url]反编译工具jad &dt2002000一. 不用安装&#xff0c;只要解压就行&#xff08;有这样两个文件jad.exe&#x…

ubuntu 系统设置bugzilla制

随着时间的推移。在大脑中形成的记忆总会慢慢的淡去。人的记忆力就是这样。所以最好的办法就是形成博客去记录下来&#xff0c;一方面给自己以后回想用。一方面也算是自己的一个积累。所以一旦选择了一个行业&#xff0c;最好不要轻 易转行&#xff0c;由于非常多知识须要不断的…

静态分析C语言生成函数调用关系的利器——cflow

除了《静态分析C语言生成函数调用关系的利器——calltree》一文中介绍的calltree&#xff0c;我们还可以借助cflow辅助我们阅读理解代码。&#xff08;转载请指明出于breaksoftware的csdn博客&#xff09; cflow的说明和安装cflow是一款静态分析C语言代码的工具&#xff0c;通过…

我在MongoDB年终大会上获二等奖文章:由数据迁移至MongoDB导致的数据不一致问题及解决方案...

作者 | 上海小胖来源 | Python专栏&#xff08;ID:xpchuiit)故事背景企业现状2019年年初&#xff0c;我接到了一个神秘电话&#xff0c;电话那头竟然准确的说出了我的昵称&#xff1a;上海小胖。我想这事情不简单&#xff0c;就回了句&#xff1a;您好&#xff0c;我是小胖&…

注意String.Split的几个重载形式

String.Split应该是经常用到的一个函数了,经常的有下面两种形式 public string[] Split(char[] separator, StringSplitOptions options); public string[] Split(string[] separator, StringSplitOptions options); 1. 多数情况下我们会使用第一种,代码里可能这…

如何让猎头找到你

如何让猎头找到你

libev源码解析——总览

libev是个非常优秀的基于事件的循环库&#xff0c;很多开源软件&#xff0c;比如nodejs就是使用其实现基础功能。本系列将对该库进行源码分析。&#xff08;转载请指明出于breaksoftware的csdn博客&#xff09; 不知道是被墙了还是网站不再维护&#xff0c;它的官网&#xff08…

GPT-2仅是“反刍”知识,真正理解语言还要改弦更张

作者 | Gary Marcus译者 | 泓技编辑 | 夕颜出品 | AI科技大本营&#xff08;ID&#xff1a;rgznai100&#xff09;【导读】OpenAI的GPT-2正被广泛地讨论&#xff0c;无论是《纽约客》还是《经济学人》&#xff0c;我们都能看到有关它的话题。关于自然和人工智能&#xff0c;它想…

sap business one 笑谈

Sap Business .e 出生在以色列&#xff0c;生下来的时候父母给起了个小名叫SBO&#xff0c;据说他的亲生父母是SAP家庭里的一个重要成员&#xff0c;后来SAP家族里的长老认为SBO长得不错&#xff0c;挺好看的。毕竟SAP家族里生下来的儿子都是胖胖的&#xff0c;想要个瘦点长相好…

来51学院的第一天

【来51学院的第一天】转载于:https://blog.51cto.com/10801189/1703279

libev源码解析——监视器(watcher)结构和组织形式

在《libev源码解析——总览》中&#xff0c;我们介绍了libev的一些重要变量在不同编译参数下的定义位置。由于这些变量在多线程下没有同步问题&#xff0c;所以我们将问题简化&#xff0c;所提到的变量都是线程内部独有的&#xff0c;不用考虑任何多线程问题。&#xff08;转载…

《评人工智能如何走向新阶段》后记(再续16)

由AI科技大本营下载自视觉中国181.5种常见的机器学习方法。 &#xff08;1&#xff09;线性回归linear regression: 一种流行的回归算法&#xff0c;从样本特征的线性组合&#xff0c;linear combination中学习模型。 &#xff08;2&#xff09;负数几率回归&#xff0c;logis…

怎么样才能快速的把淘宝店铺推广出去

我来到淘宝近一个月了,目前顺利地得到了两颗心心.感触颇多.其中店铺的推广显得尤其重要&#xff0c;应很多淘友的提问&#xff0c;我把一些店铺推广技巧介绍如下,你如果觉得有益,就回一下贴,以示支持.在这里先谢谢了&#xff01;先看第一板斧&#xff1a;一、修练内功&#xff…

linux的ftp服务器

2019独角兽企业重金招聘Python工程师标准>>> ftp服务器在网上较为常见&#xff0c;Linux ftp命令的功能是用命令的方式来控制在本地机和远程机之间传送文件&#xff0c;这里详细介绍Linux ftp命令的一些经常使用的命令&#xff0c;相信掌握了这些使用Linux 进行ftp操…

使用Forms Authentication实现用户注册、登录 (二)用户注册与登录

从这一部分开始&#xff0c;我们将通过一个实际的完整示例来看一下如何实现用户注册与登录。在介绍注册与登录之前&#xff0c;我们首先介绍一下如何判断用户是否已登录&#xff0c;并未后面的示例编写一些基础代码。 判断用户是否已经登录首先&#xff0c;在Web站点项目中添加…

libev源码解析——调度策略

在《libev源码解析——监视器&#xff08;watcher&#xff09;结构和组织形式》中介绍过&#xff0c;监视器分为[2,-2]区间5个等级的优先级。等级为2的监视器最高优&#xff0c;然后依次递减。不区分监视器类型和关联的文件描述符的值&#xff0c;权限高的要优先于权限低的执行…

特斯拉AI团队招兵买马:“英雄不问出处”

2月3日&#xff0c;特斯拉创始人兼CEO埃隆•马斯克发布推特&#xff0c;贴出了Autopilot AI团队招聘人才的信息。马斯克在推特中表示&#xff0c;特斯拉AI团队将直接向马斯克回报&#xff0c;他几乎每天都会与团队保持沟通和交流&#xff0c;并透露团队base在德州奥斯汀。据特斯…

java中重载与重写的区别

最近了解一下重载和重写 一、重载(Overloading) &#xff08;1&#xff09; 方法重载是让类以统一的方式处理不同类型数据的一种手段。多个同名函数同时存在&#xff0c;具有不同的参数个数/类型。 重载Overloading是一个类中多态性的一种表现。 &#xff08;2&#xff09; Ja…

libev源码解析——I/O模型

在《libev源码解析——总览》一文中&#xff0c;我们介绍过&#xff0c;libev是一个基于事件的循环库。本文将介绍其和事件及循环之间的关系。&#xff08;转载请指明出于breaksoftware的csdn博客&#xff09; 目前ibev支持如下IO事件模型&#xff1a; select模型。对应文件是…

“数学不好,干啥都不行!”骨灰级程序员:其实你们都是瞎努力

之前有很多程序员读者向我们抱怨&#xff1a;1&#xff09;做算法优化时&#xff0c;只能现搬书里的算法&#xff0c;遇到不一样的问题&#xff0c;就不会了。2&#xff09;面试一旦涉及到算法和数据结构&#xff0c;如果数学不行&#xff0c;面试基本就凉凉了。3&#xff09;一…

VISTA中注册表项LEGACY_****的删除

在VISTA中如果你错误安装了某个驱动软件&#xff0c;而如果这个驱动安装软件考虑不周&#xff0c;无法卸载&#xff0c;那么你就麻烦了&#xff01;比如我的U盘以前一直使用优易U盘加密软件1.2来做一个隐蔽的U盘。某天我在VISTA上运行了这个U盘加密软件&#xff0c;这个软件运行…

nodejs这个过程POST求

下面是一个web登陆模拟过程。当我们问一个链接&#xff0c;你得到一个表格&#xff0c;然后填写相应的表格值&#xff0c;然后提交登陆。 var http require(http); var querystring require(querystring); http.createServer(function (request, response) {var responseStri…

FTP、HTTP断点续传和多线程的协议基础

使用FTP或HTTP协议的下载软件支持断点续传和多线程的协议基础是&#xff1a;FTP用的是REST和SIZE&#xff1b;HTTP用的是Range。1、FTP实现断点续传的协议基础REST&#xff08;有的服务器可能不支持此命令&#xff09;Syntax: REST positionSets the point at which a file tra…

libev源码解析——定时器原理

本文将回答《libev源码解析——I/O模型》中抛出的两个问题。&#xff08;转载请指明出于breaksoftware的csdn博客&#xff09; 对于问题1&#xff1a;为什么backend_poll函数需要指定超时&#xff1f;我们让其一直等待到有事件发生不是更好么&#xff1f; 答案是“必须要指定超…