Sobes.tech
Middle
36

Что такое мультиколлинеарность признаков? Чем она опасна и как её обнаруживать?

Answer from AI

sobes.tech AI

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

Почему это опасно:

  • Ухудшает стабильность и интерпретируемость моделей, особенно линейных регрессий.
  • Коэффициенты признаков становятся нестабильными и могут менять знак или величину при небольших изменениях данных.
  • Затрудняет выявление влияния каждого признака на целевую переменную.

Как обнаруживать:

  • Рассчитать корреляционную матрицу признаков и искать пары с высокой корреляцией (например, > 0.8).
  • Использовать показатель VIF (Variance Inflation Factor): значения VIF > 5 или 10 указывают на сильную мультиколлинеарность.

Пример вычисления VIF на Python:

from statsmodels.stats.outliers_influence import variance_inflation_factor
import pandas as pd

X = pd.DataFrame({
    'x1': [...],
    'x2': [...],
    'x3': [...],
})

vif_data = pd.DataFrame()
vif_data['feature'] = X.columns
vif_data['VIF'] = [variance_inflation_factor(X.values, i) for i in range(len(X.columns))]
print(vif_data)

Если мультиколлинеарность обнаружена, можно удалить или объединить коррелирующие признаки, применить методы отбора признаков или использовать регуляризацию.