是新朋友吗?记得先点蓝字关注我哦~

数据挖掘中

常用的数据清洗方法

在数据挖掘过程中,数据清洗主要根据探索性分析后得到的一些结论入手,然后主要对四类异常数据进行处理,分别是缺失值(missing value),异常值(离群点),去重处理(Duplicate Data)以及噪音数据的处理。

1. 探索性分析

探索性分析部分,对于整个数据来讲是获得对数据一个初步的认识以及对先验知识的一个探索分析过程,在我做相关数据挖掘的过程中,主要是利用python相关的科学计算库进行数据初步的探索,例如数据类型,缺失值,数据集规模,各特征下的数据分布情况等,并利用第三方绘图库进行直观的观察,以获取数据的基本属性与分布情况,另外,通过单变量分析与多变量分析,可以初步探索数据集中各特征之间的关系,以验证在业务分析阶段所提出的假设。

2. 缺失值

数据集中缺失值的获取方法可以直接通过pandas的自带的多种方法获取,在大多数数据集中缺失值都普遍会存在,因此,对于缺失值的处理好坏会直接影响到模型的最终结果。如何处理缺失值,主要依据在缺失值所在属性的重要程度以及缺失值的分布情况。

①.在缺失率少且属性重要程度低的情况下,若属性为数值型数据则根据数据分布情况简单的填充即可,例如:若数据分布均匀,则使用均值对数据进行填充即可;若数据分布倾斜,使用中位数填充即可。若属性为类别属性,则可以用一个全局常量‘Unknow’填充,但是,这样做往往效果很差,因为算法可能会将其识别为一个全新的类别,因此很少使用。

②.当缺失率高(>95%)且属性重要程度低时,直接删除该属性即可。然而在缺失值高且属性程度较高时,直接删除该属性对于算法的结果会造成很不好的影响。

③.缺失值高,属性重要程度高:主要使用的方法有插补法与建模法

(1)插补法主要有随机插补法,多重插补法,热平台插补法,以及拉格朗日插值法与牛顿插值法

1>随机插补法--从总体中随机抽取某几个样本代替缺失样本

2>多重插补法--通过变量之间的关系对缺失数据进行预测,利用蒙特卡洛方法生成多个完整的数据集,在对这些数据集进行分析,最后对分析结果进行汇总处理

3>热平台插补----指在非缺失数据集中找到一个与缺失值所在样本相似的样本(匹配样本),利用其中的观测值对缺失值进行插补。

优点:简单易行,准确率较高

缺点:变量数量较多时,通常很难找到与需要插补样本完全相同的样本。但我们可以按照某些变量将数据分层,在层中对缺失值实用均值插补

4>拉格朗日差值法和牛顿插值法

(2)建模法

可以用回归、贝叶斯、随机森林、决策树等模型对缺失数据进行预测。例如:利用数据集中其他数据的属性,可以构造一棵判定树,来预测缺失值的值。

一般而言,数据缺失值的处理没有统一的流程,必须根据实际数据的分布情况,倾斜程度,缺失值所占比例等来选择方法。在我做数据预处理过程中,除了使用简单的填充法外与删除外,更多情况下采用建模法进行填充,主要在于建模法根据已有的值去预测未知值,准确率较高。但建模法也可能造成属性之间的相关性变大,可能影响最终模型的训练。

3. 异常值(离群点)

判断离群点除了可视化分析外(一般箱线图),还有很多基于统计背景下的方法,且可视化观察不适合用数据量较多的情况。

3.1 简单的统计分析

这一步在EDA中完成,只需要利用pandas的describe方法就可以实现,通过数据集描述性统计,发现是否存在不合理的值,即异常值

3.2 3∂原则--基于正态分布的离群点检测

如果数据服从正态分布,在3∂原则下,异常值为一组测定值中与平均值的偏差超过3倍标准差的值。如果数据服从正态分布,距离平均值3∂之外的值出现的概率为P(|x-u| > 3∂) <= 0.003,属于极个别的小概率事件。如果数据不服从正态分布,也可以用远离平均值的多少倍标准差来描述。

3.3 基于模型检测

首先建立一个数据模型,异常是那些同模型不能完美拟合的对象;如果模型是簇的集合,则异常是不显著属于任何簇的对象;在使用回归模型时,异常是相对远离预测值的对象

3.4 基于距离

通过在对象之间定义临近性度量,异常对象是那些远离其它对象的对象

优点:简单易操作

