【机器学习】数据清洗之处理异常点

🎈个人主页:甜美的江
🎉欢迎 👍点赞✍评论⭐收藏
🤗收录专栏:机器学习
🤝希望本文对您有所裨益,如有不足之处,欢迎在评论区提出指正,让我们共同学习、交流进步!

【机器学习】数据清洗之处理异常点

  • 一 确定处理策略:
    • 1.1 考虑因素
    • 1.2 常用处理策略
  • 二 删除异常值
  • 三 替代异常值:
  • 四 转换异常值:
  • 五 三种处理策略的优缺点及应用场景
    • 5.1 删除异常点:
    • 5.2 替换异常点:
    • 5.3 转换异常点:
  • 六 总结

引言:

在数据分析和建模的过程中,我们常常会面对一个重要的问题:异常值。这些异常值可能是由于数据采集过程中的误差、设备故障或其他未知原因引起的。处理异常值是确保我们的模型能够稳健、准确地进行预测的关键一环。

本博客将深入探讨处理异常值的不同策略,以及它们各自的优缺点。首先,我们会详细介绍在确定处理策略时需要考虑的因素,然后深入研究常用的三种处理策略:删除、替代和转换异常值。通过这些讨论,我们旨在帮助读者更好地理解如何在实际应用中选择最适合的处理方法,以确保数据的质量和模型的鲁棒性。

在这里插入图片描述

一 确定处理策略:

1.1 考虑因素

1 异常值的来源:

首先要确定异常值是由于数据录入错误、测量错误、自然变异还是其他原因导致的。这有助于确定适当的处理方法。

2 数据的背景知识:

对数据所代表的领域有一定的了解是很重要的,因为某些领域的数据可能会有特定的异常模式或行为。

3 异常值的影响程度:

确定异常值对数据分析或建模的影响程度。如果异常值影响不大,可以考虑忽略它们;如果影响较大,则需要采取适当的处理措施。

4 数据的分布情况:

分析数据的分布情况,包括均值、中位数、标准差、四分位数等,以确定异常值的位置和数量。

5 处理方法的选择:

根据异常值的性质和数据的特点,选择合适的处理方法,如删除、替代、转换等。

6 数据完整性:

考虑处理异常值对数据完整性的影响。有时候,删除异常值可能会导致数据的缺失,需要权衡处理。

1.2 常用处理策略

1 删除异常值:

当异常值是由于数据录入错误或测量错误导致时,可以考虑直接删除这些异常值。删除异常值可能会影响数据的完整性,因此需要谨慎处理,并根据实际情况确定删除的阈值和方法。

2 替代异常值:

当异常值是真实存在的、但对数据分析或建模有不利影响时,可以考虑使用替代值来代替异常值。常用的替代值包括中位数、均值、众数等,也可以使用插值方法来估算异常值。

3 转换异常值:

对于无法删除或替代的异常值,可以考虑对其进行转换,使其更接近正常范围。常见的转换方法包括取对数、开方等变换。

4 使用专门算法处理异常值:

对于复杂的数据集或特定的异常值情况,可以考虑使用专门的异常值检测算法,如基于聚类的方法、孤立森林、One-Class SVM等。

5 综合考虑多种方法:

综合考虑多种方法来确定处理异常值的策略,可以提高处理的准确性和鲁棒性。

在实践中,确定处理异常值的策略通常是一个综合考虑多个因素的过程,需要根据具体情况灵活选择合适的方法。

二 删除异常值

在数据清洗过程中,删除异常值是一种常见的处理方法之一。异常值可能会严重影响数据分析和建模的结果,因此在某些情况下,删除异常值是合理的做法。下面是详细介绍数据清洗中删除异常值的步骤和注意事项:

1 确定异常值的阈值:

在删除异常值之前,需要先确定异常值的阈值。通常可以使用统计方法,如四分位距(IQR)来识别异常值。通过计算数据的上下四分位数(Q1和Q3),然后计算IQR(IQR = Q3 - Q1),再乘以一个常数(通常为1.5或3),得到异常值的上下限。

2 识别异常值:

使用确定的阈值,对数据集进行扫描,识别出超出阈值范围的数据点。这些数据点即被认定为异常值。

3 删除异常值:

