Rentang pencarian mana untuk menentukan parameter optimal C dan gamma SVM?

32

Saya menggunakan SVM untuk klasifikasi dan saya mencoba menentukan parameter optimal untuk kernel linear dan RBF. Untuk kernel linear saya menggunakan pemilihan parameter yang divalidasi silang untuk menentukan C dan untuk kernel RBF saya menggunakan pencarian grid untuk menentukan C dan gamma.

Saya memiliki 20 fitur (angka) dan 70 contoh pelatihan yang harus diklasifikasikan ke dalam 7 kelas.

Rentang pencarian mana yang harus saya gunakan untuk menentukan nilai optimal untuk parameter C dan gamma?

Kywia
sumber

Jawaban:

31

Lihat Panduan praktis untuk Klasifikasi SVM untuk beberapa petunjuk, terutama halaman 5.

Kami merekomendasikan "pencarian grid" pada dan γ menggunakan cross-validation. Berbagai pasangan nilai ( C , γ ) dicoba dan yang dipilih dengan akurasi cross-validasi terbaik. Kami menemukan bahwa mencoba sekuens yang tumbuh secara eksponensial dari C dan γ adalah metode praktis untuk mengidentifikasi parameter yang baik (misalnya, C = 2 - 5 , 2 - 3 , , 2 15 ; γ = 2 - 15 , 2 - 13 ,Cγ(C,γ)Cγ ).C=25,23,,215;γ=215,213,,23

Ingatlah untuk menormalkan data Anda terlebih dahulu dan jika Anda bisa, kumpulkan lebih banyak data karena dari tampilannya, masalah Anda mungkin sangat tidak ditentukan.

ciri
sumber
Haruskah pengujian sejawat dilakukan secara manual? tidak ada perpustakaan untuk mencapainya?
x-rw
11

Lihat bagian 2.3.2 dari makalah ini oleh Chapelle dan Zien. Mereka memiliki heuristik yang bagus untuk memilih rentang pencarian yang baik untuk dari kernel RBF dan C untuk SVM. Saya mengutipσC

Untuk menentukan nilai bagus dari parameter bebas yang tersisa (mis. Oleh CV), penting untuk mencari pada skala yang tepat. Karena itu kami memperbaiki nilai default untuk dan σ yang memiliki urutan besarnya yang benar. Dalam c masalah-kelas kita menggunakan 1 / c kuantil dari jarak berpasangan D ρ i j dari semua data-poin sebagai default untuk σ . Default untuk C adalah invers dari varians empiris s 2 dalam ruang fitur, yang dapat dihitung dengan s 2 = 1Cσc1/cDijρσCs2 darin×nkernel matriksK.s2=1niKii1n2i,jKijn×nK

Setelah itu, mereka menggunakan kelipatan (misalnya untuk k { - 2 , . . . , 2 } ) dari nilai default sebagai rentang pencarian dalam kotak-pencarian menggunakan cross-validasi. Itu selalu berhasil dengan baik bagi saya.2kk{2,...,2}

Tentu saja, kami @ciri berkata, menormalkan data dll selalu merupakan ide yang baik.

Fabee
sumber
Saya pikir ada beberapa formulasi kernel rbf yang sama. Satu dengan gamma dan lainnya dengan sigma, yaitu gamma = 1 / 2sigma ^ 2. Apakah gamma pada heuristik di atas sesuai dengan gamma, sigma atau sigma ^ 2? Saya telah menemukan deskripsi lain dari heurstic yang sama yaitu untuk gamma.
permesinan
12σ2
@fabee Haruskah pengujian rekan dilakukan secara manual? tidak ada perpustakaan untuk mencapainya?
x-rw