НачатьНачать бесплатно

Фильтрация сильно коррелирующих признаков

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

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

Это упражнение является частью курса

Снижение размерности в Python

Посмотреть курс

Инструкции к упражнению

  • Вычислите матрицу корреляций для ansur_df и возьмите абсолютные значения этой матрицы.
  • Создайте булеву маску со значениями True в верхнем правом треугольнике и примените её к матрице корреляций.
  • Установите пороговое значение коэффициента корреляции равным 0.95.
  • Удалите из DataFrame все столбцы, перечисленные в to_drop.

Интерактивное практическое упражнение

Попробуйте выполнить это упражнение, дополнив этот пример кода.

# Calculate the correlation matrix and take the absolute value
corr_df = ansur_df.____().____()

# Create a True/False mask and apply it
mask = np.____(np.____(corr_df, dtype=____))
tri_df = corr_df.____(mask)

# List column names of highly correlated features (r > 0.95)
to_drop = [c for c in tri_df.columns if any(tri_df[c] >  ____)]

# Drop the features in the to_drop list
reduced_df = ansur_df.____(____, axis=1)

print(f"The reduced_df DataFrame has {reduced_df.shape[1]} columns.")
Редактировать и запускать код