ПочатиПочніть безкоштовно

Реалізація logistic regression

Це дуже схоже на попередню вправу, де ви реалізовували лінійну регресію «з нуля» за допомогою scipy.optimize.minimize. Однак цього разу ми мінімізуємо логістичну втрату та порівняємо результат із LogisticRegression зі scikit-learn (ми встановили C на велике значення, щоб вимкнути регуляризацію; докладніше про це в розділі 3!).

Функція log_loss() з попередньої вправи вже визначена у вашому середовищі, а набір даних sklearn для передбачення раку молочної залози (перші 10 ознак, стандартизовані) завантажено у змінні X та y.

Ця вправа є частиною курсу

Лінійні класифікатори в Python

Переглянути курс

Інструкції до вправи

  • Передайте кількість тренувальних прикладів у range().
  • Заповніть функцію втрат для logistic regression.
  • Порівняйте коефіцієнти з LogisticRegression зі sklearn.

Інтерактивна практична вправа

Спробуйте виконати цю вправу, доповнивши цей зразок коду.

# The logistic loss, summed over training examples
def my_loss(w):
    s = 0
    for i in range(____):
        raw_model_output = w@X[i]
        s = s + ____(raw_model_output * y[i])
    return s

# Returns the w that makes my_loss(w) smallest
w_fit = minimize(my_loss, X[0]).x
print(w_fit)

# Compare with scikit-learn's LogisticRegression
lr = LogisticRegression(fit_intercept=False, C=1000000).fit(X,y)
print(lr.coef_)
Редагувати та запускати код