Наука о данных: машинное обучение
Простая, но эффективная модель для решения задач линейной классификации.
Модель контролируемой логистической регрессии в 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
как отдельная модель или как часть ансамбля, это ценный инструмент, который необходимо иметь в своем наборе инструментов машинного обучения.