Как найти выбросы в наборе данных Python 📊

Хорошо, чтобы найти выбросы в наборе данных с помощью Python, вы можете использовать статистический подход.

Один из подходов - использовать метод межквартильного размаха (interquartile range, IQR). Вот простой код, который поможет:

import numpy as np

def find_outliers(data):
    q1 = np.percentile(data, 25)
    q3 = np.percentile(data, 75)
    iqr = q3 - q1
    
    lower_bound = q1 - 1.5 * iqr
    upper_bound = q3 + 1.5 * iqr
    
    outliers = [x for x in data if x < lower_bound or x > upper_bound]
    
    return outliers

data = [1, 2, 3, 7, 9, 20, 25, 28, 30, 32, 45]
outliers = find_outliers(data)
print("Выбросы в данном наборе данных:", outliers)

Приведенный код сначала определяет первый и третий квартили, а затем вычисляет межквартильный размах (IQR). Затем он определяет границы для выбросов, которые находятся за пределами этого диапазона. Наконец, он ищет значения, которые находятся за пределами границ, и возвращает их в виде списка выбросов.

Детальный ответ

Как найти выбросы в наборе данных с помощью Python

Выбросы - это значения в наборе данных, которые сильно отличаются от остальных значений. Они могут быть вызваны ошибками измерений, аномальными событиями или проблемами в сборе данных. Поиск и обработка выбросов является важной задачей в анализе данных. В этой статье мы рассмотрим, как найти выбросы в наборе данных с помощью Python.

1. Загрузка библиотек

Перед тем, как мы начнем, убедитесь, что у вас установлены необходимые библиотеки. В этой статье мы будем использовать библиотеки numpy и pandas.


    import numpy as np
    import pandas as pd
    

2. Загрузка набора данных

Следующим шагом является загрузка набора данных, в котором мы будем искать выбросы. Мы будем использовать Pandas для этого.


    # Пример загрузки данных из CSV файла
    df = pd.read_csv('dataset.csv')
    

3. Нахождение выбросов

Теперь, когда у нас есть загруженный набор данных, мы можем приступить к поиску выбросов. Существуют различные методы для нахождения выбросов, одним из наиболее распространенных является использование межквартильного размаха (IQR) и z-оценки.

3.1. Метод межквартильного размаха (IQR)

Метод межквартильного размаха основан на распределении значений внутри межквартильного интервала. Межквартильный интервал - это разница между 75-й и 25-й квартилями данных. Любое значение, которое находится за пределами 1,5 * IQR от верхней и нижней границы интервала, считается выбросом.


    # Нахождение межквартильного интервала (IQR)
    Q1 = df.quantile(0.25)
    Q3 = df.quantile(0.75)
    IQR = Q3 - Q1
    
    # Определение выбросов
    outliers = (df < (Q1 - 1.5 * IQR)) | (df > (Q3 + 1.5 * IQR))
    

3.2. Метод z-оценки

Метод z-оценки основан на среднем значении и стандартном отклонении данных. Значения, которые находятся за пределами определенного количества стандартных отклонений от среднего значения, считаются выбросами.


    # Нахождение среднего значения и стандартного отклонения
    mean = df.mean()
    std = df.std()
    
    # Определение выбросов
    threshold = 3
    outliers = (df < (mean - threshold * std)) | (df > (mean + threshold * std))
    

4. Обработка выбросов

После того, как мы нашли выбросы, важно решить, что с ними делать. Варианты обработки выбросов зависят от контекста и природы данных. Некоторые из распространенных методов обработки выбросов включают удаление выбросов, замену выбросов на среднее значение или интерполяцию.

4.1. Удаление выбросов

Простым способом обработки выбросов является их удаление из набора данных. Однако перед удалением выбросов необходимо тщательно проанализировать их связь с остальными значениями и контекстом. Удаление выбросов может привести к потере ценной информации.


    # Удаление выбросов
    cleaned_data = df[~outliers]
    

4.2. Замена выбросов

Если удаление выбросов неприемлемо, их можно заменить другими значениями, такими как среднее значение или медиана.


    # Замена выбросов средним значением
    mean_value = df.mean()
    df[outliers] = mean_value
    

4.3. Интерполяция выбросов

Интерполяция - это метод, который используется для заполнения пропущенных значений в данных. С помощью интерполяции выбросы могут быть заменены значениями, рассчитанными на основе соседних значений.


    # Интерполяция выбросов
    df.interpolate()
    

5. Вывод

В этой статье мы рассмотрели, как найти выбросы в наборе данных с помощью Python. Мы изучили два распространенных метода нахождения выбросов - межквартильный размах и z-оценка. Затем мы обсудили различные подходы к обработке выбросов - удаление, замена и интерполяция. Помните, что выбор метода обработки выбросов зависит от контекста задачи и природы данных. Вашим заданием является проанализировать выбросы в вашем наборе данных и выбрать подход, который наиболее подходит к вашей конкретной ситуации.

Видео по теме

Finding an outlier in a dataset using Python

Outlier detection and removal using percentile | Feature engineering tutorial python # 2

How to Detect and Remove Outliers in the Data | Python

Похожие статьи:

🔺Как расположить элементы в порядке возрастания с помощью Python?🔺

✅Как узнать разрядность интерпретатора python? Легкий гайд для начинающих💻

🔎 Как парсить ВКонтакте с помощью Python: подробный гайд 🐍

Как найти выбросы в наборе данных Python 📊

📝 Что означает list в Python: подробное объяснение и примеры кода

🔢 Как посчитать сумму чисел в числе python? Простое руководство 🐍

🔎 Как создать пагинацию в Python: простое руководство для начинающих 🐍