Apakah scikit-belajar menggunakan regularisasi secara default?

12

Saya baru saja memasang kurva logistik ke beberapa data palsu. Saya membuat data dasarnya fungsi langkah.

data = -------------++++++++++++++

Tetapi ketika saya melihat kurva yang pas, kemiringannya sangat kecil. Fungsi yang meminimalkan fungsi biaya dengan asumsi cross entropy adalah fungsi step. Mengapa itu tidak terlihat seperti fungsi langkah? Apakah ada beberapa regularisasi, L1 atau L2, yang dilakukan secara default?

Regresi logistik menggunakan scikit-learning

sebastianspiegel
sumber

Jawaban:

8

Silakan lihat dokumentasi . Baris pertama menunjukkan parameter default, yang meliputi penalty='l2'dan C=1.0.

Anda sebenarnya tidak dapat menonaktifkan regularisasi sepenuhnya, Anda hanya dapat mengatur kurang ... coba pengaturan C=1e10misalnya.

stmax
sumber
2
Anda sekarang dapat (pada versi 0.21.0) lulus penalty='none'. scikit-learn.org/stable/whats_new.html#id15
Ben Reiniger
6

Ya, ada regularisasi secara default. Tampaknya regularisasi L2 dengan konstanta 1.

Saya bermain-main dengan ini dan menemukan bahwa regularisasi L2 dengan konstanta 1 memberi saya kecocokan yang terlihat persis seperti apa yang dipelajari sci-kit yang diberikan kepada saya tanpa menentukan regularisasi.

from sklearn.linear_model import LogisticRegression    
model = LogisticRegression()
model.fit(X, y)

sama dengan

model = LogisticRegression(penalty="l2", C=1)
model.fit(X, y)

Ketika saya memilih C=10000, saya mendapatkan sesuatu yang lebih mirip fungsi langkah.

sebastianspiegel
sumber