Overfitting dengan Linear Classifiers

10

Hari ini profesor kami menyatakan di kelas bahwa "overfitting dengan pengklasifikasi linear tidak mungkin". Saya berpendapat bahwa itu salah, karena bahkan pengklasifikasi linier dapat peka terhadap outlier dalam set pelatihan - ambil contohnya margin keras Dukungan Mesin Vektor: Satu titik data berisik dapat mengubah hyperplane mana yang akan digunakan untuk memisahkan dataset. Atau saya salah? Jelas, linearitas mungkin akan mencegah daripada overfitting karena kompleksitas model yang lebih rendah, masih saya tidak melihat mengapa overfitting seharusnya tidak mungkin. Satu poin tambahan adalah ketika saya mencoba memikirkan masalah ini saya menyadari bahwa "overfitting" sepertinya tidak didefinisikan secara formal. Mengapa demikian? Tidak akankah suatu jarak mengukur antara pelatihan dan kinerja set tes memungkinkan formalisasi seperti itu? Terima kasih

Pugl
sumber
4
Mengapa Anda mengatakan classifier linier? Kebanyakan model linier adalah untuk prediksi, bukan klasifikasi. Dan Anda benar - model linier bisa sangat rentan terhadap overfitting. Tidak sebanyak metode pembelajaran mesin, tetapi overfitting masih bisa menjadi masalah.
Frank Harrell
5
Sangat mudah untuk menggunakan classifier linier. Sesuaikan model dengan beberapa dataset (berisik, dunia nyata) dan jangan gunakan regularisasi apa pun.
Vladislavs Dovgalecs
2
Waspadalah terhadap klasifikasi - biasanya tidak perlu mengatur pandangan Anda yang rendah.
Frank Harrell
2
@ FrankHarrell ... dan mengapa?
Pugl
1
Ya, jika awalnya biner. Jika awalnya kontinu maka klasifikasi bahkan lebih bermasalah. YY
Frank Harrell

Jawaban:

12

Regresi linear / classifier benar-benar bisa overfit jika digunakan tanpa perawatan yang tepat.

Ini contoh kecil. Mari kita buat dua vektor, yang pertama hanya koin membalik acak:5000

set.seed(154)
N <- 5000
y <- rbinom(N, 1, .5)

Vektor kedua adalah pengamatan, masing-masing secara acak ditugaskan ke salah satu dari kelas acak:5000500

N.classes <- 500
rand.class <- factor(sample(1:N.classes, N, replace=TRUE))

Seharusnya tidak ada hubungan antara flips ykami dan kelas acak kami rand.class, mereka ditentukan sepenuhnya secara independen.

Namun, jika kita mencoba untuk memprediksi flip acak dengan kelas acak menggunakan regresi logistik (pengklasifikasi linier), itu pasti berpikir ada hubungan

M <- glm(y ~ rand.class, family="binomial")
hist(coef(M), breaks=50)

masukkan deskripsi gambar di sini

Nilai sebenarnya dari setiap koefisien ini adalah nol. Tapi seperti yang Anda lihat, kami memiliki penyebaran yang cukup. Klasifikasi linier ini sangat cocok.

Catatan: Ekstrem dalam histogram ini, di mana koefisien telah berkeliaran ke1515y == 1y == 015

"overfitting" tampaknya tidak didefinisikan secara formal. Mengapa demikian?

Overfitting paling baik dipahami dalam konteks kelas model yang memiliki beberapa parameter kompleksitas. Dalam hal ini, sebuah model dapat dikatakan overfit ketika mengurangi kompleksitas sedikit menghasilkan harapan yang lebih baik dari kinerja sampel.

Akan sangat sulit untuk secara tepat mendefinisikan konsep dalam model yang independen. Sebuah model tunggal pas, Anda perlu sesuatu untuk membandingkannya agar lebih atau kurang pas. Dalam contoh saya di atas, perbandingan ini dengan kebenaran, tetapi Anda biasanya tidak tahu kebenarannya, karena itu modelnya!

Tidak akankah suatu jarak mengukur antara pelatihan dan kinerja set tes memungkinkan formalisasi seperti itu?

Ada konsep seperti itu, itu disebut optimisme. Itu didefinisikan oleh:

ω=EtestEtrain

E

Ini tidak cukup pada esensi dari overfitting, karena kinerja pada set tes bisa sedikit lebih buruk daripada kereta, meskipun model kompleksitas yang lebih tinggi mengurangi keduanya .

