【机器学习】数据清洗之处理异常点
🎈个人主页:甜美的江
🎉欢迎 👍点赞✍评论⭐收藏
🤗收录专栏:机器学习
🤝希望本文对您有所裨益,如有不足之处,欢迎在评论区提出指正,让我们共同学习、交流进步!
【机器学习】数据清洗之处理异常点
- 一 确定处理策略:
- 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 转换异常点:
优点:
保留异常信息:转换异常点可以将异常值转换成其他值,从而保留了异常点的信息,同时降低了其对模型的影响。
灵活性:转换异常点可以根据具体情况采取不同的转换方法,使其更加灵活适应各种场景。
缺点:
需要领域知识:转换异常点需要对数据和领域有深入的理解,以确保选取的转换方法合理且有效。
增加复杂度:转换异常点可能会增加数据处理的复杂度,并且需要谨慎地选择合适的转换方法。
应用场景:
当需要保留异常点信息同时减少其对模型的影响时,可以考虑转换异常点。
对于异常点数量较多且需要根据具体情况进行个性化处理时,转换异常点是一个合适的选择。
在实际应用中,通常需要根据具体情况综合考虑这三种策略的优缺点,并根据数据特点、领域知识和建模需求选择合适的处理方法。
六 总结
在本博客中,我们深入研究了处理异常值的三种主要策略:删除、替代和转换。我们首先讨论了确定处理策略时需要考虑的因素,包括数据特点、领域知识和建模需求。
接着,我们详细介绍了删除异常值、替代异常值和转换异常值的方法,并对每种方法的优缺点进行了全面分析。
删除异常点是一种简单直接的方法,但可能导致信息丢失;
替代异常点保留了数据信息,但可能引入偏见;
而转换异常点则在保留异常信息的同时减少其对模型的影响,但需要更多的领域知识。
最后,我们总结了每种策略的应用场景,以帮助读者在实际应用中做出明智的选择。无论您是在进行数据清洗、建模还是分析,选择合适的异常值处理策略都将对最终结果产生深远的影响。
这篇文章到这里就结束了
谢谢大家的阅读!
如果觉得这篇博客对你有用的话,别忘记三连哦。
我是甜美的江,让我们我们下次再见
相关文章:

【机器学习】数据清洗之处理异常点
🎈个人主页:甜美的江 🎉欢迎 👍点赞✍评论⭐收藏 🤗收录专栏:机器学习 🤝希望本文对您有所裨益,如有不足之处,欢迎在评论区提出指正,让我们共同学习、交流进步…...
JavaScript学习之旅10------掌握jQuery:实用应用案例深度解析
目录 写在开头1. jQuery基础知识回顾1.1. 选择器1.2. 事件1.3. 效果1.4. DOM操作1.5. AJAX 2. 实用应用案例分析2.1. 动态内容加载2.2. 表单验证2.3. 图像滑动门效果2.4. 创建动态导航菜单 3. 高级技巧与最佳实践3.1. 优化jQuery代码的性能3.2. jQuery插件的使用和自定义3.3. j…...
017_逆向工程搭建和使用
文章目录 启动代码生成器然后访问第一步处理:前端代码删除逆向生成的代码中有好多东西要引入创建gulimall-common插曲:修改模块名dao层entity层service层controllerRQuery文件当中的报错☆ 调整renren-generator的逆向工程逆向生成代码当中有什么总结...

