Apakah pelatihan yang jarang dilakukan berdampak buruk pada SVM?

12

Saya mencoba untuk mengklasifikasikan pesan ke dalam kategori yang berbeda menggunakan SVM. Saya telah menyusun daftar kata / simbol yang diinginkan dari set pelatihan.

Untuk setiap vektor, yang mewakili pesan, saya mengatur baris yang sesuai 1jika kata tersebut ada:

"corpus" adalah: [mary, little, lamb, star, twinkle]

pesan pertama: "mary had a little lamb" -> [1 1 1 0 0]

pesan kedua: "twinkle little star" -> [0 1 0 1 1]

Saya pikir ini adalah pengaturan yang cukup umum dengan SVM, tetapi pertanyaan saya adalah, dengan ribuan kata di set, bagaimana jika hanya ada 1-2 kata per pesan yang benar-benar muncul? Apakah ketergantungan linier dari himpunan vektor pelatihan saya akan memengaruhi kemampuan algoritma untuk menyatu?

jonsca
sumber
1
Apakah Anda memiliki banyak data, tetapi sedikit data berlabel? Jika demikian, Anda mungkin ingin melihat pembelajaran semi-diawasi. Menggunakan beberapa data yang tidak berlabel harus meningkatkan keakuratan Anda dan mengurangi risiko overfitting.
neuron
@neuron saya sudah berpikir untuk melakukan itu. Apa contoh arsitektur semi-diawasi?
jonsca
1
Saya hanya menggunakan metode "retas" semi-diawasi (alias model kereta di trainingset, menggunakan model untuk memprediksi data, menarik semua data dengan probabilitas prediksi> 0,5 dan bergabung dengan trainingset, dan membuat moel di trainingset baru). Tetapi saya telah melihat flexmix menyebutkan beberapa tempat (lihat cran.r-project.org/web/packages/flexmix )
neuron
@neuron Oke, bagus, karena artikel yang saya lihat (walaupun dengan pencarian mirip wikipedia) tidak terlalu spesifik tentang arsitektur. Saya akan memeriksa flexmix- meskipun, saya sudah "Belajar R" di kalender saya selama beberapa tahun sekarang!
jonsca
Lakukan, R LUAR BIASA, perpustakaan yang tersedia untuk Anda hanya membingungkan. Hal-hal seperti caret, sqldf / rmysql, foreach (parallel for), ggplot2 dan googlevis adalah alat yang luar biasa membantu. Awalnya saya bukan penggemar bahasa itu, tetapi sudah berkembang pada saya, dan saya benar-benar suka menggunakannya sekarang.
neuron

Jawaban:

9

Sparsitas dan ketergantungan linear adalah dua hal yang berbeda. Ketergantungan linear menyiratkan bahwa beberapa vektor fitur merupakan kelipatan sederhana dari vektor fitur lainnya (atau sama dengan yang diterapkan pada contoh). Dalam pengaturan yang telah Anda jelaskan saya pikir ketergantungan linear tidak mungkin (ini menyiratkan dua istilah memiliki frekuensi yang sama (atau kelipatannya) di semua dokumen). Cukup memiliki fitur yang jarang tidak menimbulkan masalah untuk SVM. Salah satu cara untuk melihat ini adalah Anda dapat melakukan rotasi acak dari sumbu koordinat, yang akan membuat masalah tidak berubah dan memberikan solusi yang sama, tetapi akan membuat data benar-benar non-jarang (ini sebagian cara proyeksi acak bekerja ).

Juga tampak bahwa Anda berbicara tentang SVM dalam primal . Perhatikan bahwa jika Anda menggunakan kernel SVM, hanya karena Anda memiliki dataset jarang tidak berarti bahwa matriks kernel akan jarang. Namun, mungkin peringkatnya rendah. Dalam hal ini Anda sebenarnya dapat memanfaatkan fakta ini untuk pelatihan yang lebih efisien (lihat misalnya pelatihan svm yang efisien menggunakan representasi kernel peringkat rendah ).

tdc
sumber
1
Benar, saya agak cepat dan longgar dengan terminologi saya. Masuk akal.
jonsca