🔴 Сложный ⏱️ 25 минут

Логистическая регрессия: от линии к кривой

Логистическая регрессия: от линии к кривой

🎯 Зачем это нужно?

Представь, что ты разрабатываешь алгоритм для TikTok, который решает: показывать ли видео пользователю или нет? 📱 Или создаёшь спам-фильтр для почты: письмо от мамы или реклама? Может быть, помогаешь банку понять: одобрить кредит или отказать?

Во всех этих случаях нужно предсказать НЕ число (как в линейной регрессии), а вероятность события. И именно для этого придумали логистическую регрессию!

💼 В реальной жизни:

  • Яндекс предсказывает вероятность клика на рекламу
  • Netflix решает, понравится ли тебе фильм
  • Медицина определяет риск заболевания
  • Автопилот Tesla классифицирует объекты на дороге

📚 История вопроса

В 1958 году статистик Дэвид Кокс работал над биологическими экспериментами и столкнулся с проблемой: как предсказать вероятность выживания? Линейная регрессия могла выдать отрицательную “вероятность” или больше 100% - полная ерунда!

Кокс придумал “согнуть” прямую линию в S-образную кривую, которая всегда лежит между 0 и 1. Так родилась логистическая регрессия - один из самых популярных алгоритмов в Data Science! 🚀

💡 Интуиция

Проблема линейной регрессии: Допустим, мы хотим предсказать, сдаст ли студент экзамен по количеству часов подготовки:

  • 0 часов → 0% вероятности ✅
  • 10 часов → 50% вероятности ✅
  • 20 часов → 100% вероятности ✅
  • 30 часов → 150% вероятности ❌ НЕ БЫВАЕТ!

[МЕДИА: image_01] Описание: Сравнение линейной и логистической регрессии для предсказания вероятности сдачи экзамена Промпт: “educational comparison chart showing linear regression line going beyond 0-1 bounds vs sigmoid curve staying within probability bounds, exam preparation hours on x-axis, probability on y-axis, clean modern style”

Решение: Используем сигмоидную функцию (sigmoid) - она “сжимает” любое число в диапазон от 0 до 1:

σ(z) = 1/(1 + e^(-z))

где z = w₀ + w₁x₁ + w₂x₂ + … (линейная комбинация признаков)

Интуитивно:

  • При z → +∞: σ(z) → 1 (почти 100% вероятность)
  • При z → -∞: σ(z) → 0 (почти 0% вероятность)
  • При z = 0: σ(z) = 0.5 (50% вероятность)

📐 Формальное определение

Логистическая регрессия - это метод машинного обучения для бинарной классификации, который моделирует вероятность принадлежности объекта к классу через логистическую (сигмоидную) функцию.

Модель: P(y=1|x) = σ(w^T x) = 1/(1 + e^(-w^T x))

Функция потерь (логарифмическая): L(w) = -1/n ∑[y_i log(p_i) + (1-y_i) log(1-p_i)]

где p_i = σ(w^T x_i) - предсказанная вероятность

Оптимизация: Градиентный спуск ∂L/∂w = 1/n X^T (σ(Xw) - y)

[МЕДИА: image_02]
Описание: Визуализация сигмоидной функции с различными параметрами Промпт: “interactive visualization of sigmoid function with different weight parameters, showing how curve steepness and position change, mathematical annotation, educational graph style, colorful curves”

🔍 Примеры с разбором

Пример 1: Спам-фильтр

Задача: Определить, является ли email спамом по двум признакам:

  • x₁ = количество восклицательных знаков
  • x₂ = количество слов CAPS LOCK

Данные для обучения:

Email 1: x₁=0, x₂=0 → НЕ спам (y=0)  
Email 2: x₁=1, x₂=2 → НЕ спам (y=0)
Email 3: x₁=5, x₂=8 → Спам (y=1)
Email 4: x₁=3, x₂=6 → Спам (y=1)

Обученная модель: w₀=-2, w₁=0.3, w₂=0.2

Предсказание для нового письма (x₁=4, x₂=3):

  1. z = w₀ + w₁x₁ + w₂x₂ = -2 + 0.3×4 + 0.2×3 = -2 + 1.2 + 0.6 = -0.2
  2. P(спам) = 1/(1 + e^(0.2)) = 1/(1 + 1.22) = 0.45

Вывод: 45% вероятность спама → скорее всего НЕ спам

Пример 2: Медицинская диагностика

Задача: Предсказать риск диабета по:

  • x₁ = уровень глюкозы в крови
  • x₂ = индекс массы тела

Модель: P(диабет) = 1/(1 + e^(-(-8 + 0.05×глюкоза + 0.2×ИМТ)))

Для пациента с глюкозой 140 и ИМТ 28: z = -8 + 0.05×140 + 0.2×28 = -8 + 7 + 5.6 = 4.6 P(диабет) = 1/(1 + e^(-4.6)) ≈ 0.99 = 99%

