Наука о данных: машинное обучение

Простая, но эффективная модель для решения задач линейной классификации.

Модель контролируемой логистической регрессии в scikit-learn

Логистическая регрессия — это краеугольный камень машинного обучения, облегчающий классификацию путем моделирования вероятности принадлежности экземпляра к определенной категории. Библиотека scikit-learn (часто сокращенно sklearn) в Python предоставляет надежные инструменты для построения моделей логистической регрессии. В этой статье будет представлен подробный обзор модели логистической регрессии в scikit-learn, включая ее использование, атрибуты, методы и практические советы.

Что такое логистическая регрессия

Логистическая регрессия — это статистический метод прогнозирования бинарных результатов. Учитывая набор функций, он оценивает вероятность принадлежности экземпляра/наблюдения к определенной категории. Несмотря на название, он используется для задач классификации, а не для задач регрессии. Модель выводит вероятность того, что данная входная точка принадлежит определенному классу, который преобразуется в двоичный результат через пороговое значение (например, если выходная вероятность превышает 0,5, классифицируйте ее как класс 1, класс 0).

Использование логистической регрессии в scikit-learn

1. Установка

Для начала вам необходимо установить scikit-learn

pip install scikit-learn

2. Модельное обучение

Вот базовая схема построения модели логистической регрессии с использованием scikit-learn:

from sklearn.linear_model import LogisticRegression
from sklearn.model_selection import train_test_split

# Split data into training and test sets
X_train, X_test, y_train, y_test = train_test_split(X, y, test_size=0.2, random_state=42)

# Initialize the model
logreg = LogisticRegression()

# Fit the model
logreg.fit(X_train, y_train)

# Predictions
predictions = logreg.predict(X_test)

3. Важные атрибуты и методы

Атрибуты:

  • coef_: Возвращает коэффициенты функций в функции решения.
  • intercept_: представляет перехват, добавленный к функции принятия решения.

Методы:

  • fit(X, y): подогнать модель в соответствии с заданными данными обучения.
  • предсказать(X): предсказать метки классов для образцов в X.
  • предсказать_проба(X): оценки вероятности. Возвращает вероятность выборки для каждого класса модели.

4. Настройка гиперпараметров

LogisticRegression() поставляется с различными гиперпараметрами, вот некоторые из них:

  • C: Сила обратной регуляризации. Меньшие значения определяют более сильную регуляризацию.
  • штраф: используется для указания нормы, используемой при наказании ('l1', 'l2', 'elasticnet').
  • решатель: Алгоритм, используемый в задаче оптимизации ('newton-cg', 'lbfgs', 'liblinear', 'sag', 'saga').

5. Советы по практической реализации

  • Масштабирование функций. Очень важно масштабировать функции для логистической регрессии, поскольку для оптимизации она использует градиентный спуск. Для этого вы можете использовать StandardScaler или MinMaxScaler из scikit-learn.
  • Регуляризация. Регуляризация используется для предотвращения переобучения. Параметр C в логистической регрессии является обратным значению силы регуляризации: меньшие значения указывают на более сильную регуляризацию.
  • Мультиклассовая классификация. По умолчанию логистическая регрессия поддерживает двоичную классификацию. Однако для задач с несколькими классами используется подход «один против всех». Вы можете настроить параметр multi_class для альтернативных методов.

6. Заключение

Логистическая регрессия, несмотря на свою простоту, остается мощным инструментом для решения задач бинарной классификации. С scikit-learn реализация и настройка этой модели становится простой, что позволяет как новичкам, так и профессионалам эффективно использовать ее возможности. Независимо от того, используется ли логистическая регрессия в scikit-learn как отдельная модель или как часть ансамбля, это ценный инструмент, который необходимо иметь в своем наборе инструментов машинного обучения.