一旦识别出异常值,可以选择将其删除。删除的方法包括完全删除异常值所在的行,或者将异常值替换为缺失值(如NaN)。

4 谨慎处理:

在删除异常值之前,需要仔细考虑异常值的来源和可能的影响。有时候,异常值可能是真实存在的极端情况,而不是数据错误。因此,在删除之前要确保异常值不是有意义的数据。

5 观察删除后的数据分布:

删除异常值之后,需要观察数据分布是否更加符合预期,并且数据的统计性质是否得到改善。可以绘制直方图、盒图等图表来比较删除前后的数据分布情况。

6 注意数据完整性:

删除异常值可能会导致数据的缺失,因此需要注意处理后数据的完整性。在删除异常值时,要确保删除的数据量不会影响到整体数据的可用性和代表性。

7 敏感性分析:

可以进行敏感性分析,尝试不同的异常值阈值,并观察结果的稳定性和可信度。有时候,异常值的识别阈值可能会影响最终的分析结果。

8 记录处理过程:

在数据清洗过程中,记录删除异常值的操作,包括删除的数据数量、删除的原因、使用的阈值等信息。这有助于保留数据处理的记录和可追溯性。

总的来说,删除异常值是数据清洗中常用的一种处理方法,但在使用之前需要慎重考虑异常值的来源和可能的影响,以及删除后数据的完整性和可信度。

三 替代异常值:

在数据清洗过程中,除了删除异常值之外,另一种常见的处理方法是替代异常值。替代异常值意味着用其他数值代替异常值,从而保留数据点并降低异常值对分析结果的影响。下面是详细介绍数据清洗中替代异常值的步骤和方法:

1 确定替代策略:

在替代异常值之前,需要确定替代策略。

常见的替代策略包括用平均值、中位数、众数、特定分布的随机值或者利用插值方法估算的值来替代异常值。

2 识别异常值:

与删除异常值相同,首先需要识别数据中的异常值。

可以使用统计方法(如四分位距)或基于领域知识进行识别。

3 选择替代值:

一旦识别出异常值,根据确定的替代策略选择替代值。

选择替代值时,要考虑数据的分布、异常值的数量和位置,以及替代值对后续分析的影响。

4 替代方法:

替代异常值的方法有多种,包括:

1使用平均值或中位数:
将异常值替换为整个数据集的平均值或中位数。这种方法简单直接,但可能会受到异常值的影响。

2 使用众数
对于分类变量,可以将异常值替换为该变量的众数。

3 随机替代:
从特定分布中随机生成值来替代异常值。例如,可以根据数据的分布(如正态分布)生成随机值来替代异常值。

4 插值方法:
使用插值技术(如线性插值、多项式插值或样条插值)根据异常值前后的数据点估算替代值。

5 利用领域知识:
根据数据背景和领域知识来确定替代值,例如使用相邻时间点的数据或相关变量的数据进行替代。

5 观察替代后的数据分布

替代异常值之后,需要观察数据分布是否更加符合预期,并且数据的统计性质是否得到改善。

可以绘制直方图、盒图等图表来比较替代前后的数据分布情况。

6 谨慎选择替代值

在选择替代值时要谨慎,确保替代值不会引入更大的偏差或错误。

合理的替代值应该尽可能地保留原始数据的特征和信息。

7 记录处理过程

与删除异常值一样,对替代异常值的操作也需要记录,包括使用的替代方法、替代值的选择原因等信息,以便于后续分析和可追溯性。

总的来说,替代异常值是数据清洗中常用的一种处理方法,适用于保留异常值的情况下,并通过合理的替代值降低异常值对分析结果的影响。

四 转换异常值:

在数据清洗过程中,转换异常值是一种处理异常点的方法,其目的是通过对异常值进行变换或转换,将其调整为符合数据分布的合理值。

这种方法与替代异常值有所不同,因为它不是简单地用其他数值代替异常值,而是通过某种变换方式将异常值转换为更接近正常数据点的值。

下面是关于数据清洗中转换异常值的详细介绍:

1 识别异常值:

首先,需要识别数据中的异常值。这可以通过基于统计方法(如四分位距)或基于领域知识进行识别。

2 确定转换方式:

一旦异常值被识别出来,需要确定如何对其进行转换。

