浅谈数据挖掘中的数据处理(缺失值处理以及异常值检测)刘岩

缺点:如果缺失值太多,最终删除到没有什么数据了。那就不好办了。

2.2缺失值的填补

(1)均值法

缺点:改变了数据的分布,还有就是有的优化问题会对方差优化,这样会让对方差优化问题变得不准确。

(2)随机填补

一直感觉这个方法不好,就是随机在那一列属性中找个数填补到缺失值里。

缺点:不靠谱。

(3)热卡填补法

缺点:太麻烦。与均值替换法相比,利用热卡填充法插补数据后,其变量的标准差与插补前比较接近。但在回归方程中,使用热卡填充法容易使得回归方程的误差增大,参数估计变得不稳定,而且这种方法使用不便,比较耗时。

(4)最近距离决定填补法

(5)回归填补法

假设我y属相缺失,然后我知道x属性,然后我用回归方法对没有确实的数据进行训练模型,再把这个值得x属性带进去,对这个y属性进行预测,然后填补到缺失处。

(6)多重填补方法(M-试探法)

它是基于贝叶斯理论的基础上,然后用EM算法来实现对缺失值进行处理的算法。对每一个缺失值都给M个缺失值,这样数据集就会变成M个,然后用相同的方法对这M个样本集进行处理,得到M个处理结果,总和这M个结果,最终得到对目标变量的估计。其实这个方法很简单,就是我尽量多做模型,然后找出最好的,我就叫它M-试探法吧

1k-最近邻法

先根绝欧氏距离和马氏距离函数来确定具有缺失值数据最近的k个元祖,然后将这个k个值加权(权重一般是距离的比值吧)平均来估计缺失值。

就是分别将缺失的属性作为预测项,然后根据最简单的贝叶斯方法,对这个预测项进行预测。但是这个方法有一个缺点,就是说不能把之前的预测出来的数据加入到样本集,会丢失一些数据,会影响到预测。所以现在就是对属性值进行重要性排序,然后把重要的先预测出来,在加入新的数据集,再用新的数据集预测第二个重要的属性,这样一直处理到最后为止。

首先来说说什么叫异常值。

再来说说异常值检测的作用。

应用:异常值检测在数据挖掘中有着重要的意义,比如如果异常值是由于数据本身的变异造成的,那么对他们进行分析,就可以发现隐藏的更深层次的,潜在的,有价值的信息。例如发现金融和保险的欺诈行为,黑客入侵行为,还有就是追寻极低或者极高消费人群的消费行为,然后做出相对应的产品。

那我们如何把异常值检查出来呢?

异常值检测的方法:

一般所有数据中,至少有3/4(或75%)的数据位于平均数2个标准差范围内。

所有数据中,至少有8/9(或88.9%)的数据位于平均数3个标准差范围内。

所有数据中,至少有24/25(或96%)的数据位于平均数5个标准差范围内。

所以如果我们一般是把超过三个离散值的数据称之为异常值。这个方法在实际应用中很方便的使用,但是他只有在单个属性的情况下才适用。

其实就是画图。把所有点都画出来。自然异常点就出来了。形如这样:

是不是这样异常点一下就看出来了?当然这不就是聚类吗。。。聚类我们之后在说,不急,哈哈。

首先,我们介绍什么叫四分位数。如下图所示:

把数据按照从小到大排序,其中25%为上四分位用FL表示,75%处为下四分位用FU表示。

上面的参数1.5不是绝对的,而是根据经验,但是效果很好哦。我们把异常值定义为小于上截断点,或者大于下截断点的数据称为异常值。

优点:与方差和极差相比,更加不如意受极端值的影响,且处理大规模数据效果很好。

缺点:小规模处理略显粗糙。而且只适合单个属相的检测。

本方法是根据统计模型或者数据分布。然后根绝这些模型对样本集中的每个点进行不一致检验的方法。

不一致检验:零假设和备选假设。表示我的数据分布或者概率模型满足H1,但是如果我这个值接受另外的数据模型或者概率分布H2。那么我们就认为这个数据点与总体分布不符合,是一个异常值。

下面介绍几种方法:

步骤一:先把数据按照从小到大的顺序排列x1,x2…xn。

步骤三:计算算数平均值和标准差的估计量s。

步骤四:计算统计量gi

步骤五:将gi与查Grubbs检验法的临界值表所得的g(a,n)进行比较。如果gi

这样异常值被选出来后,重复以上步骤,直到没有异常值为止。

步骤三:将r大,r小分别与Dixon检验法的临界值表得到的临界值r(a,n)进行比较、如果r大(r小)>r(a,n),可以认为最大(最小)的值为异常值,否则就不是异常值。

上面的一些方法只适用于单维数据。而且还必须确定其数据分布,所以不是太准确。

基于距离的定义:在样本集S中,O是一个异常值,仅当S中有p部分的距离大于d。可以这样理解:

图中与五角星1距离超过d的有三个点。。。我们就可以说他是异常点,假如阀值是2,现在2五角星的距离超过d的只有五角星一个。所以五角星2不是异常点。当然这个距离的计算还是用到马氏距离。

优缺点:可以多维数据监测,无需估计样本的分布,但是受参数影响严重。

假设N的数据集,建立数据子集。求出子集间得相异度,然后确定异常值。

较为复杂,计算量大。不建议使用.

根据已有的数据,然后建立模型,得到正常的模型的特征库,然后对新来的数据点进行判断。从而认定其是否与整体偏离,如果偏离,那么这个就是异常值。