缺点:时间复杂度为O(m^2),不适用于大数据集情况,参数选择较为敏感,不能处理具有不同密度区域的数据集,因为它使用全局阈值,不能考虑这种密度的变化

3.5 基于密度

当一个点的局部密度显著低于它的大部分近邻时才将其分类为离群点。适合非均匀分布的数据。

优点:给出了对象是离群点的定量度量,并且即使数据具有不同的区域也能够很好的处理

缺点:时间复杂度O(m^2);参数选择困难,虽然算法通过观察不同的k值,取得最大离群点得分来处理该问题,但是,仍然需要选择这些值的上下界。

3.6 基于聚类

基于聚类的离群点:一个对象是基于聚类的离群点,如果该对象不强属于任何簇。离群点对初始聚类的影响:如果通过聚类检测离群点,则由于离群点影响聚类,存在一个问题:结构是否有效。为了处理该问题,可以使用如下方法:对象聚类,删除离群点,对象再次聚类。

优点:

① 基于线性和接近线性复杂度(k均值)的聚类技术来发现离群点可能是高度有效的 ② 簇的定义通常是离群点的补,因此可能同时发现簇和离群点

缺点:

① 产生的离群点集和它们的得分可能非常依赖所用的簇的个数和数据中离群点的存在性

② 聚类算法产生的簇的质量对该算法产生的离群点的质量影响非常大

处理异常点的方法:

1>删除异常值----明显看出是异常且数量较少可以直接删除

2>不处理---如果算法对异常值不敏感则可以不处理,但如果算法对异常值敏感,则最好不要用这种方法,如基于距离计算的一些算法,包括kmeans,knn之类的。

3>平均值替代----损失信息小,简单高效。

4>视为缺失值----可以按照处理缺失值的方法来处理

4. 去重处理

对于重复项的判断,基本思想是“排序与合并”,先将数据集中的记录按一定规则排序,然后通过比较邻近记录是否相似来检测记录是否重复。这里面其实包含了两个操作,一是排序,二是计算相似度。目前在做竞赛过程中主要是用duplicated方法进行判断,然后将重复的样本进行简单的删除处理。

这块目前看到的博客与国外一些比赛的案例基本都采用直接删除进行处理,没有看到过比较有新意的方法。

5. 噪音处理

噪音是被测变量的随机误差或者方差,主要区别于离群点。由公式:观测量(Measurement) = 真实数据(True Data) + 噪声 (Noise)。离群点属于观测量,既有可能是真实数据产生的,也有可能是噪声带来的,但是总的来说是和大部分观测量之间有明显不同的观测值。噪音包括错误值或偏离期望的孤立点值,但也不能说噪声点包含离群点,虽然大部分数据挖掘方法都将离群点视为噪声或异常而丢弃。然而,在一些应用(例如:欺诈检测),会针对离群点做离群点分析或异常挖掘。而且有些点在局部是属于离群点,但从全局看是正常的。

对于噪音的处理主要采用分箱法于回归法进行处理:

(1) 分箱法

分箱方法通过考察数据的“近邻”来光滑有序数据值。这些有序的值被分布到一些“桶”或箱中。由于分箱方法考察近邻的值,因此它进行局部光滑。

l 用箱均值光滑:箱中每一个值被箱中的平均值替换。

l 用箱中位数平滑:箱中的每一个值被箱中的中位数替换。

l 用箱边界平滑:箱中的最大和最小值同样被视为边界。箱中的每一个值被最近的边界值替换。

一般而言,宽度越大,光滑效果越明显。箱也可以是等宽的,其中每个箱值的区间范围是个常量。分箱也可以作为一种离散化技术使用.

(2) 回归法

可以用一个函数拟合数据来光滑数据。线性回归涉及找出拟合两个属性(或变量)的“最佳”直线,使得一个属性能够预测另一个。多线性回归是线性回归的扩展,它涉及多于两个属性,并且数据拟合到一个多维面。使用回归,找出适合数据的数学方程式,能够帮助消除噪声。

原文链接:https://blog.csdn.net/jiazericky/java/article/details/8032222

 点“在看”给我一个小心心