位运算+leetcode(1)
基础 1.基础知识 以下都是针对数字的二进制进行操作 >> 右移操作符<< 左移操作符~ 取反操作符 & 有0就是0,全一才一 | 有一才一 ,全0才0^ 相同为0,相异为1 异或( ^ )运算的规律 a ^ 0 a a ^ a 0a ^ b ^ c a ^ (b …...
如何在 JavaScript 中比较两个日期 – 技术、方法和最佳实践
在 JavaScript 中,您可以使用 date 对象有效地处理应用程序中的日期、时间和时区。 Date 对象可帮助您有效地操作数据、处理各种与日期相关的任务,并在创建实际应用程序时执行一些计算。 (本文内容参考:java567.com)…...
【More Effective C++】条款17:考虑使用lazy evaluation
含义:将计算拖延到必须计算的时候,以下为4个场景 优点:避免不必要的计算,节省成本 缺点: 管理复杂性:可能会增加代码复杂性,特别是在多线程环境中需要正确处理同步和并发问题。性能开销&…...

深入探索Pandas读写XML文件的完整指南与实战read_xml、to_xml【第79篇—读写XML文件】
深入探索Pandas读写XML文件的完整指南与实战read_xml、to_xml XML(eXtensible Markup Language)是一种常见的数据交换格式,广泛应用于各种应用程序和领域。在数据处理中,Pandas是一个强大的工具,它提供了read_xml和to…...
如何在我们的模型中使用Beam search
在上一篇文章中我们具体探讨了Beam search的思想以及Beam search的大致工作流程。根据对Beam search的大致流程我们已经清楚了,在这我们来具体实现一下Beam search并应用在我们的seq2seq任务中。 1. python中的堆(heapq) 堆是一种特殊的树形…...

PKI - 借助Nginx 实现Https 服务端单向认证、服务端客户端双向认证
文章目录 Openssl操系统默认的CA证书的公钥位置Nginx Https 自签证书1. 生成自签名证书和私钥2. 配置 Nginx 使用 HTTPS3. 重启 Nginx 服务4. 直接访问5. 不验证证书直接访问6. 使用server.crt作为ca证书验证服务端解决方法1:使用 --resolve 参数进行请求域名解析解…...

WebSocket原理详解
目录 1.引言 1.1.使用HTTP不断轮询 1.2.长轮询 2.websocket 2.1.概述 2.2.websocket建立过程 2.3.抓包分析 2.4.websocket的消息格式 3.使用场景 4.总结 1.引言 平时我们打开网页,比如购物网站某宝。都是点一下列表商品,跳转一下网页就到了商品…...

在面试中如何回复擅长vue还是react
当面试官问及这个问题的时候,我们需要思考面试官是否是在乎你是掌握vue还是react吗??? 在大前端的一个环境下,当前又有AI人工智能的加持辅助,我们是不是要去思考企业在进行前端岗位人员需求的时候…...

使用Vue.js输出一个hello world
导入vue.js <script src"https://cdn.jsdelivr.net/npm/vue2/dist/vue.js"></script> 创建一个标签 <div id"app">{{message}}</div> 接管标签内容,创建vue实例 <script type"text/javascript">va…...

15 ABC基于状态机的按键消抖原理与状态转移图
1. 基于状态机的按键消抖 1.1 什么是按键? 从按键结构图10-1可知,按键按下时,接点(端子)与导线接通,松开时,由于弹簧的反作用力,接点(端子)与导线断开。 从…...
λ-矩阵的多项式展开
原文链接 定义. 对于 m n m \times n mn 的 λ \lambda λ-矩阵 A ( λ ) [ a 11 ( λ ) . . . a 1 n ( λ ) ⋮ ⋮ a m 1 ( λ ) . . . a m n ( λ ) ] \mathbf{A}(\lambda)\begin{bmatrix} a_{11}(\lambda) & ... & a_{1n}(\lambda)\\ \vdots & & \vdo…...

如何在PDF 文件中删除页面?
查看不同的工具以及解释如何在 Windows、Android、macOS 和 iOS 上从 PDF 删除页面的步骤: PDF 是最难处理的文件格式之一。曾经有一段时间,除了阅读之外,无法用 PDF 做任何事情。但是今天,有许多应用程序和工具可以让您用它们做…...
蓝桥杯官网填空题(质数拆分)
问题描述 将 2022 拆分成不同的质数的和,请问最多拆分成几个? 答案提交 本题为一道结果填空的题,只需要算出结果后,在代码中使用输出语句将结果输出即可。 运行限制 import java.util.Scanner;public class Main {static int …...

【数据结构】二叉树的顺序结构及链式结构
目录 1.树的概念及结构 1.1树的概念 1.2树的相关概念 编辑 1.3树的表示 1.4树在实际中的运用(表示文件系统的目录树结构) 2.二叉树概念及结构 2.1二叉树的概念 2.2现实中的二叉树 编辑 2.3特殊的二叉树 2.4二叉树的性质 2.5二叉树的存储结…...

海外IP代理:解锁网络边界的实战利器
文章目录 引言:正文:一、Roxlabs全球IP代理服务概览特点:覆盖范围:住宅IP真实性:性价比:在网络数据采集中的重要性: 二、实战应用案例一:跨境电商竞品分析步骤介绍:代码示…...

如何写好一个简历
如何编写求职简历 论Java程序员求职中简历的重要性 好简历的作用 在求职过程中,一份好的简历是非常重要的,它甚至可以直接决定能否被面试官认可。一份出色或者说是成功的个人简历,最根本的作用是能让看这份简历的人产生一定要见你的强烈愿…...

【AutoML】AutoKeras 进行 RNN 循环神经网络训练
由于最近这些天都在人工审查之前的哪些问答数据,所以迟迟都没有更新 AutoKeras 的训练结果。现在那部分数据都已经整理好了,20w 的数据最后能够使用的高质量数据只剩下 2k。这 2k 的数据已经经过数据校验并且对部分问题的提问方式和答案内容进行了不改变…...

循环冗余码校验CRC码 算法步骤+详细实例计算
通信过程:(白话解释) 我们将原始待发送的消息称为 M M M,依据发送接收消息双方约定的生成多项式 G ( x ) G(x) G(x)(意思就是 G ( x ) G(x) G(x) 是已知的)࿰…...
蓝桥杯 2024 15届国赛 A组 儿童节快乐
P10576 [蓝桥杯 2024 国 A] 儿童节快乐 题目描述 五彩斑斓的气球在蓝天下悠然飘荡,轻快的音乐在耳边持续回荡,小朋友们手牵着手一同畅快欢笑。在这样一片安乐祥和的氛围下,六一来了。 今天是六一儿童节,小蓝老师为了让大家在节…...

高危文件识别的常用算法:原理、应用与企业场景
高危文件识别的常用算法:原理、应用与企业场景 高危文件识别旨在检测可能导致安全威胁的文件,如包含恶意代码、敏感数据或欺诈内容的文档,在企业协同办公环境中(如Teams、Google Workspace)尤为重要。结合大模型技术&…...

使用Spring AI和MCP协议构建图片搜索服务
目录 使用Spring AI和MCP协议构建图片搜索服务 引言 技术栈概览 项目架构设计 架构图 服务端开发 1. 创建Spring Boot项目 2. 实现图片搜索工具 3. 配置传输模式 Stdio模式(本地调用) SSE模式(远程调用) 4. 注册工具提…...

基于Springboot+Vue的办公管理系统
角色: 管理员、员工 技术: 后端: SpringBoot, Vue2, MySQL, Mybatis-Plus 前端: Vue2, Element-UI, Axios, Echarts, Vue-Router 核心功能: 该办公管理系统是一个综合性的企业内部管理平台,旨在提升企业运营效率和员工管理水…...
从面试角度回答Android中ContentProvider启动原理
Android中ContentProvider原理的面试角度解析,分为已启动和未启动两种场景: 一、ContentProvider已启动的情况 1. 核心流程 触发条件:当其他组件(如Activity、Service)通过ContentR…...
Vue3中的computer和watch
computed的写法 在页面中 <div>{{ calcNumber }}</div>script中 写法1 常用 import { computed, ref } from vue; let price ref(100);const priceAdd () > { //函数方法 price 1price.value ; }//计算属性 let calcNumber computed(() > {return ${p…...

图解JavaScript原型:原型链及其分析 | JavaScript图解
忽略该图的细节(如内存地址值没有用二进制) 以下是对该图进一步的理解和总结 1. JS 对象概念的辨析 对象是什么:保存在堆中一块区域,同时在栈中有一块区域保存其在堆中的地址(也就是我们通常说的该变量指向谁&…...

Windows电脑能装鸿蒙吗_Windows电脑体验鸿蒙电脑操作系统教程
鸿蒙电脑版操作系统来了,很多小伙伴想体验鸿蒙电脑版操作系统,可惜,鸿蒙系统并不支持你正在使用的传统的电脑来安装。不过可以通过可以使用华为官方提供的虚拟机,来体验大家心心念念的鸿蒙系统啦!注意:虚拟…...
数据库正常,但后端收不到数据原因及解决
从代码和日志来看,后端SQL查询确实返回了数据,但最终user对象却为null。这表明查询结果没有正确映射到User对象上。 在前后端分离,并且ai辅助开发的时候,很容易出现前后端变量名不一致情况,还不报错,只是单…...