[МЕДИА: image_03] Описание: 3D визуализация логистической регрессии для медицинских данных Промпт: “3D surface plot showing logistic regression probability surface for medical diagnosis, glucose and BMI as axes, probability as height, color gradient from blue (low risk) to red (high risk), professional medical visualization style”

🎮 Практика

Базовый уровень 🟢

Задание 1: Вычисли вероятность для σ(2):

💡 Подсказка σ(z) = 1/(1 + e^(-z)), где z = 2
✅ Ответ σ(2) = 1/(1 + e^(-2)) = 1/(1 + 0.135) ≈ 0.88

Задание 2: При каком z сигмоид равен 0.5?

💡 Подсказка Когда знаменатель равен 2?
✅ Ответ При z = 0: σ(0) = 1/(1 + 1) = 0.5

Задание 3: Модель: P = σ(-1 + 2x). Найди P при x = 1:

💡 Подсказка z = -1 + 2×1 = 1
✅ Ответ P = σ(1) = 1/(1 + e^(-1)) ≈ 0.73

Задание 4: Что означает w₀ = -3 в модели σ(w₀ + w₁x)?

💡 Подсказка Это сдвиг по оси x
✅ Ответ При x = 0 вероятность σ(-3) ≈ 0.05, т.е. базовая вероятность очень низкая

Продвинутый уровень 🟡

Задание 5: Интернет-магазин предсказывает покупку: P = σ(-2 + 0.1×время_на_сайте). Сколько минут нужно, чтобы P = 0.8?

💡 Подсказка 0.8 = 1/(1 + e^(-z)), найди z, потом время
✅ Ответ z ≈ 1.39, время = (1.39 + 2)/0.1 = 33.9 минут

Задание 6: Почему в логистической регрессии не используют MSE?

💡 Подсказка Подумай о форме функции потерь
✅ Ответ MSE с сигмоидом даёт немонотонную функцию с локальными минимумами, в которых застревает градиентный спуск

Задание 7: Реализуй один шаг градиентного спуска для w = [1, -0.5], x = [2], y = 1, α = 0.1:

💡 Подсказка ∇w = (σ(w^T x) - y) × x
✅ Ответ z = 1×1 + (-0.5)×2 = 0, σ(0) = 0.5 ∇w₀ = (0.5-1) = -0.5, w₀ := 1 + 0.1×0.5 = 1.05 ∇w₁ = (0.5-1)×2 = -1, w₁ := -0.5 + 0.1×1 = -0.4

Челлендж 🔴

Задание 8: Докажи, что производная сигмоида: σ’(z) = σ(z)(1 - σ(z))

💡 Подсказка Используй правило производной частного
✅ Ответ σ(z) = (1 + e^(-z))^(-1) σ'(z) = -1×(1 + e^(-z))^(-2) × (-e^(-z)) = e^(-z)/(1 + e^(-z))² = σ(z)(1-σ(z))

Задание 9: Объясни связь между логистической регрессией и логарифмом отношения шансов (log-odds):

💡 Подсказка odds = P/(1-P), что получится если взять логарифм?
✅ Ответ log(P/(1-P)) = log(σ(z)/(1-σ(z))) = z = w^T x Логистическая регрессия линейно моделирует логарифм отношения шансов!

⚠️ Частые ошибки

Ошибка: “Логистическая регрессия предсказывает класс (0 или 1)” ✅ Правильно: Предсказывает вероятность класса, порог 0.5 - это наш выбор 💡 Почему: Можно использовать любой порог в зависимости от задачи (precision vs recall)

Ошибка: “Если P = 0.7, то точно класс 1”
Правильно: 70% вероятность - не гарантия, это степень уверенности 💡 Почему: В медицине лучше перестраховаться, в рекламе - наоборот

Ошибка: Применять к многоклассовой классификации напрямую ✅ Правильно: Использовать one-vs-all или softmax регрессию 💡 Почему: Логистическая регрессия изначально для двух классов

Ошибка: Не нормализовать признаки ✅ Правильно: Привести к одному масштабу (стандартизация) 💡 Почему: Градиентный спуск медленно сходится при разных масштабах

🎓 Главное запомнить

✅ Логистическая регрессия = линейная комбинация + сигмоид для получения вероятностей ✅ P(y=1|x) = 1/(1 + e^(-w^T x)) - ключевая формула
✅ Используется для бинарной классификации в рекламе, медицине, финансах

🔗 Связь с другими темами

Откуда пришли: Линейная регрессия (урок 312) дала основу для линейной комбинации признаков

Куда ведёт:

  • Многоклассовая классификация (softmax)
  • Нейронные сети (сигмоид как функция активации)
  • SVM и другие методы классификации
  • Продвинутые техники: регуляризация, ансамбли

Понял тему? Закрепи в боте! 🚀

Попрактикуйся на задачах и получи персональные рекомендации от AI

💪 Начать тренировку
💬 Есть вопрос? Спроси бота!