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/article/details/80322225

插值法补齐缺失数据_关于数据清洗的常见方式相关推荐

  1. 插值法补齐缺失数据_一种挽救你缺失数据的好方法——多重补插

    原标题:一种挽救你缺失数据的好方法--多重补插 缺失数据--研究中的绊脚石 在医学研究中,我们经常会碰到缺失数据.无论是因为实验设计的问题,或是检测手段精度,又或是医学实验中的不可抗力因素.一旦数据没 ...

  2. 插值法补齐缺失数据_缺失数据处理-插值法

    缺失数据处理-插值法 在数据挖掘中,原始海量的数据中存在着大量不完整.不一致.有异常.偏离点的数据.这些问题数据轻则影响数据挖掘执行效率,重则影响执行结果.因此数据预处理工作必不可少,而其中常见工作的 ...

  3. 插值法补齐缺失数据_数据挖掘非常重要的一步:数据预处理

    为什么数据处理很重要? 对数据挖掘熟悉的小伙伴,数据处理相关的工作时间占据了整个项目的70%以上.数据的质量,直接决定了模型的预测和泛化能力的好坏.它涉及很多因素,包括:准确性.完整性.一致性.时效性 ...

  4. 插值法补齐缺失数据_数据处理——缺失值处理

    此文图方便,就直接输入数据了. importpandas as pd df = pd.DataFrame({'一班':[90,80,66,75,99,55,76,78,98,None,90], '二班 ...

  5. 【GBase 8a MPP数据库集群】使用 AUTOFILL 关键字补齐缺失数据

    说明: AUTOFILL:用于设定是否启用缺失列自动补齐功能,启用该参数后,对缺失分割符的字段数据按照 default 值或者 NULL 值进行加载,默认不自动补齐. 建表语句: create tab ...

  6. python 按照行取平均值补齐缺失数据

    import pandas as pd###根据行来求平均值 def fill_NAN():filePath = r'E:\study-python\0819\filled_meter-500.csv ...

  7. Python数据处理-使用Pandas补齐缺失日期(pd.date_range)

    在处理时间序列的数据中,有时候会遇到有些日期的数据缺失的情况,这时候可以用pandas的 date_range 函数快速补齐缺失日期,再根据实际情况补齐缺失值. import pandas as pd ...

  8. uci数据集中的缺失数据_从uci早期糖尿病风险预测数据集中创建分类器

    uci数据集中的缺失数据 To begin we must first go and download the dataset from the UCI dataset repository. The ...

  9. 按日统计注册人数SQL语句详解(自动补齐空缺数据)

    按日统计XX人数其实是一个很常用的功能.比如说按日统计注册人数.按日统计订单数等.原理其实很相似,一通百通. 话不多说,进入正题. 一.最终sql语句展示 我们先来看下最终的sql语句及得到的结果: ...

最新文章

  1. linux rcs执行错误,求助大神:linux启动的时候执行完rc.sysinit就死在rcS上了
  2. android崩溃日志收集
  3. 【错误记录】VMware 虚拟机报错 ( Ubuntu-Unattended upgrade in progress during shutdown, please don‘t turn off )
  4. 几个比较实用的CSS
  5. Mybatis的delete方法
  6. 8s nfs 挂载文件_把你的树莓派家庭实验室变成一个网络文件系统 | Linux 中国
  7. 【三维深度学习】基于片元的渐进式三维点云上采样模型
  8. centos wget默认路径_TRMM 数据windows平台wget下载方法(2021年1月13日可用)
  9. windows10商店应用离线安装方法
  10. 为什么成为CISSP持证专家?
  11. 李沐动手学深度学习d2l
  12. Aircrack-ng套件_无线网卡破解
  13. 正则表达式 正则表达式语法
  14. Excel合并两列中的文本内容
  15. python核心教程之min函数怎么使用
  16. linux设备如何获取经纬度,openlayers鼠标移动获取地图经纬度格式化的两种方式
  17. android高仿微信表情输入与键盘输入详解
  18. PHp猴子偷,这些猴子成精了!偷东西偷得很萌很认真……
  19. Unity通过Animator获取动画clip时长
  20. CSS中英文换行问题

热门文章

  1. 《他其实没那么喜欢你》经典台词(4)
  2. 如何在SAP的Screen中编写List报表
  3. Java 怎么 get char_Java KeyCharacterMap.getDeadChar方法代码示例
  4. 服务器手工修改虚拟内存,服务器修改虚拟内存
  5. 计算机基础ABCDEF,计算机应用基础-在线作业abcdef(76页)-原创力文档
  6. 龙芯linux内核移植开发板,基于国产龙芯GS32I的开发板的设计与嵌入式Linux的移植...
  7. linux 查看nexus状态,在linux上搭建nexus私服(CentOS7)
  8. IDEA 运行run 为灰色解决办法
  9. python 比较列表相邻元素(找相同或去重)
  10. python 如何判断一组数据是否符合正态分布