ПочатиПочніть безкоштовно

Фільтрування ознак із високою кореляцією

Ви автоматизуєте видалення ознак із високою кореляцією в числовому наборі даних ANSUR. Ви обчислите матрицю кореляцій і відфільтруєте стовпці, у яких коефіцієнт кореляції більше за 0,95 або менше за -0,95.

Оскільки кожен коефіцієнт кореляції трапляється в матриці двічі (кореляція A з B дорівнює кореляції B з A), потрібно проігнорувати половину матриці кореляцій, щоб видаляти лише одну з двох скорельованих ознак. Для цього скористайтеся маскою.

Ця вправа є частиною курсу

Зменшення розмірності в Python

Переглянути курс

Інструкції до вправи

  • Обчисліть матрицю кореляцій ansur_df і візьміть абсолютні значення елементів цієї матриці.
  • Створіть булеву маску зі значеннями True у верхньому правому трикутнику та застосуйте її до матриці кореляцій.
  • Встановіть поріг коефіцієнта кореляції 0.95.
  • Видаліть із датафрейму всі стовпці, перелічені в 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.")
Редагувати та запускати код