这通常需要结合数据的特点和异常值的分布情况来决定。

一些常见的转换方式包括:

对数转换:将数据取对数可以减小异常值的影响,并使得数据更接近正态分布。

平方根转换:类似地,平方根转换也可以减小异常值的影响,并且可以用于处理偏态分布。

Box-Cox转换:Box-Cox转换是一种参数化的转换方法,可以使数据更加接近正态分布。

截尾转换:将超出某个阈值的异常值截尾,使其等于该阈值。

Winsorization转换:将超出某个阈值的异常值替换为该阈值,类似于截尾转换,但是替换的方式不同。

3 应用转换:

选择合适的转换方式后,将其应用于异常值。

这可能需要对整个数据集进行转换,或者仅对异常值进行转换,具体取决于转换方式和数据的分布特点。

4 观察转换后的数据分布:

转换异常值之后,需要观察数据分布是否更加符合预期,并且数据的统计性质是否得到改善。

可以使用直方图、盒图等图表来比较转换前后的数据分布情况。

5 谨慎选择转换方式:

在选择转换方式时要谨慎,确保选择的方式能够有效地调整异常值,并且不会引入更大的偏差或错误。

合理的转换方式应该能够保留原始数据的特征和信息。

6 记录处理过程:

与其他数据清洗操作一样,对转换异常值的操作也需要进行记录,包括使用的转换方式、转换的原因以及转换后的结果等信息,以便于后续分析和可追溯性。

总的来说,转换异常值是数据清洗中常用的一种处理方法,适用于需要调整异常值以使其更符合数据分布的情况。通过合适的转换方式,可以有效地减小异常值对分析结果的影响,并提高数据的质量和可解释性。

五 三种处理策略的优缺点及应用场景

处理异常点的三种主要策略是删除、替换和转换。这些策略都有各自的优缺点,适用于不同的情况和需求。

5.1 删除异常点:

优点:

简单直接:删除异常点是最直观和简单的方法,不需要额外的计算或复杂的处理步骤。

不影响模型:删除异常点可以确保模型不受异常值的影响,从而提高模型的稳定性和准确性。

缺点:

信息丢失:删除异常点可能会导致数据信息的丢失,尤其是在数据量本来就不多的情况下,删除异常点可能会导致数据不足以训练出健壮的模型。

潜在偏见:删除异常点可能会引入数据偏见,特别是在异常点实际上是重要信息或特殊情况的情况下。

应用场景:

当异常点数量较少且对模型性能有负面影响时,可以考虑删除异常点。

对于异常点明显且对建模任务不重要的情况下,删除异常点是一个有效的处理方法。

5.2 替换异常点:

优点:

保留数据信息:替换异常点可以保留数据集的信息,避免了删除异常点可能导致的信息丢失问题。

维护数据结构:替换异常点可以确保数据集的结构和完整性,使其适合于一些模型的训练和应用。

缺点:

引入偏见:替换异常点可能会引入偏见,尤其是当替换方法不合理或不准确时,可能会导致结果不准确。

难以确定替换值:确定如何替换异常值通常是一个挑战,需要根据具体情况和领域知识来选择合适的替换方法。

应用场景:

当异常点数量较少且有合理的替换方法时,可以考虑替换异常点。

对于异常点对模型影响不大,但需要保留数据信息的情况下,替换异常点是一个合适的选择。

5.3 转换异常点:

优点:

保留异常信息:转换异常点可以将异常值转换成其他值,从而保留了异常点的信息,同时降低了其对模型的影响。

灵活性:转换异常点可以根据具体情况采取不同的转换方法,使其更加灵活适应各种场景。

缺点:

需要领域知识:转换异常点需要对数据和领域有深入的理解,以确保选取的转换方法合理且有效。

增加复杂度:转换异常点可能会增加数据处理的复杂度,并且需要谨慎地选择合适的转换方法。

应用场景:

当需要保留异常点信息同时减少其对模型的影响时,可以考虑转换异常点。

对于异常点数量较多且需要根据具体情况进行个性化处理时,转换异常点是一个合适的选择。

在实际应用中,通常需要根据具体情况综合考虑这三种策略的优缺点,并根据数据特点、领域知识和建模需求选择合适的处理方法。

六 总结

