数据挖掘中常用的数据清洗方法有哪些?

已邀请:

gus

赞同来自: 安之若素 candy

读研的时候的专业方向是数据挖掘,尽管很水,但是也学了一些方法。现在说下我的经验吧。
在数据挖掘中,由于得到的原始数据往往跟我们要处理的数据的格式大相庭径,所以有必要对原始数据进行清洗。我所理解的数据清洗,无非是这么几个过程:标准化、归一化、降维。
=========
1、标准化(数值化)
由于原始数据往往存在各种不同格式的数据形式,比如如果你要处理的数据是数值型,但是原始数据也许有字符型或者其他,那就要对其进行标准化操作。处理的方式可以很简单也可以很复杂,我采取过的一个方法是:对字符串取值,按照ANSI码值求和得到字符串的值,如果值太大,可以取一个适当的质数对其求模,本质上就是映射到一个区间了。然后就得到数值型的数据了。
2、归一化
由于原始数据各个维度之间的数值往往相差很大,比如一个维度的最小值是0.01,另一个维度最小值却是1000,那么也许在数据分析的时候,计算相关性或者方差啥的指标,后者会掩盖了前者的作用。因此有必要对整体数据进行归一化工作,也就是将它们都映射到一个指定的数值区间,这样就不会对后续的数据分析产生重大影响。我采取过的一个做法是:min-max标准化。
3、降维
由于原始数据往往含有很多维度,也就是咱们所说的列数。比如对于银行数据,它往往就含有几十个指标。这些维度之间往往不是独立的,也就是说也许其中之间若干的维度之间存在关联,也许有他就可以没有我,因此咱们可以使用数据的相关性分析来降低数据维度。我使用过的一个方法是:主成分分析法。具体操作请百度。
==========
以上就是一些数据清洗操作的皮毛介绍,这些方法都不需要我们亲自去编码实现,因为它们已经被研究烂了,有各种工具和程序可以帮助我们实现这些方法。
对于数据挖掘来说,80%的工作都花在数据准备上面,而数据准备,80%的时间又花在数据清洗上,而数据清洗的工作,80%又花在选择若干种适当高效的方法上。真的,用不同方法清洗的数据,对后续挖掘的分析工作会带来重大影响。

安之若素

赞同来自: candy

依据行业清洗方式不同
利益相关:IT金融数据
增减字段,增纬、减纬、行列转换、拆分表、合并表、统一类型(格式转换)、字段日期和数字计算及转换、列数据拆分为行数据、行数据合并为列数据
其他的想起在补充。

candy

赞同来自:

数据格式校验,例如加0,位数,合并等,编码等。
真实性校验,剔除明显错误,例如岁数超200等,重复数据剔除,无效数据剔除。
如果要再进一步就得设计校验规则,慢慢筛选。
这些可以机器做。
还有更加吊炸天的是对凭证和原始数据。一般是公司的订单,发货/收货单,发票等。
得手工核对。

要回复问题请先登录注册