其实这些和以前介绍的基本方法差不多。

总结:数据预处理是数据挖掘前期最重要的部分,本文对缺失数据及异常值检测进行了总结,具体实现,还得看你在什么样的平台上实现。这里只是提供逻辑上的思考。本花一直认为逻辑正确才能下手做事!。。。逻辑混乱,那么大脑就一直是混沌状态。。。

THE END
1.异常数据挖掘方法有哪些帆软数字化转型知识库异常数据挖掘方法有多种,主要包括:统计方法、基于机器学习的方法、基于邻域的方法、基于密度的方法、基于时间序列的方法。这些方法各有优劣,适用于不同的应用场景。其中,基于机器学习的方法因其高效和适应性强,应用最为广泛。基于机器学习的方法可以通过训练模型识别正常和异常数据,从而实现异常检测。具体的方法包括监督学https://www.fanruan.com/blog/article/565512/
2.异常检测数据挖掘领域常用异常检测算法总结以及原理解析(一)基于统计的异常检测方法主要依赖于统计学原理来识别数据中的异常值。这些方法通常假设数据遵循一定的统计分布,如正态分布等。 1. 3sigma 基于正态分布,3sigma准则认为超过3sigma的数据为异常点。 如果数据处于均值加减三倍标准差之间,则认为是正常数据,否则,则认为是异常数据。 https://blog.csdn.net/LUyan10086/article/details/139314467
3.数据挖掘之异常检测腾讯云开发者社区什么是数据挖掘:数据挖掘 什么是异常检测:异常检测 异常检测的目标是发现与大部分其他对象不同的对象。通常,异常对象被称为离群点,因为在数据的散布图中,他们远离其他数据点。异常检测也称为偏差检测、例外挖掘。 异常检测的方法各种各样,所有这些的思想都是:异常的数据对象是不寻常的,或者在某些方面与其他对象不一https://cloud.tencent.com/developer/article/2097313
4.数据挖掘中常见的「异常检测」算法有哪些?第一个问题拿不同的方法对数据集进行实验,拿实验结果进行对比即可。所选数据集如下,数据集分别为2d-https://www.zhihu.com/question/280696035/answer/2740719377
5.数据挖掘(异常检测)——线性方法异常检测(线性方法)大纲 补充内容: 一、PCA实现流程,设有 m 条 n 维数据: S1.将原始数据按列组成 n 行 m 列矩阵 X; S2.将 X 的每一行进行零均值化,即减去这一行的均值; S3.求出协方差矩阵 ; S4.求出协方差矩阵的特征值及对应的特征向量; https://www.jianshu.com/p/dacb298afce4
6.基于数据挖掘的异常用电行为诊断方法研究基于数据挖掘的异常用电行为诊断方法研究 徐凯 开通知网号 【摘要】: 随着能源需求量的不断增大,能源短缺问题变得越来越严峻,电力这项基础产业作为能源工业的重要组成部分,越来越成为国家关心的话题,而在利益的驱动下,出现了很多诸如窃电、漏电的异常用电行为,这些行为不仅会严重威胁经济发展,还会扰乱正常的供电用电https://cdmd.cnki.com.cn/Article/CDMD-10255-1018839054.htm
7.8种Python异常检测算法总结python异常检测是通过数据挖掘方法发现与数据集分布不一致的异常数据,也被称为离群点、异常值检测等等。本文为大家整理了8个常见的Python异常检测算法,希望对大家有所帮助 + 目录 一、异常检测简介 异常检测是通过数据挖掘方法发现与数据集分布不一致的异常数据,也被称为离群点、异常值检测等等。 https://www.jb51.net/article/274424.htm
8.中医证候研究的现代方法学述评(一)——中医证候数据挖掘技术(1中国中医科学院临床基础医学研究所北京100700) (2中国中医科学院广安门医院内分泌科北京100053) 摘要:目的 探索中医证候的现代研究方法.方法 对近年来的中国中医期刊有关中医证候的数 据挖掘技术进行汇总,分析其优势与不足.结果 目前用于中医证候研究的数据挖掘方法主要有: 关联规则,集对分析,粗糙集理论,聚类分析,https://xb.bucm.edu.cn/rc-pub/front/files/download?id=2+ipAoMrFehgmNszh00z3A==?fileName=2006.12%20%E5%85%A8%E6%96%87
9.时序数据异常检测数据挖掘比赛题目时序数据集时序数据异常检测数据挖掘比赛题目 时序数据集 数据是驱动科技发展的源泉,平时我们科研中也经常需要在各种开源数据上验证自己模型的效果。那时间序列目前可以使用的开源数据集有哪些呢?本期为大家做一次较为全面的整理汇总。 UCR Time Series UCR时间序列数据集是时序领域的“Imagnet”,涵盖医疗/电力/地理 等诸多领域,https://blog.51cto.com/u_14256/6303536
10.数据挖掘机器之心异常检测(Outlier Analysis)–数据库可能包含不符合数据一般行为或模型的数据对象,这些数据对象即被成为异常值。大多数数据挖掘方法将异常值视为噪声或异常。但是,在诸如欺诈检测等应用中,罕见事件可能比更常见的事件更有价值。异常值数据的分析被称为异常值挖掘。 https://www.jiqizhixin.com/graph/technologies/7904de1e-5ab5-4f0a-aa60-693cb2978766