在本博客中,我们深入研究了处理异常值的三种主要策略:删除、替代和转换。我们首先讨论了确定处理策略时需要考虑的因素,包括数据特点、领域知识和建模需求。
接着,我们详细介绍了删除异常值、替代异常值和转换异常值的方法,并对每种方法的优缺点进行了全面分析。

删除异常点是一种简单直接的方法,但可能导致信息丢失;

替代异常点保留了数据信息,但可能引入偏见;

而转换异常点则在保留异常信息的同时减少其对模型的影响,但需要更多的领域知识。

最后,我们总结了每种策略的应用场景,以帮助读者在实际应用中做出明智的选择。无论您是在进行数据清洗、建模还是分析,选择合适的异常值处理策略都将对最终结果产生深远的影响。

这篇文章到这里就结束了

谢谢大家的阅读!

如果觉得这篇博客对你有用的话,别忘记三连哦。

我是甜美的江,让我们我们下次再见

在这里插入图片描述

在这里插入图片描述

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/news/681751.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

数据结构——lesson2线性表和顺序表

目录 前言 一、顺序表是什么? 1. 静态顺序表:使用定长数组存储元素 2. 动态顺序表:使用动态开辟的数组存储。 二、接口实现 1.动态顺序表存储 2.基本增删查改接口 (1)初始化顺序表 (2)顺序表摧毁 (3)检查空间 (4)顺序表打印 (5)顺…

第四篇【传奇开心果微博系列】Python微项目技术点案例示例:美女颜值判官

传奇开心果微博系列 系列微博目录Python微项目技术点案例示例系列 微博目录一、微项目目标二、雏形示例代码三、扩展思路四、添加不同类型的美女示例代码五、增加难度等级示例代码六、添加特殊道具示例代码七、设计关卡系统示例代码八、添加音效和背景音乐示例代码九、多人游戏…

C++ 音视频原理

本篇文章我们来描述一下音视频原理 音视频录制原理: 下面是对这张思维导图的介绍 摄像头部分: 麦克风采集声音 摄像头采集画面 摄像头采集回来的数据可以用RGB也可以用YUV来表示 图像帧帧率 一秒能处理多少张图像 图像处理 :调亮度 图像帧队列 :意思是将数据取…

简单介绍源程序执行方式

源程序执行方式 编译和解释 程序设计语言能够把算法翻译成机器能够理解的可执行程序。这里将计算机不能直接执行的非机器语言源程序翻译成能直接执行的机器语言的语言翻译程序称为语言处理程序 源程序:用各种程序设计语言编写的程序称为源程序,计算机不…

C++ //练习 6.6 说明形参、局部变量以及局部静态变量的区别。编写一个函数,同时用到这三种形式。

