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

  1. Удаление записей с пропущенными значениями
  2. Замена (вменение) пропущенных значений средним/медианным

Набор данных Titanic от Kaggle используется для демонстрации подходов.

data=pd.read_csv(train.csv)
data.isnull().sum()
data.shape()

1. Удаление записей с пропущенными значениями

Записи с отсутствующими значениями можно удалить с помощью следующего кода:

data.dropna(inplace=True)

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

data=data.drop(['Cabin'],axis=1)
data.isnull().sum()

2. Замена (вменение) пропущенных значений средним/медианным

Удаление записей (строк) с отсутствующими значениями может привести к потере важных данных из других функций этой строки. Наиболее эффективный способ обработки отсутствующих значений — приписать их среднему, медиане или моде. Выбор между средним значением, медианой или модой зависит от типа обрабатываемых данных. Лучше всего использовать числовые признаки (столбцы) со средним значением или медианой и режимом (наиболее часто встречающимся) для категориальных признаков.

from sklearn.impute import SimpleImputer
imputer=SimpleImputer(missing_values=np.nan,strategy='mean')
data['Age']=pd.DataFrame(imputer.fit_transform(data[['Age']]))

Стоит отметить, что медиана используется чаще, чем среднее. Медиана — это центральное значение данных, а среднее вычисляет сумму значений (записей), деленную на количество значений (записей). Поскольку среднее вычисляет сумму, выбросы также включаются в сумму, что делает ее восприимчивой к выбросам. Следовательно, используется медиана, поскольку она более устойчива к выбросам.

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

Важно отметить, что знание признаков (столбцов) тоже играет важную роль. Например, в этом конкретном наборе данных Pclass имеет значения 1,2,3. Среднее значение этой функции равно 2,3. Вменение отсутствующих значений Pclass в среднее значение не имеет смысла. Поэтому важно знать о функции пропущенного значения.

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

Спасибо, что прочитали эту статью! Оставьте комментарий ниже, если у вас есть какие-либо вопросы. Обязательно подпишитесь на меня, чтобы получать обновления о моих последних публикациях на Medium о машинном обучении и науке о данных :). Вы можете связаться со мной в LinkedIn| Инстаграм, если у вас есть вопросы.