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


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

    目录

    一、数据预处理

    1.1、处理缺失值

    1.2、处理异常值

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


    一、数据预处理

    1.1、处理缺失值

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

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

    1.2、处理异常值

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

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

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

    1. clear;
    2. clc
    3. x = 1 : 100 ;
    4. data = randn(1,100) ; %生成1100列的服从均值为0,方差为1的正太分布数据
    5. data(20:20:80) = NaN ; %设置204060,80为缺失值
    6. data(10) = -50 ;
    7. data(40) = 45;
    8. data(70) = -40 ;
    9. data(90) = 50 ;
    10. plot(x,data) ;

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

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

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

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

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

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

  • 相关阅读:
    VisualStudio 制作Dynamic Link Library动态链接库文件
    聊聊机器如何“写“好广告文案?
    助力新冠抗原检测,基于目标检测模型完成结果检测识别
    嵌入式软件架构设计-建立抽象层
    Pariatur sint mollitia odit eveniet.Dazu Name tragen.
    详解IDEA git 版本回滚
    编程技巧│浏览器 Notification 桌面推送通知
    量子计算基础——矩阵语言
    @MapperScan注解的使用
    修改unity - ios 启动类
  • 原文地址:https://blog.csdn.net/nuist_NJUPT/article/details/126771137