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)
Если мультиколлинеарность обнаружена, можно удалить или объединить коррелирующие признаки, применить методы отбора признаков или использовать регуляризацию.