【漫话机器学习系列】072.异常处理(Handling Outliers)

embedded/2025/2/4 0:10:41/

异常处理(Handling Outliers)是数据预处理中的一个重要步骤,主要用于识别和处理数据集中的异常值或噪声。这些异常值可能是由于错误的数据输入、测量问题或某些特殊情况所引起,它们可能会影响模型的训练和预测,导致模型表现不佳。因此,识别和合理处理异常值是提升模型性能的一个关键步骤。


异常值的定义

异常值是指与数据集中的其他数据点显著不同的值。它们可能是由于多种原因产生的,比如数据录入错误、极端事件或测量误差等。在大多数机器学习任务中,异常值可能会扭曲模型的学习过程,尤其是在敏感于数据分布的算法中,如线性回归、SVM 和 KNN 等。


异常值的检测方法

以下是常见的几种检测异常值的方法:

1. 统计学方法

  • Z-score:根据每个数据点的标准差计算其 Z 分数,Z 分数大于某个阈值(通常为 3)时,认为该数据点为异常值。公式为:

    其中, 为数据点,μ 为数据的均值,σ 为标准差。

  • IQR(Interquartile Range)法:基于数据的四分位数来定义异常值。通常,定义低于第一四分位数 Q1 - 1.5 * IQR 或高于第三四分位数 Q3 + 1.5 * IQR 的数据为异常值。

    IQR = Q3 − Q1

    异常值范围为 [Q1 −1.5 × IQR,Q3 + 1.5 × IQR]。

2. 基于模型的方法

  • Isolation Forest:通过随机选择特征并随机切分值,逐步将数据分开,最终形成树状结构。异常值因为更容易被单独“隔离”而被识别出来。
  • 局部离群因子(LOF, Local Outlier Factor):该算法通过计算每个数据点相对于其邻居的局部密度差异来判断其是否为异常值。如果某个点的密度显著低于周围点,则认为它是异常值。

3. 可视化方法

  • 箱线图(Boxplot):箱线图是显示数据分布情况的常见方法,其中箱子表示数据的四分位数,线表示中位数。箱子之外的点可能是异常值。
  • 散点图(Scatter Plot):通过绘制数据点的散点图,可以直观地看到是否存在偏离数据分布的异常点。

异常值的处理方法

根据检测到的异常值类型,常见的处理方法有:

1. 删除异常值

  • 适用场景:异常值影响较大,删除后不会丢失重要信息。
  • 方法:直接从数据集中删除被识别为异常的样本。
  • 注意事项:这种方法适用于样本量较大的数据集,删除少量数据不会影响整体模型。

2. 修正异常值

  • 适用场景:异常值可能由于数据错误导致,修正后能更准确地反映真实情况。
  • 方法:通过填补、插值等方式修正异常值。例如,可以使用该列的均值、中位数或使用插值法填充异常值。
  • 注意事项:这种方法需要谨慎使用,避免过度修正导致失真。

3. 转换异常值

  • 适用场景:异常值具有一定的代表性,但数值过大或过小,可能会导致模型不稳定。
  • 方法:对数据进行转换(如取对数、平方根或标准化)来减少异常值的影响,使其对模型的影响降低。

4. 分箱法(Binning)

  • 适用场景:当数据有连续性时,可以将数据分成几个区间(箱),并将每个区间中的极端值归为该区间的代表值。
  • 方法:将异常值转换为该区间的最大值或最小值。

5. 使用稳健算法

  • 适用场景:在数据集存在较多异常值时,可以使用对异常值不敏感的稳健算法。
  • 方法:例如,使用鲁棒回归方法(如 RANSAC)代替传统回归模型,或者使用树模型(如决策树、随机森林),这些模型通常对异常值较为鲁棒。

选择合适的处理方法

处理异常值的方法依赖于具体的数据集和任务目标。一般来说,应该先进行数据探索和可视化,确认异常值的类型和产生原因,再决定采用何种处理方式。对于一些任务,异常值的保留和处理可能对结果有较大影响,因此选择合适的处理方法是至关重要的。


总结

异常值处理是机器学习和数据分析中的一个重要步骤,合理的处理异常值可以显著提高模型的性能。常见的检测方法包括统计学方法(如Z-score和IQR法)和基于模型的方法(如Isolation Forest和LOF)。在处理异常值时,删除、修正、转换或使用稳健算法等策略各有其适用场景,应根据数据集的特点和模型需求选择最合适的处理方式。

 


http://www.ppmy.cn/embedded/159317.html

相关文章

全程Kali linux---CTFshow misc入门(25-37)

第二十五题: 提示:flag在图片下面。 直接检查CRC,检测到错误,就直接暴力破解。 暴力破解CRC的python代码。 import binascii import struct def brute_force_ihdr_crc(filename): # 读取文件二进制数据 with open(filen…

UE5 蓝图计划 - Day 2-3:执行流与事件

在 Unreal Engine 5 的蓝图系统中,执行流(Execution Flow) 和 事件(Events) 是构建游戏逻辑的核心基础。通过执行流,蓝图可以按照特定的顺序运行节点逻辑;而事件则是蓝图的触发器,能…

局域网文件互传:手机与电脑的便捷传输利器

这是一款可在局域网内实现手机与电脑之间文件互传的软件,由吾爱作者y4h3z4精心开发。它是一款绿色单文件版软件,体积小巧,仅780K,无需安装,双击即可直接使用。 左上角“电脑根目录”可以选择需要传输到手机的文件夹。当…

第七篇:数据库备份与恢复

第七篇:数据库备份与恢复 目标读者: 本篇文章适合那些希望掌握数据库管理与数据安全的学习者,特别是开发人员、运维工程师、数据库管理员等。通过掌握数据库备份与恢复技术,能够确保数据的安全性和可靠性,并有效应对…

实战技巧:如何快速提高网站收录的多样性?

本文转自:百万收录网 原文链接:https://www.baiwanshoulu.com/54.html 快速提高网站收录的多样性是一个综合性的任务,需要从多个方面入手。以下是一些实战技巧,帮助你实现这一目标: 一、优化网站结构与内部链接 建立…

Node.js下载安装及环境配置

目录 一、下载 1. 查看电脑版本,下载对应的安装包 2. 下载路径下载 | Node.js 中文网 二、安装步骤 1. 双击安装包 2. 点击Next下一步 3. 选择安装路径 4. 这里我选择默认配置,继续Next下一步(大家按需选择) 5. 最后inst…

飞牛NAS新增虚拟机功能,如果使用虚拟机网卡直通安装ikuai软路由(如何解决OVS网桥绑定失败以及打开ovs后无法访问飞牛nas等问题)

文章目录 📖 介绍 📖🏡 演示环境 🏡📒 飞牛NAS虚拟机安装爱快教程 📒🛠️ 前期准备🌐 网络要求💾 下载爱快镜像🚀 开始安装💻 开启IOMMU直通🌐 配置网络🚨 解决OVS网桥绑定失败以及打开ovs后无法访问飞牛nas等问题➕ 创建虚拟机🎯 安装ikuai💻 进…

ARM内核:嵌入式时代的核心引擎

引言 在当今智能设备无处不在的时代,ARM(Advanced RISC Machines)处理器凭借其高性能、低功耗的特性,成为智能手机、物联网设备、汽车电子等领域的核心引擎。作为精简指令集(RISC)的典范,ARM核…