1. Learn
  2. /
  3. Курси
  4. /
  5. Середній рівень регресії зі statsmodels у Python

Connected

Вправа

Алгоритм логістичної регресії

Зазирнімо всередину моделі та реалізуймо алгоритм логістичної регресії. Оскільки функція logit() зі statsmodels є дуже складною, ви обмежитеся реалізацією простої логістичної регресії для одного набору даних.

Замість суми квадратів як метрику ми хочемо використовувати правдоподібність. Проте лог-правдоподібність обчислювально стабільніша, тож скористаємося нею. Насправді є ще одна зміна: оскільки ми хочемо максимізувати лог-правдоподібність, а minimize() за замовчуванням знаходить мінімум, зручніше обчислювати негативну лог-правдоподібність.

Значення лог-правдоподібності для кожного спостереження дорівнює $$ log(y_{pred}) * y_{actual} + log(1 - y_{pred}) * (1 - y_{actual}) $$

Потрібно обчислити метрику як негативну суму цих внесків лог-правдоподібності.

Пояснювальні значення (стовпець time_since_last_purchase у churn) доступні як x_actual. Відповідні значення (стовпець has_churned у churn) доступні як y_actual. logistic імпортовано з scipy.stats, а logit() і minimize() теж завантажені.

Інструкції 1/2

undefined XP
    1
    2

Завершіть тіло функції.

  • Розпакуйте coeffs відповідно у intercept та slope.
  • Обчисліть передбачені y-значення як суму перетину та добутку нахилу на фактичні x-значення, перетворену за допомогою логістичної CDF.
  • Обчисліть лог-правдоподібність як логарифм передбачених y-значень, помножений на фактичні y-значення, плюс логарифм одиниці мінус передбачені y-значення, помножений на одиницю мінус фактичні y-значення.
  • Обчисліть негативну суму лог-правдоподібності.
  • Поверніть негативну суму лог-правдоподібності.