Matthew Drury
sumber
wow, jawaban yang bagus, terima kasih banyak. satu pertanyaan: apakah SVM linear lebih rentan terhadap overfitting daripada misalnya log. regresi yang Anda sebutkan (karena berbagai cara mengoptimalkan untuk batas keputusan linier)?
Pugl
1
Harus saya akui, saya bukan ahli SVM, dan kurang pengalaman praktis dalam penggunaannya. Saya benar-benar tidak ingin berani menjawab dan berisiko salah. Jika Anda dapat memformulasikannya dengan tepat, itu mungkin patut dipertanyakan.
Matthew Drury,
SVM diatur, dan karenanya kurang rentan terhadap pakaian berlebihan. Untuk menyadari bahwa Anda hanya perlu melihat fungsi yang Anda minimalkan: itu mencakup norma l1 atau norma l2 dari bobot, mengecilkannya dalam optimasi dan karenanya memilih model "sederhana" daripada model "kompleks". Parameter yang mengendalikan ini adalah parameter hiper C. Dalam kasus pembatas (C = infinity), SVM cocok dengan "sempurna" set pelatihan dan dengan demikian mungkin overfit (perhatikan bahwa saya katakan mungkin, Anda perlu set tes untuk memastikan!). Juga perhatikan bahwa saya menggunakan banyak kutipan, tetapi ini dapat didefinisikan dengan benar.
skd
2

Dalam 70-ties, percobaan dengan algoritma pengenalan pola pada dataset besar mengungkapkan bahwa menambahkan fitur tambahan dalam beberapa kasus meningkatkan tingkat kesalahan set tes. Ini kontra intuitif karena orang berharap bahwa menambahkan fitur tambahan selalu meningkatkan kinerja classifier, atau jika fitur yang ditambahkan adalah 'white noise', penambahannya tidak mempengaruhi kinerja classifier sama sekali. Efek menambahkan fitur ekstra lebih banyak lagi ke classifier, akhirnya mengarah pada penurunan kinerja set-set dikenal sebagai fenomena memuncak [1].

Puncak fitur disebabkan oleh generalisasi berlebihan selama pembelajaran. Fitur tambahan menyebabkan dimasukkannya begitu banyak parameter tambahan sehingga penggolong mulai menyesuaikan data. Oleh karena itu, titik puncak dilewati.

Secara umum, kami menghadapi pertukaran bias-varians ketika melatih pengklasifikasi. Semakin banyak fitur-variabel yang kita gunakan, semakin baik mekanisme pengklasifikasi ( tidak diketahui ) yang mendasarinya mungkin dimodelkan oleh pengklasifikasi kita. Oleh karena itu, penyimpangan sistematis antara model pas dan 'kebenaran' akan berkurang, yaitu hasil bias yang lebih kecil. Di sisi lain, meningkatkan ruang fitur dari classifier tentu menyiratkan penambahan parameter (parameter yang sesuai dengan fitur yang ditambahkan). Dengan demikian, varian dari classifier yang dipasang juga meningkat.

Jadi pengklasifikasi yang melampaui titik puncak hanyalah satu realisasi stokastik dari masalah klasifikasi dimensi tinggi, dan kecocokan baru akan menghasilkan vektor parameter yang sangat berbeda. Fakta ini mencerminkan meningkatnya variasi.

[1. GV Trunk, "Masalah Dimensi: Contoh Sederhana," dalam Transaksi IEEE tentang Analisis Pola dan Kecerdasan Mesin, vol. PAMI-1, no. 3, hlm. 306-307, Juli 1979]

Match Maker EE
sumber
1

Saya pikir overfitting mengacu pada kompleksitas model daripada kemampuan generalisasi. Saya memahami kutipan "penggolong linier tidak dapat dilengkapi" karena kompleksitasnya kecil, dan tidak ada penggolong sederhana lainnya yang memberikan kinerja yang lebih baik.

Contoh ini terkait dengan kemampuan generalisasi dari pengklasifikasi linier (dan yang kompleks). Bahkan di bagian kedua ini, pengklasifikasi linier biasanya memberikan varians yang lebih sedikit daripada yang kompleks, sehingga nilai "overfitting" untuk pengklasifikasi linier, mengikuti konsep ini, juga lebih kecil (walaupun risiko empiris dari mereka bisa sangat besar). atb

pepe Catro
sumber
0

Seperti yang dikatakan @ match-maker-ee, pengklasifikasi linear dapat terlalu pas tergantung pada fitur input.

Model f berikut linear dalam parameter a , b dan c , tetapi dapat dipasang ke kurva kuadrat di ruang fitur x :

f(x)=ax2+bx+c

SVM's juga dapat over-fit, misalnya ketika mereka menggunakan trik kernel, meskipun pada dasarnya merupakan model linier dalam ruang fitur tambahan.

lesu
sumber