Diberikan urutan input, saya perlu menentukan apakah urutan ini memiliki properti yang diinginkan. Properti hanya bisa benar atau salah, yaitu, hanya ada dua kelas yang mungkin dimiliki urutan.
Hubungan yang tepat antara urutan dan properti tidak jelas, tetapi saya percaya itu sangat konsisten dan harus memberikan klasifikasi statistik. Saya memiliki sejumlah besar kasus untuk melatih classifier, meskipun mungkin sedikit bising, dalam arti ada sedikit kemungkinan urutan diberi kelas yang salah dalam rangkaian pelatihan ini.
Contoh data pelatihan:
Sequence 1: (7 5 21 3 3) -> true
Sequence 2: (21 7 5 1) -> true
Sequence 3: (12 21 7 5 11 1) -> false
Sequence 4: (21 5 7 1) -> false
...
Secara kasar, properti ditentukan oleh himpunan nilai dalam urutan (misalnya keberadaan "11" berarti bahwa properti hampir pasti salah), serta urutan nilai (misalnya "21 7 5 "Secara signifikan meningkatkan kemungkinan bahwa properti itu benar).
Setelah pelatihan, saya harus bisa memberi classifier urutan yang sebelumnya tidak terlihat, seperti (1 21 7 5 3)
, dan harus menampilkan kepercayaannya bahwa properti itu benar. Apakah ada algoritma yang terkenal untuk melatih classifier dengan input / output seperti ini?
Saya telah mempertimbangkan pengelompokan Bayesian yang naif (yang tidak benar-benar dapat disesuaikan dengan fakta bahwa pesanan itu penting, setidaknya bukan tanpa melanggar asumsi bahwa inputnya independen). Saya juga telah menyelidiki pendekatan model Markov yang tersembunyi, yang tampaknya tidak dapat diterapkan karena hanya satu output yang tersedia, alih-alih satu output per input. Apa yang saya lewatkan?
sumber
Jawaban:
Anda bisa mencoba pendekatan probabilistik yang mirip dengan classifier Bayes yang naif tetapi dengan asumsi yang lebih lemah. Misalnya, alih-alih membuat asumsi independensi yang kuat, buatlah asumsi Markov:
adalah label kelas Anda, x adalah urutan Anda. Anda perlu memperkirakan dua distribusi bersyarat, satu untuk c = 1 dan satu untuk c = 0 .c x c=1 c=0
Dengan aturan Bayes:
Distribusi mana yang dipilih untuk tergantung pada asumsi lain yang dapat Anda buat tentang urutan dan berapa banyak data yang Anda miliki.p(xt∣xt−1,c)
Misalnya, Anda dapat menggunakan:
Dengan distribusi seperti ini, jika ada 21 angka berbeda yang terjadi dalam urutan Anda, Anda harus memperkirakan parameter π ( x t , x t , c ) ditambah 21 ⋅ 2 = 42 parameter untuk p ( x 0 ∣ c ) ditambah 2 parameter untuk p ( c ) .21⋅21⋅2=882 π(xt,xt,c) 21⋅2=42 p(x0∣c) 2 p(c)
Jika asumsi model Anda tidak terpenuhi, itu dapat membantu untuk menyempurnakan parameter secara langsung sehubungan dengan kinerja klasifikasi, misalnya dengan meminimalkan rata-rata kehilangan-log
menggunakan gradient-descent.
sumber
Saya menyarankan agar Anda mendefinisikan beberapa fitur, dan kemudian memilih algoritma pembelajaran mesin untuk diterapkan ke fitur tersebut.
Fitur: Pada dasarnya, setiap fitur harus menjadi sesuatu yang dapat dihitung dari urutan tertentu, dan menurut Anda mungkin relevan dengan apakah urutan tersebut memiliki properti atau tidak. Berdasarkan uraian Anda, Anda dapat mempertimbangkan fitur-fitur seperti berikut:
(7 5 21 3 3)
(7 5 21 3 3)
7 5
5 21
21 3
3 3
"Kantung trigram." Anda juga dapat mempertimbangkan trigram, yang merupakan kelanjutan dari tiga angka berurutan dari urutan aslinya. Anda dapat melakukan hal yang sama seperti di atas.
sumber
Apa yang Anda lakukan secara efektif adalah pengujian hipotesis pada deret waktu. HMM akan bekerja untuk Anda, meskipun Anda harus menyesuaikannya dengan kasus khusus Anda.
Jujur saja, jika Anda tidak bisa menuliskan semacam deskripsi matematis tentang apa yang ingin Anda deteksi, Anda tidak akan melangkah terlalu jauh. Mungkin Anda bisa memberi tahu kami tentang fitur apa yang Anda harapkan untuk dilihat?
sumber
Diberi panjang maksimum 12 pada urutan, maka jaringan saraf dengan 12 input dan satu output dapat bekerja, tetapi Anda harus mengisi akhir setiap urutan dengan nol atau nilai inert.
sumber
Sudahkah Anda mencoba menggunakan jaringan Bayesian? Itulah hal pertama yang saya pikirkan ketika saya harus menggabungkan beberapa bagian data (datang satu per satu) untuk sampai pada probabilitas variabel acak.
Jaringan Bayesian tidak bergantung pada asumsi independensi bahwa Bayes naif.
BTW, model Markov tersembunyi adalah kasus khusus dari jaringan Bayesian.
sumber