Использование линейной модели для выбора наиболее значимых признаков (фич) и отсеивания менее значимых может быть выполнено несколькими способами. Ниже я опишу наиболее популярные подходы:
Анализ коэффициентов линейной модели: В линейной модели значимость признаков определяется величиной и знаком коэффициентов при этих признаках. Если коэффициент признака мал или близок к нулю, это может указывать на его низкую значимость.
import numpy as np
from sklearn.linear_model import LinearRegression
# Пример данных
X = np.array([[1, 2, 3], [4, 5, 6], [7, 8, 9], [10, 11, 12]])
y = np.array([1, 2, 3, 4])
# Создание и обучение линейной модели
model = LinearRegression()
model.fit(X, y)
# Получение коэффициентов
coefficients = model.coef_
print(f"Коэффициенты модели: {coefficients}")
Интерпретация:
Регуляризация: Lasso (L1) и Ridge (L2): Методы регуляризации позволяют улучшить интерпретацию модели и выбрать значимые признаки:
from sklearn.linear_model import Lasso
# Создание и обучение Lasso модели
lasso = Lasso(alpha=0.1) # Параметр alpha контролирует силу регуляризации
lasso.fit(X, y)
# Получение коэффициентов
coefficients = lasso.coef_
print(f"Коэффициенты Lasso модели: {coefficients}")
Интерпретация: Коэффициенты, которые стали нулевыми после применения Lasso, указывают на признаки, которые можно отсеять.
Методы оценки важности признаков (Feature Importance): Хотя это напрямую не относится к линейным моделям, такие методы как Random Forest или Gradient Boosting могут помочь оценить важность признаков.
from sklearn.ensemble import RandomForestRegressor
# Создание и обучение модели Random Forest
model = RandomForestRegressor()
model.fit(X, y)
# Получение важности признаков
importances = model.feature_importances_
print(f"Важность признаков: {importances}")
Ставь 👍 и забирай 📚 Базу знаний