MulaiMulai sekarang secara gratis

Menerapkan logistic regression

Ini sangat mirip dengan latihan sebelumnya saat Anda menerapkan linear regression "dari nol" menggunakan scipy.optimize.minimize. Namun, kali ini kita akan meminimalkan logistic loss dan membandingkannya dengan LogisticRegression dari scikit-learn (kami menetapkan C ke nilai besar untuk menonaktifkan regularization; lebih lanjut tentang ini di Bab 3!).

Fungsi log_loss() dari latihan sebelumnya sudah didefinisikan dalam lingkungan Anda, dan himpunan data prediksi kanker payudara sklearn (10 fitur pertama, telah distandardisasi) telah dimuat ke variabel X dan y.

Latihan ini adalah bagian dari kursus

Klasifikator Linear di Python

Lihat Kursus

Petunjuk latihan

  • Masukkan jumlah contoh pelatihan ke dalam range().
  • Lengkapi fungsi loss untuk logistic regression.
  • Bandingkan koefisiennya dengan LogisticRegression dari sklearn.

Latihan interaktif praktis

Cobalah latihan ini dengan menyelesaikan kode contoh berikut.

# 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_)
Edit dan Jalankan Kode