Статья Автор: Деникина Н.В., Деникин А.В.

Модель логистической регрессии

Функция создания модели логистической регрессии в sklearn:

model = LogisticRegression( solver='saga', penalty='l2', max_iter=10000, random_state=42 )

Теоретическая справка по параметрам:

  • solver — алгоритм оптимизации. Варианты:

    • 'liblinear' — для небольших наборов с L1 или L2 регуляризацией.

    • 'lbfgs' — быстрый и устойчивый, подходит для L2.

    • 'sag' и 'saga' — стохастические градиенты, эффективны для больших наборов и регуляризаций L1, L2, Elastic Net.

    'saga' — наиболее универсальный и современный solver, поддерживает все типы регуляризаций, подходит для разреженных данных.

  • penalty — тип регуляризации для предотвращения переобучения:

    • 'l2' (по умолчанию) — классическая Ridge-регуляризация, штрафует большие коэффициенты.

    • 'l1' — Lasso-регуляризация, способствует разреженности коэффициентов (некоторые станут ровно 0, что выполняет отбор признаков).

    • 'elasticnet' — комбинированная регуляризация (L1 + L2).

    • 'none' — без регуляризации (рекомендуется редко).

  • max_iter — максимальное число итераций для сходимости оптимизатора. Отвечает за то, сколько раз алгоритм обновляет коэффициенты. Значение 10000 очень большое и обычно достаточно, чтобы добиться сходимости.

  • random_state — обеспечивает повторяемость результатов путем фиксирования генератора случайных чисел.


Что лучше использовать?

  • Для больших или разреженных данных и возможности L1-регуляризации выбирайте solver='saga'.

  • Если данные небольшие и предпочтительна простота, лучше solver='liblinear'.

  • Регуляризация 'l2' — универсальный, надежный выбор.

  • Если хотите делать отбор признаков в модели, используйте 'l1' или 'elasticnet' с solver 'saga'.

  • Устанавливайте max_iter достаточно большим (1000–10000), чтобы избежать проблем со сходимостью.

  • Всегда масштабируйте признаки для улучшения сходимости, особенно при использовании saga или sag.


Пример
model = LogisticRegression(solver='saga', penalty='l2', max_iter=10000, random_state=42)

означает, что модель будет обучаться стохастическим методом оптимизации с классической L2-регуляризацией, с максимальным числом итераций 10,000 для обеспечения сходимости, и с фиксированным random_state для воспроизводимости.

Это современный, универсальный и надежный выбор для большинства задач логистической регрессии.

Печать