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

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

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

  • 一 确定处理策略:
    • 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 转换异常点:

优点:

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

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

缺点:

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

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

应用场景:

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

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

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

六 总结

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

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

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

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

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

这篇文章到这里就结束了

谢谢大家的阅读!

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

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

在这里插入图片描述

在这里插入图片描述

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

如若内容造成侵权/违法违规/事实不符,请联系我们进行投诉反馈qq邮箱809451989@qq.com,一经查实,立即删除!

相关文章

php数组与字符串函数

php数组与字符串函数 1. php数组2. 字符串函数 1. php数组 在php中,有三种类型的数组: 数值数组 - 带有数字ID键的数组关联数组 - 带有指定的键的数组,每个键关联一个值多维数组 - 包含一个或多个数组的数组 2. 字符串函数 在PHP中&#xf…

vue三种路由守卫详解

在 Vue 中,可以通过路由守卫来实现路由鉴权。Vue 提供了三种路由守卫:全局前置守卫、全局解析守卫和组件内的守卫。 全局前置守卫 通过 router.beforeEach() 方法实现,可以在路由跳转之前进行权限判断。在这个守卫中,可以根据用…

leetcode(数组)128.最长连续序列(c++详细解释)DAY8

文章目录 1.题目示例提示 2.解答思路3.实现代码结果 4.总结 1.题目 给定一个未排序的整数数组 nums ,找出数字连续的最长序列(不要求序列元素在原数组中连续)的长度。 请你设计并实现时间复杂度为 O(n) 的算法解决此问题。 示例 示例 1&a…

GEE:梯度提升树(Gradient Boosting Tree)回归教程(样本点、特征添加、训练、精度、参数优化)

作者:CSDN @ _养乐多_ 对于分类问题,这个输出通常是一个类别标签 ,而对于回归问题,输出通常是一个连续的数值。回归可以应用于多种场景,包括预测土壤PH值、土壤有机碳、土壤水分、碳密度、生物量、气温、海冰厚度、不透水面积百分比、植被覆盖度等。 本文将介绍在Google…

Day 44 | 动态规划 完全背包、518. 零钱兑换 II 、 377. 组合总和 Ⅳ

完全背包 题目 文章讲解 视频讲解 完全背包和0-1背包的区别在于:物品是否可以重复使用 思路:对于完全背包问题,内层循环的遍历方式应该是从weight[i]开始一直遍历到V,而不是从V到weight[i]。这样可以确保每种物品可以被选择多次…

《Java 简易速速上手小册》第10章:Java 未来趋势和新特性(2024 最新版)

文章目录 10.1 Java 的新版本特性10.1.1 基础知识10.1.2 重点案例:使用 Java 14 的 Record 类简化数据模型10.1.3 拓展案例 1:利用 Java 11 的 HTTP Client 进行网络请求10.1.4 拓展案例 2:使用 Java 12 的 Switch 表达式优化代码 10.2 Java …

【UDS】搞懂时间参数

文章目录 背景时间参数的定义应用层相关会话层相关传输层相关网络层相关实际案例分析背景 TBD. 时间参数的定义 注意,这些时间参数都是超时阈值,需要理解为什么要有这些阈值,在哪一端判断这些阈值的,无需“死记硬背”它们的含义。 应用层相关 【P2 Client】 P2 Client 的…

Django学习全纪录:创建第一个Django项目,如何使用Django开发⼀个web应用

导言 在上一篇文章里,我们对Django的开发环境进行了学习以及搭建,在上一篇文章里,同时也为大家介绍了安装、验证、修改默认镜像源等知识。 在这一篇文章里,我们就正式开始我们的Django开发之旅,创建我们的第一个项目,做一些较为简单且必需的前置工作。 如何创建Django项目…

Promise与async await的作用及应用场景

在Web前端开发中,处理异步操作是非常常见的需求。为了解决这个问题,ES6引入了Promise和后续的async await。本文将介绍Promise和async await的作用,以及在实际开发中的应用场景。 一、Promise的作用及应用场景 Promise是一个表示异步操作最…

【教程】C++语言基础学习笔记(八)——函数

写在前面: 如果文章对你有帮助,记得点赞关注加收藏一波,利于以后需要的时候复习,多谢支持! 【C语言基础学习】系列文章 第一章 《项目与程序结构》 第二章 《数据类型》 第三章 《运算符》 第四章 《流程控制》 第五章…

【JavaEE进阶】 图书管理系统开发日记——陆

文章目录 🎋前言🍃删除图书🚩约定前后端交互接口🚩完善前端代码🚩接口测试 🎍批量删除🚩约定前后端交互接口🚩实现后端服务器代码🎈控制层🎈业务层&#x1f3…

ICCV 2023 | 8篇论文看扩散模型diffusion用于图像检测任务:动作检测、目标检测、异常检测、deepfake检测...

1、动作检测 DiffTAD: Temporal Action Detection with Proposal Denoising Diffusion 基于扩散方法提出一种新的时序动作检测(TAD)算法,简称DiffTAD。以随机时序proposals作为输入,可以在未修剪的长视频中准确生成动作proposals。…

python-题库篇-列表、字典、元组、集合

文章目录 问题什么是Python中的列表(List)?它有哪些特点?什么是Python中的元组(Tuple)?它与列表有何区别?解释Python中的字典(Dictionary)Python中的集合&…

力扣刷题54-螺旋矩阵

给你一个 m 行 n 列的矩阵 matrix ,请按照 顺时针螺旋顺序 ,返回矩阵中的所有元素。 示例 1: 输入:matrix [[1,2,3],[4,5,6],[7,8,9]] 输出:[1,2,3,6,9,8,7,4,5]示例 2: 输入:matrix [[1,2,3,…

《金融人工智能:用python实现ai量化交易》

融合了数学、python、深度学习以及金融知识,是本推荐的好书。请收藏本文,读后再给大学总结。

【python】网络爬虫与信息提取--Beautiful Soup库

Beautiful Soup网站:https://www.crummy.com/software/BeautifulSoup/ 作用:它能够对HTML.xml格式进行解析,并且提取其中的相关信息。它可以对我们提供的任何格式进行相关的爬取,并且可以进行树形解析。 使用原理:它能…

数模.SI模型SI的四种扩展

一:最简单的考虑方式 二考虑某种使得参数beta降低的因素 三:增加人口自然出生率和死亡率,但不考虑疾病的死亡率 四:不考虑人口自然出生率和死亡率,只考虑疾病的死亡率 五:同时考虑人口自然出生率和死亡率和…

【JavaEE】网络原理: UDP协议和TCP协议的相关内容

目录 1. 应用层 2. 传输层 2.1 端口号 2.2 UDP协议 2.3 TCP协议 1.确认应答 2.超时重传 3.连接管理 三次握手 四次挥手 状态转换 4.滑动窗口 5.流量控制 6.拥塞控制 7.延迟应答 8.捎带应答 9.面向字节流 粘包问题 10.异常情况 网络通信中, 协议是一个非常重…

Java中锁的应用

文章目录 前言一、场景描述二、加锁1.synchronized2.ReentrantLock 三、扩展1.ThreadLocal 总结 前言 在多线程场景下,多个线程同时对共享变量进行操作是存在风险的,这时候就需要加锁来保证数据的正确性。 一、场景描述 我这里有5个无人机,准备卖到乌克…

Vue学习笔记(三)常用指令、生命周期

Vue学习笔记(三)常用指令 vue指令:html标签上带有 v- 前缀的特殊属性,不同的指令具有不同的含义,可以实现不同的功能。 常用指令: 指令作用v-for列表渲染,遍历容器的元素或者对象的属性v-bind…