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