光滑噪声数据常用的方法_数据挖掘中常用的数据清洗方法相关推荐

  1. 光滑噪声数据常用的方法_数据挖掘中常用的数据清洗方法有哪些?

    数据清洗是将重复.多余的数据筛选清除,将缺失的数据补充完整,将错误的数据纠正或者删除,最后整理成为我们可以进一步加工.使用的数据. 所谓的数据清洗,也就是ETL处理,包含抽取Extract.转换Tra ...

  2. 数据挖掘中数据预处理方法_数据挖掘中的数据预处理

    数据挖掘中数据预处理方法 In the previous article, we have discussed the Data Exploration with which we have star ...

  3. mysql 常用优化方案_项目中常用的 19 条 MySQL 优化方案

    声明一下:下面的优化方案都是基于 " Mysql-索引-BTree类型 " 的 一.EXPLAIN 做MySQL优化,我们要善用 EXPLAIN 查看SQL执行计划. 下面来个简单 ...

  4. 光滑噪声数据常用的方法_整理一份详细的数据预处理方法

    重磅干货,第一时间送达 作者:lswbjtuhttps://zhuanlan.zhihu.com/p/51131210 为什么数据处理很重要? 熟悉数据挖掘和机器学习的小伙伴们都知道,数据处理相关的工 ...

  5. 关于数据挖掘中“多重共线性”的确定方法(有图有真相)

    回归分析是数据挖掘中最基本的方法,其中基于普通最小二乘法的多元线性回归要求模型中的特征数据不能存在有多重共线性,否则模型的可信度将大打折扣.但是就是技术而言,如何确定模型中的各各特征之间是否有多重共线 ...

  6. r语言平均值显著性检验_最全的R语言统计检验方法_数据挖掘中R语言的运用

    最全的R语言统计检验方法_数据挖掘中R语言的运用 统计检验是将抽样结果和抽样分布相对照而作出判断的工作.主要分5个步骤:建立假设 求抽样分布 选择显著性水平和否定域 计算检验统计量 判定 假设检验(h ...

  7. php开发中常用函数总结,PHP开发中常用函数总结

    PHP开发中常用函数总结 发布于 2014-10-31 08:34:03 | 48 次阅读 | 评论: 0 | 来源: 网友投递 PHP开源脚本语言PHP(外文名: Hypertext Preproc ...

  8. 光滑噪声数据常用的方法_九大常用数据分析方法汇总

    来源:数据宝典 转载:中国统计网 一.描述性统计 定义:描述性统计是一类统计方法的汇总,揭示了调查总体的数据分布特性.描述性统计分析要对调查总体所有变量的有关数据进行统计性描述,主要包括数据的频数分析 ...

  9. 光滑噪声数据常用的方法_如何处理噪声数据

    噪声:一个测量变量中的随机错误或偏差 噪声数据的处理方法:分箱:聚类:计算机和人工检查结合:回归 1)分箱:分箱方法是一种简单常用的预处理方法,通过考察相邻数据来确定最终值.所谓"分箱&qu ...

最新文章

  1. 华为提出十大数学挑战!解出一个就是年薪百万!
  2. 微软75亿收购Github,微软以开发者为中心的初心不变
  3. 程序员探案之 Python 和 Redis 的“第三者”
  4. swift 如何在IOS应用图标上添加消息数
  5. python的列表函数
  6. 双显卡笔记本安装linux,双显卡笔记本安装 Ubuntu 18.04 攻略
  7. Java JDK 8的安装与配置
  8. 如何修改Linux开启进度条的图片
  9. 天津学习平面设计培训需要学习多久?
  10. MySQL万字总结(含测试代码)
  11. echart x轴自定义间距
  12. AP: Oracle EBS AP INVOICE TAX 税码计算规则(ZT)
  13. 安装SSL证书的网站被谷歌提升排名权重
  14. html文本隐藏内容占位,在HTML中如何隐藏某段文字具体该怎么实现文
  15. 关于Java,你想知道的一切,这里说透了
  16. 用TensorFlow实现非线性支持向量机
  17. Vue新建项目与npm使用.
  18. 基于kettle的数据集成平台(三)
  19. WampServer安装教程、相关问题和检验
  20. 计算机桌面怎么添加便签,桌面记事本,教您怎么在桌面添加便签

热门文章

  1. 第八篇 android 内容提供组件机制--MVC模式
  2. RMAN 还原与恢复
  3. ActiveBpel部署运行BPEL流程实例
  4. 网页控制台调用click()失败_C# 调用百度AI 人脸识别
  5. 交际过程的两个基本环节_男女相处,若不介意这些“小动作”,基本可以确定“关系暧昧”...
  6. [转载] Python-Strings
  7. Java Duration类| isZero()方法与示例
  8. Java Hashtable containsValue()方法与示例
  9. csv导入mysql phpmyadmin_【转】从phpMyAdmin批量导入Excel内容到MySQL(亲测非常简洁有效)...
  10. matlab dir数,DIR - matlab函数