Демистификация логистической регрессии: математические основы, варианты использования, глубокое обучение, код Python

Введение
Логистическая регрессия, популярный статистический метод, используемый для прогностического анализа, представляет собой тип обобщенной линейной модели (GLM), которая имеет дело с категориальными зависимыми переменными. В отличие от линейной регрессии, логистическая регрессия предназначена для ситуаций, когда выходная переменная является бинарной или дихотомической, т. е. имеет только два возможных результата. Этот мощный метод находит применение в различных областях, включая здравоохранение, финансы и социальные науки. В этой всеобъемлющей статье мы рассмотрим варианты использования логистической регрессии и углубимся в математику, лежащую в основе этой универсальной техники.
Логистическая регрессия: основы
Логистическая регрессия — это алгоритм обучения с учителем, который моделирует вероятность возникновения события на основе одной или нескольких переменных-предикторов. Он устанавливает связь между зависимой переменной и независимыми переменными путем оценки вероятностей с использованием логистической функции.
Логистическая функция, также известная как сигмовидная функция, представляет собой S-образную кривую, которая отображает любое входное значение с действительным знаком в значение от 0 до 1. Она определяется как:
Р (х) = 1 / (1 + е ^ (- х))
Где P(x) — вероятность события, а e — основание натуральных логарифмов, приблизительно 2,718. Логистическая функция используется потому, что она может эффективно отображать вероятности, которые по своей природе ограничены от 0 до 1.
Математика логистической регрессии
Логистическая регрессия основана на концепции линейной регрессии, которая предполагает линейную связь между независимыми и зависимыми переменными. Однако логистическая регрессия использует логистическую функцию для установления этой связи.
Уравнение логистической регрессии имеет вид:
log(P(x) / (1 — P(x))) = β0 + β1 * x1 + β2 * x2 + … + βn * xn
Где:
- P(x) — вероятность возникновения события.
- β0, β1, …, βn – коэффициенты, представляющие влияние каждой независимой переменной (x1, x2, …, xn) на вероятность наступления события.
- log(P(x) / (1 — P(x))) — логарифм шансов или логарифм отношения шансов.
Варианты использования логистической регрессии
Логистическая регрессия имеет широкий спектр приложений в различных областях. Некоторые распространенные варианты использования включают в себя:
А. Здравоохранение
- Прогнозирование исходов заболевания: логистическая регрессия используется для моделирования вероятности развития у пациента определенного заболевания на основе таких факторов, как возраст, пол и история болезни.
- Оценка эффективности медикаментозного лечения: помогает определить эффективность лечения путем сравнения результатов лечения и контрольной группы.
- Анализ кредитного риска: логистическая регрессия используется для прогнозирования вероятности дефолта заемщика по кредиту на основе кредитной истории, дохода и других финансовых переменных.
- Прогнозирование оттока клиентов. Это помогает компаниям выявлять клиентов, которые рискуют прекратить предоставление своих услуг, что позволяет целенаправленно удерживать клиентов.
- Анализ поведения при голосовании: логистическая регрессия может моделировать вероятность того, что люди проголосуют за конкретного кандидата, на основе демографических и социально-экономических факторов.
- Моделирование убыли: оно используется для прогнозирования текучести кадров на основе таких факторов, как удовлетворенность работой, заработная плата и рабочая среда.
Логистическая регрессия опирается на несколько допущений, в том числе:
- Линейность: Логистическая регрессия предполагает линейную зависимость между логарифмическими шансами происходящего события и предикторными переменными.
- Независимость наблюдений: каждое наблюдение в наборе данных должно быть независимым от других.
- Отсутствие мультиколлинеарности: переменные-предикторы не должны сильно коррелировать друг с другом, так как это может привести к нестабильным оценкам и затруднить интерпретируемость модели.
- Большой размер выборки: логистическая регрессия обычно требует большого размера выборки для получения точных и надежных результатов.
- Ограничено бинарными результатами: логистическая регрессия в первую очередь предназначена для задач бинарной классификации. Для задач классификации с несколькими классами могут применяться расширения, такие как полиномиальная логистическая регрессия или стратегии «один против остальных».
- Неспособность зафиксировать сложные отношения: логистическая регрессия может с трудом моделировать сложные отношения между переменными, особенно когда присутствуют взаимодействия или нелинейности.
- Чувствительность к выбросам: алгоритм чувствителен к влиянию выбросов, которые могут существенно повлиять на коэффициенты и производительность модели.
Для оценки эффективности модели логистической регрессии можно использовать несколько показателей, например:
- Матрица путаницы: таблица, в которой обобщаются истинные положительные, истинные отрицательные, ложноположительные и ложноотрицательные результаты, полученные моделью.
- Точность: доля правильных прогнозов, сделанных моделью.
- Точность: доля истинно положительных результатов от общего числа прогнозируемых положительных результатов.
- Напомним: доля истинных положительных результатов от фактических положительных результатов.
- Оценка F1: Гармоническое среднее значение точности и полноты полезно при работе с несбалансированными наборами данных.
Чтобы улучшить производительность модели логистической регрессии, рассмотрите:
- Разработка функций: создавайте новые функции или трансформируйте существующие, чтобы лучше фиксировать отношения между переменными.
- Выбор функций: удалите ненужные или избыточные функции, чтобы уменьшить шум и улучшить интерпретируемость модели.
- Регуляризация: применяйте такие методы, как регуляризация L1 или L2, чтобы предотвратить переоснащение и повысить обобщаемость модели.
Логистическая регрессия тесно связана с глубоким обучением и перцептронами, поскольку служит основой для разработки более совершенных нейронных сетей. Логистическую регрессию можно рассматривать как однослойный персептрон, который является простейшей формой искусственной нейронной сети. И логистическая регрессия, и перцептроны используются для задач бинарной классификации, и их связь заключается в функции активации и процессе обучения.
Логистическая регрессия как функция активации
В контексте нейронных сетей в качестве функции активации часто используется логистическая функция или сигмовидная функция. Логистическая функция сопоставляет входные значения с диапазоном от 0 до 1, что можно интерпретировать как вероятность положительного класса в задачах бинарной классификации.
Персептрон состоит из входного слоя, весов и функции активации, которая может быть логистической функцией. Когда логистическая функция используется в качестве функции активации в персептроне, персептрон по существу становится моделью логистической регрессии. Выход персептрона можно рассчитать следующим образом:
P(x) = 1 / (1 + e^(-(β0 + β1 * x1 + β2 * x2 + … + βn * xn)))
Где P(x) — вероятность положительного класса, а β0, β1, …, βn — веса, присвоенные каждому входному признаку (x1, x2, …, xn).
Процесс изучения
И логистическая регрессия, и перцептроны используют методы оптимизации на основе градиента для изучения оптимальных весов. В логистической регрессии метод оценки максимального правдоподобия (MLE) используется для нахождения весов, которые максимизируют вероятность заданных данных. Точно так же в персептроне веса обновляются с использованием градиентного спуска или другого алгоритма оптимизации, чтобы минимизировать ошибку между предсказанными выходными данными и фактическими метками.
Логистическая регрессия и глубокое обучение
Логистическую регрессию можно считать строительным блоком для моделей глубокого обучения. Модели глубокого обучения, такие как многослойные персептроны и сверточные нейронные сети, состоят из нескольких слоев взаимосвязанных нейронов. Каждый нейрон может использовать логистическую функцию в качестве функции активации, преобразуя взвешенную сумму своих входов в нелинейный выход.
Однако в современных архитектурах глубокого обучения другие функции активации, такие как ReLU (выпрямленная линейная единица), Leaky ReLU или Tanh, стали более популярными из-за их лучшей производительности и более легкого обучения по сравнению с сигмовидной функцией.
В заключение, логистическая регрессия играет ключевую роль в основе глубокого обучения и персептронов. Он служит функцией активации и помогает в процессе обучения за счет оптимизации на основе градиента. Хотя логистическая регрессия является относительно простой моделью по сравнению с архитектурами глубокого обучения, понимание ее принципов может помочь в понимании более сложных нейронных сетей.

