离群值是与数据集的其他点显着远距离的亚尼斯值。这些极端价值可能出于多种原因,例如媒体错误,异常行为或罕见事件。异常值的存在会对矮人产生负面影响以及统计模型和机器学习的结果。在本文中,我们还将探讨使用Python的Pandas图书馆来治疗异常值的有效策略,此外还提供了每种方法的实际示例。
使用IQR识别离群值(四分位间隔)
IQR(四分位间隔)是识别数据集中异常值的统计度量。它被定义为数据库的第三四分位数(Q3)和第一个四分位数(Q1)之间的差异。换句话说,IQR涵盖了包含大约50%中心数据的值的范围。要计算IQR并识别离群值,我们可以按照以下步骤进行操作:
- 计算第一个四分位数(Q1)和第三四分位数(Q3)。
- 计算或IQR:IQR = Q3 -Q1。
- 定义um limite较低:limite unterior = q1-1.5 * iqr。 li>
- definir um limite上级:limite superior = q3 + 1.5 * iqr。
- 将异常值确定为低于下限或高于上限的异常值。
现在,让我们在文章中包括此方法,以及如何基于IQR删除异常值的示例。
示例1:使用IQR识别离群值
import pandas as pd
# DataFrame de exemplo
data = pd.DataFrame({'idade': [25, 30, 32, 35, 40, 150, 42, 45, 50]})
# Calcular os quartis Q1 e Q3
Q1 = data['idade'].quantile(0.25)
Q3 = data['idade'].quantile(0.75)
# Calcular o IQR
IQR = Q3 - Q1
# Definir os limites inferior e superior
limite_inferior = Q1 - 1.5 * IQR
limite_superior = Q3 + 1.5 * IQR
# Identificar outliers
outliers = data[(data['idade'] < limite_inferior) | (data['idade'] > limite_superior)]
print("Outliers:")
print(outliers)
示例2:使用IQR删除异常值
现在,让我们删除示例1中标识的异常值并更新数据框:
import pandas as pd
# DataFrame de exemplo
data = pd.DataFrame({'idade': [25, 30, 32, 35, 40, 150, 42, 45, 50]})
# Calcular os quartis Q1 e Q3
Q1 = data['idade'].quantile(0.25)
Q3 = data['idade'].quantile(0.75)
# Calcular o IQR
IQR = Q3 - Q1
# Definir os limites inferior e superior
limite_inferior = Q1 - 1.5 * IQR
limite_superior = Q3 + 1.5 * IQR
# Remover outliers
data = data[(data['idade'] >= limite_inferior) & (data['idade'] <= limite_superior)]
print(data)
在许多场景中,使用IQR来识别和治疗异常值是一种强大而有效的方法。在本文中,我们将IQR的应用添加到曲目中,以识别异常值,并提供如何根据计算的边界去除这些极端值的示例。离群值的处理是统计矮人或模型构建之前的数据处理的关键步骤。请记住,每个数据集是并且可能需要根据问题的性质和存在的异常值的数量进行特定调整。因此,了解问题的上下文和数据的分布是在离群值处理中做出足够决定的基础。在自己的数据上使用这些技术,并探索其他可用于处理日常任务中极值的功能。有了实用和知识,您将能够执行更健康的矮人并从数据中获得重要的见解。
异常值的策略
1.离群值删除
一种简单的治疗异常值的方法是将它们从数据库中删除。但是,必须仔细应用此策略,因为删除过多的数据可能导致重要信息和偏见的偏见。让我们说明如何使用熊猫来做到这一点:
import pandas as pd
# DataFrame de exemplo
data = pd.DataFrame({'idade': [25, 30, 32, 35, 40, 150, 42, 45, 50]})
# Calcular os quartis Q1 e Q3
Q1 = data['idade'].quantile(0.25)
Q3 = data['idade'].quantile(0.75)
# Calcular o IQR
IQR = Q3 - Q1
# Definir os limites inferior e superior
limite_inferior = Q1 - 1.5 * IQR
limite_superior = Q3 + 1.5 * IQR
# Remover outliers
data = data[(data['idade'] >= limite_inferior) & (data['idade'] <= limite_superior)]
print(data)
2.用边界替换
另一种方法是用适当的限制替换离群值,这不会对矮人产生负面影响,但仍保持数据完整性。例如,我们可以用数据集的中位数替换极值:
import pandas as pd
# DataFrame de exemplo
data = pd.DataFrame({'salario': [2500, 2800, 3000, 3200, 3500, 100000, 3800, 4000, 4200]})
# Calculando a mediana do salário
median_salary = data['salario'].median()
# Substituindo outliers pelo valor da mediana
data.loc[data['salario'] > 10000, 'salario'] = median_salary
print(data)
3.数据转换
在某些情况下,数据中的数学转换可以帮助减少异常值的影响。例如,对数在值中的应用可以压缩数据量表,并使异常值的影响力较小:
import pandas as pd
import numpy as np
# DataFrame de exemplo
data = pd.DataFrame({'receita': [1000, 1200, 1500, 1800, 2000, 50000, 2200, 2500, 3000]})
# Aplicando a transformação logarítmica na receita
data['receita'] = np.log1p(data['receita'])
print(data)
4. binning(分组)
bin值分组(间隔)可以是在某些情况下处理异常值的策略。通过对值进行分组,将离群值映射到垃圾箱的边界,从而使它们在Manisis的结果中的影响力较小:
import pandas as pd
# DataFrame de exemplo
data = pd.DataFrame({'peso': [50, 60, 70, 80, 90, 200, 100, 110, 120]})
# Criando bins para agrupamento de peso
bins = [0, 100, 150, 200]
labels = ['leve', 'médio', 'pesado']
# Criando uma nova coluna com os labels dos bins
data['grupo_peso'] = pd.cut(data['peso'], bins=bins, labels=labels)
print(data)
包括£o
在许多场景中,使用IQR来识别和治疗异常值是一种强大而有效的方法。在本文中,您已经学习了一些使用熊猫来治疗异常值的常见策略,包括去除,替换,转型和分组。离群值的处理是统计矮人或模型构建之前的数据处理的关键步骤。请记住,每个数据集是并且可能需要根据问题的性质和存在的异常值的数量进行特定调整。因此,了解问题的上下文和数据的分布是在离群值处理中做出足够决定的基础。在自己的数据上使用这些技术,并探索其他可用于处理日常任务中极值的功能。有了实用和知识,您将能够执行更健康的矮人并从数据中获得重要的见解。