Mengapa menggunakan penskalaan Platt?


17

Untuk mengkalibrasi tingkat kepercayaan ke probabilitas dalam pembelajaran yang diawasi (katakanlah untuk memetakan kepercayaan dari SVM atau pohon keputusan menggunakan data yang terlalu banyak) salah satu metode adalah dengan menggunakan Penskalaan Platt (misalnya, Memperoleh Kemungkinan yang Dikalibrasi dari Peningkatan ).

Pada dasarnya orang menggunakan regresi logistik untuk memetakan ke . Variabel dependen adalah label yang sebenarnya dan prediktor adalah kepercayaan dari model yang tidak dikalibrasi. Yang tidak saya mengerti adalah penggunaan variabel target selain 1 atau 0. Metode ini membutuhkan pembuatan "label" baru:[-;][0;1]

Untuk menghindari overfitting ke set kereta sigmoid, model out-of-sample digunakan. Jika ada contoh positif dan contoh negatif di set kereta, untuk setiap contoh pelatihan Platt Calibration menggunakan nilai target dan (masing-masing bukan 1 dan 0), di mana N+N-y+y-

y+=N++1N++2;y-=1N-+2

Yang tidak saya mengerti adalah bagaimana target baru ini berguna. Bukankah regresi logistik hanya akan memperlakukan variabel dependen sebagai label biner (terlepas dari label apa yang diberikan)?

MEMPERBARUI:

Saya menemukan bahwa dalam SAS mengubah ketergantungan dari ke sesuatu yang lain dikembalikan ke model yang sama (menggunakan ). Mungkin kesalahan saya atau mungkin kurangnya fleksibilitas SAS. Saya dapat mengubah model dalam R. Sebagai contoh:1/0PROC GENMOD

data(ToothGrowth) 
attach(ToothGrowth) 

  # 1/0 coding 
dep          <- ifelse(supp == "VC", 1, 0) 
OneZeroModel <- glm(dep~len, family=binomial) 
OneZeroModel 
predict(OneZeroModel) 

  # Platt coding 
dep2           <- ifelse(supp == "VC", 31/32, 1/32) 
plattCodeModel <- glm(dep2~len, family=binomial) 
plattCodeModel 
predict(plattCodeModel) 

compare        <- cbind(predict(OneZeroModel), predict(plattCodeModel)) 

plot(predict(OneZeroModel), predict(plattCodeModel))

Jawaban:


13

Saya sarankan untuk memeriksa halaman wikipedia regresi logistik . Ini menyatakan bahwa dalam kasus regresi logistik variabel dependen biner memetakan prediktor untuk kemungkinan terjadinya variabel dependen. Tanpa transformasi apa pun, probabilitas yang digunakan untuk pelatihan model adalah 1 (jika y positif dalam set pelatihan) atau 0 (jika y negatif).

Jadi: Alih-alih menggunakan nilai absolut 1 untuk kelas positif dan 0 untuk kelas negatif ketika memasang (di mana adalah output yang tidak dikalibrasi dari SVM ), Platt menyarankan untuk menggunakan transformasi yang disebutkan untuk memungkinkan label yang berlawanan muncul dengan beberapa probabilitas. Dengan cara ini beberapa regularisasi diperkenalkan. Ketika ukuran dataset mencapai tak terbatas, akan menjadi 1 dan akan menjadi nol. Untuk detailnya, lihat kertas asli Platt .halsaya=1(1+exhal(SEBUAHfsaya+B))fsayay+y-


terima kasih atas tanggapannya! Saya pertama kali menggunakan SAS dan tidak bisa mendapatkan variabel respons yang berbeda. Saya cocok dengan yang berikut di R sebagai contoh dan melihat bahwa peringatan dikeluarkan tentang tidak menjadi variabel respon integer tetapi hasilnya memang cocok dengan model yang berbeda.
B_Miner

data (ToothGrowth) lampirkan (ToothGrowth) # 1/0 coding dep <-ifelse (supp == "VC", 1,0) OneZeroModel <-glm (dep ~ len, keluarga = binomial) OneZeroModel memprediksi (OneZeroModel) #Platt coding dep2 <-ifelse (supp == "VC", 31/32, 1/32) plattCodeModel <-glm (dep2 ~ len, keluarga = binomial) plattCodeModel predict (plattCodeModel) bandingkan <-cbind (prediksi (OneZeroModel), prediksi ( plattCodeModel)) plot (prediksi (OneZeroModel), prediksi (plattCodeModel))
B_Miner

@ user2040: 1. Ya ... apakah ada pertanyaan atau hanya komentar :)? 2. mengapa Anda tidak menambahkan kode ke pertanyaan? Tidak ada format yang mengerikan.
steffen

2

Metode lain untuk menghindari over-fitting yang menurut saya berguna adalah menyesuaikan model regresi logistik univariat dengan output cross-validasi silang keluar-keluar dari SVM, yang dapat didekati secara efisien menggunakan ikatan Span .

Namun, jika Anda menginginkan classifier yang menghasilkan perkiraan probabilitas keanggotaan kelas, maka Anda akan lebih baik menggunakan regresi logistik kernel, yang bertujuan untuk melakukannya secara langsung. Ouput dari SVM dirancang untuk klasifikasi diskrit dan tidak harus berisi informasi yang diperlukan untuk estimasi probabilitas yang akurat jauh dari kontur p = 0,5.

Penggolong proses Gaussian adalah pilihan lain yang baik jika Anda menginginkan penggolong probabilistik berbasis kernel.

Dengan menggunakan situs kami, Anda mengakui telah membaca dan memahami Kebijakan Cookie dan Kebijakan Privasi kami.
Licensed under cc by-sa 3.0 with attribution required.