Логистическая регрессия – это широко используемый алгоритм классификации, использующий линейную модель для прогнозирования вероятности бинарного результата. Это простой и эффективный способ моделирования двоичных данных, но иногда он может страдать от переобучения и плохого обобщения новых данных. Регуляризация — это метод, который может помочь смягчить эти проблемы и повысить производительность моделей логистической регрессии.
Переобучение в логистической регрессии
Переоснащение происходит, когда модель слишком сложна и слишком точно соответствует обучающим данным, что приводит к плохому обобщению новых данных. Это может быть проблемой для моделей логистической регрессии, поскольку они могут стать чрезмерно сложными, если имеется много признаков или связь между признаками и целью нелинейна. Переобучение может привести к снижению производительности на тестовом наборе и низкой предсказательной способности новых данных.
Причины
модель со слишком большим количеством параметров (степеней свободы) относительно размера обучающих данных
- Например, предположим, что у вас есть обучающий набор со 100 примерами и 10 функциями. Если вы подбираете модель логистической регрессии со 100 параметрами (по одному для каждого примера плюс один для каждой функции), вы можете переобучить данные обучения. Это связано с тем, что в модели больше параметров, чем примеров, что может привести к тому, что модель будет слишком точно соответствовать обучающим данным и не будет обобщаться на новые данные.
Симптомы
высокая точность обучения, но низкая точность теста (или обобщения)
- Если у вас есть модель логистической регрессии с переобучением, вы можете увидеть высокую точность на обучающем наборе, но низкую точность на тестовом наборе или на новых, невидимых данных. Это связано с тем, что модель изучила шаблоны в обучающих данных, которые не обобщаются на новые данные, что приводит к низкой производительности на тестовом наборе.
Что такое регуляризация в логистической регрессии
Регуляризация — это метод, используемый для предотвращения переобучения в моделях машинного обучения. Это достигается путем добавления штрафного члена к целевой функции (также называемой функцией потерь или функцией ошибок), которую модель пытается минимизировать.
Целевая функция измеряет ошибку или разницу между прогнозируемым выходом модели и истинным выходом. В логистической регрессии целевой функцией обычно является потеря перекрестной энтропии, которая измеряет разницу между прогнозируемой вероятностью положительного класса и истинной меткой (1 или 0).
Добавляя штрафной член к целевой функции, регуляризация помогает уменьшить сложность модели и предотвратить ее слишком точное соответствие обучающим данным. Штрафной член — это гиперпараметр, контролирующий силу регуляризации. Более высокое значение штрафного члена приводит к более сильной регуляризации и более простой модели, в то время как более низкое значение делает модель более сложной.
Типы регуляризации
Регуляризация L1 (лассо)
- Добавляет штрафной член к целевой функции, равный абсолютному значению коэффициентов.
- Это приводит к разреженной модели, в которой многие коэффициенты точно равны нулю.
- Регуляризация L1 полезна для выбора функций, поскольку она может автоматически идентифицировать и удалять ненужные или избыточные функции из модели.
Регуляризация L2 (коньковая)
- Добавляет штрафной член к целевой функции, равный квадрату коэффициентов.
- Это приводит к модели, в которой все коэффициенты близки к нулю, но не обязательно равны нулю.
- Регуляризация L2 менее подвержена переоснащению, чем регуляризация L1, и часто используется по умолчанию.
Регуляризация эластичной сети
- Сочетает регуляризацию L1 и L2, добавляя штрафной член к целевой функции, которая представляет собой комбинацию абсолютного значения и квадрата коэффициентов.
- Это приводит к модели, в которой некоторые коэффициенты равны нулю, а некоторые близки к нулю.
- Эластичная сеть может быть полезна, когда в данных есть коррелированные функции, и Лассо склонен выбирать только одну из них.
Преимущества
Снижение сложности модели за счет уменьшения коэффициентов
- Добавляя штрафной член к целевой функции, регуляризация заставляет коэффициенты (веса) модели быть небольшими. Это снижает сложность модели и делает ее менее подверженной переоснащению.
- Например, если у вас есть модель с большим количеством признаков и большим количеством параметров (коэффициентов), регуляризация может помочь уменьшить количество ненулевых коэффициентов и упростить модель.
Улучшение обобщения за счет уменьшения дисперсии модели
- Регуляризация также может помочь уменьшить дисперсию модели, то есть количество ошибок или шума в прогнозах модели.
- Модель с высокой дисперсией чувствительна к небольшим изменениям в обучающих данных и с большей вероятностью переобучится. Уменьшая дисперсию модели, регуляризация может улучшить обобщение модели на новые, невидимые данные.
Как выбрать силу регуляризации (гиперпараметр)
Используйте перекрестную проверку, чтобы выбрать гиперпараметр, обеспечивающий наилучшую производительность в наборе проверки
- Перекрестная проверка — это метод оценки производительности модели на невидимых данных. Он включает в себя разделение набора данных на обучающий набор и проверочный набор, обучение модели на обучающем наборе и оценку модели на проверочном наборе.
- Вы можете использовать перекрестную проверку, чтобы попробовать разные значения гиперпараметра регуляризации и выбрать то, которое обеспечивает наилучшую производительность в наборе проверки.
Попробуйте использовать диапазон значений (например, от 10^-6 до 10⁶) и используйте логарифмическую шкалу
- Гиперпараметр регуляризации обычно имеет широкий диапазон возможных значений, от очень малых (близких к нулю) до очень больших.
- Для эффективного поиска в этом диапазоне можно использовать логарифмическую шкалу. Например, вы можете попробовать значения от 10^-6 до 10⁶ с логарифмическим интервалом между ними (например, 10^-5, 10^-4, 10^-3 и т. д.).
Используйте поиск по сетке, чтобы попробовать диапазон значений для нескольких гиперпараметров одновременно
- Если у вас есть несколько гиперпараметров (например, сила регуляризации и тип регуляризации), вы можете использовать поиск по сетке, чтобы попробовать все возможные комбинации значений гиперпараметров.
- Например, вы можете определить сетку значений для силы регуляризации (например, 10^-6, 10^-5, 10^-4 и т. д.) и еще одну сетку для типа регуляризации (L1, L2, Elastic Net). . Затем поиск по сетке будет обучать и оценивать модель для каждой комбинации значений гиперпараметров и возвращать наилучшую комбинацию.
Как реализовать логистическую регрессию с регуляризацией в Python
Используйте класс LogisticRegression с гиперпараметрами "штраф" и "C"
- Класс LogisticRegression в scikit-learn обеспечивает реализацию логистической регрессии с регуляризацией L1, L2 и Elastic Net.
- Чтобы использовать регуляризацию, вам нужно установить гиперпараметр «штраф» на «l1», «l2» или «elasticnet», а гиперпараметр «C» — на силу регуляризации.
Установите для параметра "C" меньшее значение для более сильной регуляризации (например, C=0,01)
- Гиперпараметр «C» контролирует силу регуляризации.
- Меньшее значение для «C» (например, C = 0,01) приводит к более сильной регуляризации и более простой модели, в то время как большее значение (например, C = 1,0) приводит к более слабой регуляризации и более сложной модели.
Вот пример того, как реализовать логистическую регрессию с регуляризацией в scikit-learn с использованием класса LogisticRegression:
from sklearn.linear_model import LogisticRegression from sklearn.model_selection import train_test_split # Load the data X = ... y = ... # Split the data into a training set and a test set X_train, X_test, y_train, y_test = train_test_split(X, y, test_size=0.2, random_state=42) # Set the regularization type (L1, L2, Elastic Net) penalty = 'l1' # Set the regularization strength (C) C = 0.01 # Create a logistic regression model model = LogisticRegression(penalty=penalty, C=C) # Train the model on the training set model.fit(X_train, y_train) # Evaluate the model on the test set accuracy = model.score(X_test, y_test) print(f'Test accuracy: {accuracy:.2f}')
Краткое изложение логистической регрессии и регуляризации
- Логистическая регрессия — это алгоритм обучения с учителем для классификации, который предсказывает бинарный результат (например, да/нет, годен/не годен) на основе одной или нескольких независимых переменных. Он использует линейную комбинацию признаков (предикторов) с коэффициентами (весами) для прогнозирования.
- Переобучение в логистической регрессии происходит, когда модель имеет слишком много параметров (степеней свободы) по отношению к размеру обучающих данных, что приводит к высокой точности обучения, но низкой точности теста (или обобщения).
- Регуляризация — это метод, используемый для предотвращения переобучения путем добавления штрафного члена к целевой функции (функции потерь), которую модель пытается минимизировать. Этот штрафной член уменьшает сложность модели и улучшает ее обобщение за счет уменьшения дисперсии модели.
- Существует несколько типов регуляризации, которые можно использовать в логистической регрессии, включая L1 (лассо), L2 (гребень) и эластичную сеть. Эти типы различаются формой штрафного члена и типами коэффициентов, которые они упорядочивают.
- Чтобы выбрать силу регуляризации (гиперпараметр), вы можете использовать перекрестную проверку, чтобы выбрать гиперпараметр, который дает наилучшую производительность в наборе проверки, попробовать диапазон значений (например, от 10^-6 до 10⁶) и использовать логарифмическую шкалу или используйте поиск по сетке, чтобы попробовать диапазон значений для нескольких гиперпараметров одновременно.