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
Petunjuk latihan
- Masukkan jumlah contoh pelatihan ke dalam
range(). - Lengkapi fungsi loss untuk logistic regression.
- Bandingkan koefisiennya dengan
LogisticRegressiondari 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_)