Импутация данных (Data Imputation) — это процесс замещения пропущенных или недостающих значений в наборе данных с целью улучшения качества данных для дальнейшего анализа и обработки.
Работа с неполными данными — одна из основных задач в области Машинного обучения (ML) и анализа данных. В большинстве случаев, данные, используемые для построения Моделей (Model), содержат пропущенные значения, что может значительно повлиять на точность прогнозов.
Пропущенные значения могут возникать по различным причинам, включая:
1. Ошибки в процессе сбора данных.
2. Не все респонденты отвечают на все вопросы в анкете.
3. Некоторые данные могут быть недоступны по техническим причинам.
Существует несколько популярных методов импутации пропущенных значений:
1. Удаление строк или столбцов: Самый простой способ — удалить строки (или столбцы), содержащие пропущенные значения. Однако этот метод может привести к потере важной информации.
2. Заполнение средним, медианой или модой: Метод замены пропущенных значений на средние, медианные или модальные значения.
3. Использование алгоритмов машинного обучения: Некоторые алгоритмы, такие как KNN (K-ближайших соседей), могут предсказывать пропущенные значения на основе других данных.
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)
# Заполняем пропущенные значения средним значением
df_filled = df.fillna(df.mean())
print(df_filled)
# Заполняем пропущенные значения медианой
df_filled_median = df.fillna(df.median())
print(df_filled_median)
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)
© Лена Капаца. Все права защищены.