Klasifikasi urutan vektor

9

Dataset saya terdiri dari sekuens vektor. Setiap vektor memiliki 50 dimensi bernilai nyata. Jumlah vektor dalam rentang urutan 3-5 hingga 10-15. Dengan kata lain, panjang urutan tidak tetap.

Sejumlah urutan yang adil (bukan vektor!) Dijelaskan dengan label kelas. Tugas saya adalah mempelajari classifier yang diberi urutan vektor, label kelas untuk seluruh urutan dihitung.

Saya tidak bisa mengatakan sifat pasti dari data tersebut tetapi sifat urutannya tidak temporal. Namun demikian, vektor tidak dapat dipertukarkan dengan vektor x j tanpa mengubah label ( i j ). Dengan kata lain, urutan vektor penting. Vektor itu sendiri sebanding, misalnya masuk akal untuk menghitung produk titik dan menggunakan nilai kesamaan ini.xixjij

Pertanyaan saya adalah: apa alat / algoritma yang dapat membantu untuk mengklasifikasikan data tersebut?

UPDATE: Data memiliki properti sedemikian sehingga satu atau beberapa vektor sangat mempengaruhi label kelas.

SOLUSI MUNGKIN: Setelah beberapa penelitian sepertinya Recurrent Neural Networks (RNN) sesuai dengan tagihan secara alami. Gagasan umum adalah untuk memilih ukuran konteks , menggabungkan vektor kata, melakukan max pooling dan memberi makan melalui NN klasik. Pada setiap jendela konteks posisi yang mungkin dalam kalimat, vektor fitur dibangun. Vektor fitur akhir dibuat menggunakan max pooling misalnya. Backpropagation dilakukan untuk menyesuaikan parameter jaringan. Saya sudah mendapat beberapa hasil positif (GPU adalah suatu keharusan).k

Vladislavs Dovgalecs
sumber

Jawaban:

3

Karena Anda tidak dapat mengungkapkan banyak detail, saya terpaksa agak generik dalam jawaban saya. Saya harap ini akan sangat membantu. Pertama-tama, saya hanya akan mempertimbangkan mengurangi urutan sebelum klasifikasi (baik itu dengan menggunakan produk titik atau sesuatu yang lain) jika Anda dapat memastikan bahwa Anda tidak kehilangan informasi yang Anda butuhkan untuk klasifikasi sesudahnya. Jadi pendekatan ini hanya layak jika Anda memiliki wawasan tentang sifat klasifikasi. Untuk memberikan contoh sederhana: jika label kelas hanya jumlah vektor dalam urutan Anda, Anda tidak akan terlalu berhasil dalam memprediksi label kelas dari produk titik.

Oleh karena itu, saya akan mengambil urutan penuh sebagai input untuk klasifikasi, dan memaksakan maksimum pada panjang urutan yang ingin Anda pertimbangkan. Anda dapat melakukan ini dengan pertama-tama menemukan panjang urutan maksimum m dalam set pelatihan Anda dan kemudian mengubah setiap urutan vektor 50-dimensi menjadi satu vektor dimensi 50 * m, mungkin dengan beberapa nilai yang hilang di akhir jika urutan Anda tidak memiliki panjang maksimum. Anda mungkin ingin menyingkirkan nilai-nilai yang hilang ini dan Anda mungkin ingin menggantinya dengan nol.

Ada dua jalan yang bisa Anda tempuh dari sini: 1.) Anda langsung menerapkan metode klasifikasi yang dikenal cocok untuk dimensi tinggi. Cobalah sesuatu yang sederhana yang tidak membutuhkan banyak penyetelan seperti Bayes naif. Dengan cara ini Anda dapat melihat apakah pendekatan ini layak tanpa kehilangan terlalu banyak waktu jika tidak. 2.) Anda mencoba terlebih dahulu untuk mengurangi dimensi dan memahami sifat klasifikasi dengan lebih baik. Anda mungkin ingin menggunakan sesuatu seperti analisis komponen utama atau menganalisis korelasi / asosiasi antara setiap komponen vektor dan label kelas. Jika Anda berhasil, Anda tahu cara mengurangi dimensi input Anda sebelum menerapkan klasifikasi.

Jika Anda ingin mengikuti salah satu dari ide-ide ini, harap diingat bahwa detail konkret dari data Anda dan klasifikasi dapat membuat salah satu ide yang diajukan di atas tidak layak. Jadi harap berhati-hati untuk memeriksa rincian yang Anda tahu tetapi tidak dapat memposting di sini sebelum mencoba untuk memastikan Anda tidak membuang waktu Anda.

MightyCurious
sumber
0

Data memiliki properti sedemikian sehingga satu atau sangat sedikit vektor sangat memengaruhi label kelas.

Pendekatan terbaik (dan termudah) mungkin adalah dengan hanya melatih classifer pada setiap vektor dan kemudian rata-rata prediksi melintasi vektor untuk urutan tertentu. Vektor penting akan sangat berpengaruh dalam prediksi mereka, sedangkan prediksi untuk vektor tidak penting akan mendekati 0,5 (atau serupa untuk masalah klasifikasi non-biner).

pir
sumber
Tidak juga. Terutama jika Anda memiliki banyak vektor tanpa informasi penting .. Jika Anda pergi rute itu, maka pasti gunakan LSTM :)
pir