异常值检测的提示工程

了解如何通过实际数据项目检测异常值并使用 AI 改进流程。

来源:KDnuggets

简介

给定数据集中的异常值表示极值。它们是如此极端,以至于可能会严重扭曲平均值等统计数据,从而破坏您的分析。例如,在球员身高数据集中,即使对于 NBA 球员来说,12 英尺也是异常值,并且会显着拉高平均值。

我们如何处理它们?我们将通过在数据科学家招聘过程中执行 Physician Partners 要求的真实数据项目来回答这个问题。

首先,我们将探索检测方法,定义异常值,最后制作提示来执行该过程。

什么是异常值检测和去除方法?

异常值检测取决于您拥有的数据集。如何?

例如,如果您的数据集分布是正态的,您可以使用标准差或 Z 分数来检测它们。但是,如果您的数据集不服从正态分布,则可以使用百分位法、主成分分析 (PCA) 或四分位距 (IQR) 方法。

您可以查看这篇文章,了解如何使用箱线图检测异常值。

在本节中,我们将发现应用这些技术的方法和 Python 代码。

标准差法

在此方法中,我们可以通过测量每个值偏离平均值的程度来定义异常值。

例如,在下图中,您可以看到正态分布和 \( \pm3 \) 与平均值的标准差。

要使用此方法,首先测量平均值并计算标准差。接下来,通过平均值加上和减去三个标准差来确定阈值,并过滤数据集以仅保留此范围内的值。这是执行此操作的 Pandas 代码。

将 pandas 导入为 pd

将 numpy 导入为 np


                                    

                                        

col = df['列']平均值 = col.mean()std = col.std()下限 = 平均值 - 3 * 标准差上限 = 平均值 + 3 * 标准差# 将值保持在 3 个标准偏差范围内Filtered_df = df[(col >= lower) & (col <= upper)]IQRQ1 = df['列'].quantile(0.25)Q3 = df['列'].分位数(0.75)IQR = Q3 - Q1]