Импутация данных (Data Imputation) - Лена Капаца
Импутация данных (Data Imputation) by Лена Капаца Oct. 22, 2024 Основы

Импутация данных (Data Imputation) — это процесс замещения пропущенных или недостающих значений в наборе данных с целью улучшения качества данных для дальнейшего анализа и обработки. 

Работа с неполными данными — одна из основных задач в области Машинного обучения (ML) и анализа данных. В большинстве случаев, данные, используемые для построения Моделей (Model), содержат пропущенные значения, что может значительно повлиять на точность прогнозов. 

 

Причины пропущенных значений

 

Пропущенные значения могут возникать по различным причинам, включая:

1. Ошибки в процессе сбора данных.

2. Не все респонденты отвечают на все вопросы в анкете.

3. Некоторые данные могут быть недоступны по техническим причинам.

 

Основные методы импутации

 

Существует несколько популярных методов импутации пропущенных значений:

 

1. Удаление строк или столбцов: Самый простой способ — удалить строки (или столбцы), содержащие пропущенные значения. Однако этот метод может привести к потере важной информации.

 

2. Заполнение средним, медианой или модой: Метод замены пропущенных значений на средние, медианные или модальные значения.

 

3. Использование алгоритмов машинного обучения: Некоторые алгоритмы, такие как KNN (K-ближайших соседей), могут предсказывать пропущенные значения на основе других данных.

 

Примеры на Python

 

1. Удаление строк

import pandas as pd


# Создаем пример DataFrame с пропущенными значениями

data = {'A': [1, 2, None, 4],

        'B': [None, 2, 3, 4],

        'C': [1, None, None, 4]}

df = pd.DataFrame(data)



# Удаляем строки с пропущенными значениями

df_cleaned = df.dropna()

print(df_cleaned)

 

2. Заполнение средним значением

# Заполняем пропущенные значения средним значением

df_filled = df.fillna(df.mean())

print(df_filled)

 

3. Заполнение медианным значением

# Заполняем пропущенные значения медианой

df_filled_median = df.fillna(df.median())

print(df_filled_median)

4. Использование KNN для импутации

from sklearn.impute import KNNImputer


# Инициализируем KNN импутер

imputer = KNNImputer(n_neighbors=2)


# Применяем KNN для заполнения пропусков

df_knn_filled = pd.DataFrame(imputer.fit_transform(df), columns=df.columns)

print(df_knn_filled)

© Лена Капаца. Все права защищены.