备战数学建模42-缺失值和异常值的处理方法(攻坚战6)

Posted nuist__NJUPT

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了备战数学建模42-缺失值和异常值的处理方法(攻坚战6)相关的知识,希望对你有一定的参考价值。

在数据建模中,对给出的数据进行预测处理是很重要的,当然一般考虑有归一化或者规范化等方法对数据进行预处理,这都是在数据完整和没有异常的情况下,需要考虑的。当数据量非常大的时候,往往容易出现数据缺失或者异常的现象,如果数据有确实或者有异常值,我们需要对对缺失值和异常值进行处理。

目录

一、数据预处理

1.1、处理缺失值

1.2、处理异常值

1.3、Matlab处理缺失值和异常值


一、数据预处理

1.1、处理缺失值

对于数据确实问题,如果确实量非常大,比如缺失数据达到该项总体数据的40%,就可以考虑直接将该项数据删除,直接不考虑该项指标。

如果缺失的数据比较少,对个体精度要求不高,可以使用均值和众数的方式补全数据。如果对精度要求较高,可以使用牛顿插值法或者样条插值,当然基本上都是用样条插值。

1.2、处理异常值

对于数据中出现的异常值,一般直接删除,当作缺失值处理即可,但是怎么找到异常值呢,或者以什么标准去衡量一个值为异常值呢,对于服从正态分布的数据,一般使用3σ原则,就是不在这个范围内的,默认为异常值。 如果不服从正态分布,则可以使用画箱型图的方式,找出异常值。

1.3、Matlab处理缺失值和异常值

我们先准备数据,生成1*100的服从正态分布的均值为0,方差为1的数据,然后设置缺失值和异常值,代码如下:

clear;
clc
x = 1 : 100 ;
data = randn(1,100) ; %生成1行100列的服从均值为0,方差为1的正太分布数据
data(20:20:80) = NaN ; %设置20,40,60,80为缺失值
data(10) = -50 ;
data(40) = 45; 
data(70) = -40 ;
data(90) = 50 ;
plot(x,data) ;

我们看一下绘制的图像,明显有缺失的断点和异常凸凹的数据,如下:

点击实时编辑器下的任务下栏的清理缺失数据。

选择填充缺失数据的方式,有很多种,这里根据自己的需要选择填充数据的方式。可以看到缺失值被红点填充了,现在data种已经没有缺失数据了。

点击这个三角号,matlab对自动生成填充代码,可以直接用这个代码进行填充数据。

对于异常值,可以点击清理离群数据,对异常值进行处理。

 然后选择补全缺失值后的数据,进行异常值处理,如下:

以上是关于备战数学建模42-缺失值和异常值的处理方法(攻坚战6)的主要内容,如果未能解决你的问题,请参考以下文章

MATLAB从入门到精通-缺失值和异常值的处理应用案例

备战数学建模49-深度学习之长短期记忆网络LSTM(RNN)(攻坚战14)

备战数学建模49-深度学习之长短期记忆网络LSTM(RNN)(攻坚战14)

​一文看懂数据清洗:缺失值、异常值和重复值的处理

备战数学建模38-粒子群算法pso番外篇1(攻坚战2)

备战数学建模38-粒子群算法pso番外篇1(攻坚战2)