Mulai sekarangMulai 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 merupakan bagian dari kursus

Klasifikator Linear di Python

Lihat Kursus

Instruksi latihan

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

Latihan interaktif langsung praktik

Cobalah latihan ini dengan melengkapi kode contoh ini.

# 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