C Primer(第5版) 练习 6.6 练习 6.6 说明形参、局部变量以及局部静态变量的区别。编写一个函数,同时用到这三种形式。 环境:Linux Ubuntu(云服务器) 工具:vim 代码块 /********************…

分享87个CSS3特效,总有一款适合您

分享87个CSS3特效,总有一款适合您 87个CSS3特效下载链接:https://pan.baidu.com/s/1CAxe8nPBzXvH7Nr6B_U72Q?pwd8888 提取码:8888 Python采集代码下载链接:采集代码.zip - 蓝奏云 学习知识费力气,收集整理更不…

更新至2022年,迪博上市公司内部控制指数、分项指数、评级等数据

更新至2022年,上市公司迪博内部控制指数、分项指数、评级等数据 1、时间:更新至2022年,四份数据,具体时间见下文 2、范围:上市公司 3、具体数据: 2000-2022年上市公司内部控制指数评级及评分数据 2007…

【JVM篇】什么是jvm

文章目录 🍔什么是Java虚拟机🛸Java虚拟机有什么用🌹Java虚拟机的功能🎈Java虚拟机的组成 🍔什么是Java虚拟机 JVM指的是Java虚拟机,本质上是一个运行在计算机上的程序,可以运行 Java字节码文件…

NAT——网络地址转换、NAPT

网络地址转换 NAT (Network Address Translation) 1994 年提出。 需要在专用网连接到互联网的路由器上安装 NAT 软件。 装有 NAT 软件的路由器叫做 NAT路由器,它至少有一个有效的外部全球 IP 地址。 所有使用本地地址的主机在和外界通信时,都要在 NA…

【教程】MySQL数据库学习笔记(三)——数据定义语言DDL(持续更新)

写在前面: 如果文章对你有帮助,记得点赞关注加收藏一波,利于以后需要的时候复习,多谢支持! 【MySQL数据库学习】系列文章 第一章 《认识与环境搭建》 第二章 《数据类型》 第三章 《数据定义语言DDL》 文章目录 【MyS…

docker 1:介绍

docker 1:介绍 docker解决哪些问题: 传统APP在安装到不同电脑的时候可能会遇到依赖问题,比如缺少VS 20xx,软件无法运行”的情况。docker使用容器技术将软件 依赖​打包为image包发布,解决了依赖问题。docker有一个官…

MATLAB|【免费】高比例可再生能源电力系统的调峰成本量化与分摊模型

目录 主要内容 部分代码 结果一览 下载链接 主要内容 程序复现文献《高比例可再生能源电力系统的调峰成本量化与分摊模型》,从净负荷波动的角度出发,建立了调峰成本的量化与分摊模型,构造了无调峰需求的替代场景,将…

在Ubuntu22.04上部署FoooCUS2.1

Fooocus 是一款基于 Gradio的图像生成软件,Fooocus 是对 Stable Diffusion 和 Midjourney 设计的重新思考: 1、从 Stable Diffusion 学习,该软件是离线的、开源的和免费的。 2、从 Midjourney 中学到,不需要手动调整,…

优先级队列(堆)_PriorityQueue

前言 想要看如何使用可以通过目录跳转到 PriorityQueue的使用 优先级队列 概念 队列是一种先进先出(FIFO)的数据结构,但有些情况下,操作的数据可能带有优先级,一般出队 列时,可能需要优先级高的元素先出队列,该中场…

前端秘法引言(配置vscode, 以及html的基础)

目录 一.配置环境vscode 二.配置插件 三.vscode的实用小技巧 四.标题段落换行标签 五.格式化标签 一.配置环境vscode vscode官网https://code.visualstudio.com/ 点击右上角的download 根据不同的操作系统进行下载安装,我这里选的是Windows x64 安装好后打开,点击左上角的…

【知识整理】产研中心岗位评定标准之测试岗位

为贯彻执行集团数字化转型的需要,该知识库将公示集团组织内各产研团队不同角色成员的职务“职级”岗位的评定标准; 一、定级定档目的 通过对公司现有岗位及相应岗位员工的工作能力、工作水平进行客观公正评定,确定各岗位的等级及同等级岗位员工对应的档级,从而为员工以后的晋升…

【开源】JAVA+Vue.js实现天然气工程运维系统

目录 一、摘要1.1 项目介绍1.2 项目录屏 二、功能模块2.1 系统角色分类2.2 核心功能2.2.1 流程 12.2.2 流程 22.3 各角色功能2.3.1 系统管理员功能2.3.2 用户服务部功能2.3.3 分公司(施工单位)功能2.3.3.1 技术员角色功能2.3.3.2 材料员角色功能 2.3.4 安…

九、java 继承

文章目录 java 继承3.1 根父类Object3.2 方法重写3.3 继承案例:图形类继承体系3.4 继承的细节3.4.1 构造方法3.4.2 重名与静态绑定3.4.3 重载和重写3.4.4 父子类型转换3.4.5 继承访问权限protected3.4.6 可见性重写3.4.7 防止继承final 3.5 继承是把双刃剑3.5.1 继承…

爬虫-华为云空间备忘录导出到docx-selenium控制浏览器行为-python数据处理

背景适用情况介绍 老的荣耀手机属于华为云系统,家里人换了新荣耀手机属于荣耀云系统无法通过云空间将备忘录转移到新手机,不想让他们一个一个搞,于是整了一晚上想办法爬取下来。从网页抓取下来,然后存到docx文档中(包…

福布斯2023年推荐:十佳项目管理软件榜单揭晓

项目管理软件可以轻松规划项目、分配任务并保持团队井井有条,以便满足截止日期和目标。然而当今市场上有如此多的项目管理系统,选择适合您需求的正确选项可能很困难。为了提供帮助,福布斯小型企业顾问团队分析了数十家领先的提供商&#xff0…