🤔 Что такое регуляризация?



Регуляризация — это техника в машинном обучении, направленная на предотвращение переобучения модели, улучшение её обобщающей способности и повышение устойчивости к шуму в данных. Переобучение происходит, когда модель слишком хорошо подстраивается под обучающие данные, включая их шум и аномалии, и плохо обобщает на новых данных. Регуляризация помогает контролировать сложность модели и способствует её лучшему обобщению на тестовых данных.



🚩Основные виды регуляризации



🟠L1-регуляризация (Lasso):

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



🟠L2-регуляризация (Ridge):

В L2-регуляризации добавляется сумма квадратов коэффициентов модели к функции потерь. Это приводит к тому, что коэффициенты становятся маленькими, но редко равными нулю.



🟠Elastic Net:

Elastic Net сочетает в себе L1 и L2-регуляризацию, объединяя их преимущества.



🟠Dropout:

Dropout — это техника регуляризации, применяемая в нейронных сетях, при которой случайные нейроны "выключаются" во время обучения с заданной вероятностью. Это предотвращает зависимость нейронов друг от друга и делает модель более устойчивой к переобучению.



🚩Пример регуляризации в Python с использованием L1 и L2



L1-регуляризация:

from sklearn.linear_model import Lasso

from sklearn.datasets import load_boston

from sklearn.model_selection import train_test_split



# Загрузка данных

data = load_boston()

X, y = data.data, data.target



# Разделение данных на обучающую и тестовую выборки

X_train, X_test, y_train, y_test = train_test_split(X, y, test_size=0.3, random_state=42)



# Создание и обучение модели Lasso

model = Lasso(alpha=0.1)

model.fit(X_train, y_train)



# Оценка модели

score = model.score(X_test, y_test)

print(f"Точность модели Lasso: {score}")




L2-регуляризация:

from sklearn.linear_model import Ridge



# Создание и обучение модели Ridge

model = Ridge(alpha=0.1)

model.fit(X_train, y_train)



# Оценка модели

score = model.score(X_test, y_test)

print(f"Точность модели Ridge: {score}")




Ставь 👍 и забирай 📚 Базу знаний