Тесная связь между логистической регрессией и персептронами
Чтобы математически продемонстрировать связь между логистической регрессией и персептронами, начнем с определения компонентов обеих моделей.
Логистическая регрессия
Логистическая регрессия — это обобщенная линейная модель, которая оценивает вероятность бинарного результата на основе одного или нескольких входных признаков. Он использует логистическую функцию для сопоставления входных значений с диапазоном [0, 1]. Логистическая функция определяется как:
Р (х) = 1 / (1 + е ^ (- г))
Где P(x) представляет вероятность положительного класса, а z представляет собой линейную комбинацию входных признаков и их соответствующих весов:
z = β0 + β1 * x1 + β2 * x2 + … + βn * xn
Персептрон
Персептрон — это однослойная нейронная сеть, используемая для задач бинарной классификации. Он состоит из входных признаков, весов и функции активации. Модель перцептрона можно представить в виде:
у = f(z)
Где y — выход персептрона, f(z) — функция активации, а z — взвешенная сумма входных признаков:
z = β0 + β1 * x1 + β2 * x2 + … + βn * xn
Теперь давайте математически свяжем логистическую регрессию и перцептроны:
Когда мы используем логистическую функцию (сигмоидальную функцию) в качестве функции активации в модели персептрона, выход персептрона становится следующим:
у = f (z) = 1 / (1 + e ^ (-z))
Поскольку взвешенная сумма (z) одинакова как для логистической регрессии, так и для персептрона, мы можем заключить, что персептрон с логистической функцией в качестве функции активации эквивалентен модели логистической регрессии.
Таким образом, и логистическая регрессия, и перцептроны имеют одну и ту же линейную комбинацию входных признаков и весов (z). Когда логистическая функция используется в качестве функции активации в персептроне, персептрон становится эквивалентным модели логистической регрессии, иллюстрируя тесную связь между двумя моделями.
Некоторый код Python
Вот простая реализация логистической регрессии на Python и персептрон с логистической (сигмоидальной) функцией активации с использованием одного и того же набора данных. Мы будем использовать набор данных Iris для демонстрационных целей.
Импортировать необходимые библиотеки:
import numpy as np
from sklearn import datasets
from sklearn.linear_model import LogisticRegression
from sklearn.model_selection import train_test_split
from sklearn.metrics import accuracy_score
from sklearn.preprocessing import StandardScaler
iris = datasets.load_iris()
X = iris.data[:100, :2] # Select only first two features for simplicity
y = iris.target[:100] # Select only first two classes for binary classification
X_train, X_test, y_train, y_test = train_test_split(X, y, test_size=0.2, random_state=42)
scaler = StandardScaler()
X_train = scaler.fit_transform(X_train)
X_test = scaler.transform(X_test)
log_reg = LogisticRegression()
log_reg.fit(X_train, y_train)
y_pred_log_reg = log_reg.predict(X_test)
def sigmoid(z):
return 1 / (1 + np.exp(-z))
class Perceptron:
def __init__(self, learning_rate=0.1, n_iterations=1000):
self.learning_rate = learning_rate
self.n_iterations = n_iterations
def fit(self, X, y):
n_samples, n_features = X.shape
self.weights = np.zeros(n_features)
self.bias = 0
for _ in range(self.n_iterations):
linear_output = np.dot(X, self.weights) + self.bias
y_predicted = sigmoid(linear_output)
# Update weights and bias
self.weights -= self.learning_rate * np.dot(X.T, (y_predicted - y)) / n_samples
self.bias -= self.learning_rate * np.sum(y_predicted - y) / n_samples
def predict(self, X):
linear_output = np.dot(X, self.weights) + self.bias
y_predicted = sigmoid(linear_output)
return np.round(y_predicted)
perc = Perceptron()
perc.fit(X_train, y_train)
y_pred_perc = perc.predict(X_test)
accuracy_log_reg = accuracy_score(y_test, y_pred_log_reg)
accuracy_perc = accuracy_score(y_test, y_pred_perc)
print("Logistic Regression Accuracy:", accuracy_log_reg)
print("Perceptron with Logistic Activation Function Accuracy:", accuracy_perc)
Заключение
Логистическая регрессия — это универсальный и мощный статистический метод, который может моделировать вероятность возникновения события на основе одной или нескольких переменных-предикторов. С приложениями, охватывающими здравоохранение, финансы и социальные науки, логистическая регрессия предлагает эффективное средство решения проблем бинарной классификации. Понимая ее математические основы, предположения и ограничения, специалисты-практики могут использовать логистическую регрессию для принятия обоснованных решений и прогнозов в различных областях.
Создание этой статьи было частично поддержано GPT-4.