Apakah mungkin untuk membangun model statistik yang memprediksi langkah selanjutnya dalam grafik hanya berdasarkan pergerakan masa lalu dan struktur grafik?
Saya telah membuat contoh untuk menggambarkan masalah:
- Waktu adalah diskrit . Di setiap ronde Anda tinggal di simpul / simpul saat ini atau pindah ke salah satu node yang terhubung. Karena waktu adalah diskrit dan paling banyak Anda dapat maju satu simpul setiap putaran tidak ada kecepatan.
- Rute / riwayat pergerakan sebelumnya: {A, B, C} - Dan posisi saat ini adalah: C
Berlaku untuk gerakan selanjutnya: C, B, X, Y, Z
- Jika Anda memilih C Anda tetap tetap,
- jika B Anda bergerak mundur,
- dan jika X, Y, atau Z menyiratkan bergerak maju.
Tidak ada bobot pada tautan atau simpul.
- Tidak ada simpul tujuan akhir. Sebagian dari perilaku pergerakan yang diamati adalah acak dan sebagian darinya akan memiliki keteraturan.
Model yang sangat sederhana - yang tidak memperhitungkan sejarah pergerakan - hanya akan memprediksi bahwa C, B, X, Y, dan Z masing-masing memiliki kemungkinan 1/5 untuk menjadi langkah selanjutnya.
Tetapi berdasarkan pada struktur dan sejarah pergerakan, saya menduga dimungkinkan untuk membuat model statistik yang lebih baik. Misalnya instance X harus memiliki probabilitas yang lebih rendah, karena seseorang dapat pindah ke sana langsung dari node B di babak sebelumnya. Demikian pula B juga harus memiliki probabilitas yang lebih rendah karena orang tersebut dapat tetap tetap pada putaran sebelumnya.
Jika pengguna bergerak kembali ke B , maka sejarah gerakan akan terlihat seperti ini {A, B, C, B} dan bergerak valid akan A, B, C, D, E, X . Pindah ke C seharusnya memiliki probabilitas yang lebih rendah, karena Anda bisa tetap tetap. Pindah ke X juga harus memiliki probabilitas yang lebih rendah, karena Anda bisa pindah ke sana dari C di babak sebelumnya. Sejarah sebelumnya juga dapat mempengaruhi prediksi, tetapi harus diberikan bobot yang lebih sedikit daripada sejarah baru - yaitu. 2 putaran yang lalu Anda bisa tinggal di B , atau Anda bisa pindah ke A, D, E, X - 3 putaran yang lalu Anda bisa tinggal di A .
Melihat sekeliling saya menemukan bahwa masalah yang sama dihadapi:
- telekomunikasi seluler, di mana operator mencoba memprediksi menara seluler mana yang akan dipindahkan pengguna selanjutnya sehingga mereka dapat dengan lancar menyerahkan panggilan / transmisi data.
- navigasi web, di mana browser / mesin pencari mencoba untuk memprediksi halaman mana yang akan Anda kunjungi selanjutnya sehingga mereka dapat memuat sebelumnya dan menyimpan cache halaman, sehingga waktu tunggu berkurang. Demikian pula aplikasi peta mencoba memprediksi ubin peta mana yang akan Anda minta selanjutnya, dan memuatnya.
- dan tentu saja industri transportasi.
Jawaban:
Apakah Anda benar-benar menginginkan model statistik, atau hanya sebuah algoritma untuk menebak node berikutnya yang diberikan semua yang sebelumnya? Jika yang terakhir maka pertimbangkan untuk melanjutkan sebagai berikut.
Misalkan Anda telah pergi dan perlu memutuskan mana dari , atau merupakan node berikutnya yang paling mungkin.... → A → B → C X Y Z
Markov orde pertama. Secara historis, katakanlah bergerak dari telah ke , ke dan ke . Tentukan . Menambahkan konstanta perataan ke setiap hitungan, probabilitas (Dirichlet-Multinomial) untuk langkah selanjutnya adalah dll.nC( X) C X nC( Y) Y nC( Z) Z nC=nC( X) +nC( Y) +nC( Z) κ halC( X) =κ +nC( X)3 κ +nC
Markov orde kedua. Seperti di atas, tetapi kami sedang melihat langkah-langkah yang mengikuti . Hitungan dll akan lebih rendah (kami mengambil potongan yang lebih kecil, lebih spesifik. Dari sejarah), sehingga efek perataan dari penambahan ke penghitungan historis akan lebih besar secara proporsional. Seperti sebelumnya, kita mendefinisikan dan seterusnya.B C nB C( X) κ halB C( X) =κ +nB C( X)3 κ +nB C
Lanjutkan dengan cara ini, membentuk probabilitas hingga sejarah cukup panjang sehingga hanya ada satu pilihan untuk simpul berikutnya. Melangkah lebih jauh ke belakang sekarang tidak ada gunanya. Biarkan menjadi maksimum dari semua probabilitas . Prediksi Anda untuk node berikutnya adalah .halC( ⋅ ) ,halB C( ⋅ ) ,halA B C( ⋅ ) , ... halsejarah( W) hal⋅( ⋅ ) W
Ini hanya meninggalkan pertanyaan: nilai apa yang harus diambil oleh ? akan menjadi titik awal tradisional. Coba validasi silang (latih sebagian data Anda, uji sisanya) untuk menyempurnakan nilainya.κ κ = 1
sumber
Petunjuk untuk versi yang tidak bervariasi waktu: Anda dapat menganggap ini sebagai memperbarui (menggunakan teorema Bayes ') perkiraan yang diberikan beberapa data. Kemungkinan multinomial dan Dirichlet sebelumnya akan menjadi pendekatan standar. https://en.wikipedia.org/wiki/Dirichlet-multinomial_distribution
Untuk yang sebelumnya sepertinya Anda ingin probabilitas sebelumnya untuk menetapkan probabilitas transisi yang sama untuk setiap node yang mungkin.
Untuk menambahkan efek waktu (transisi yang lama lebih penting daripada yang baru) lebih kompleks. Anda bisa menambahkan fungsi peluruhan agar Anda mendapatkan transisi parsial.
Secara umum struktur diagram saja tidak akan memberi tahu Anda tentang probabilitas transisi.
sumber
Beberapa jawaban dan beberapa pertanyaan.
Untuk mempermudah, mari kita mulai dengan mengasumsikan Anda hanya melihat satu rantai panjang pergerakan. Model paling sederhana akan melibatkan distribusi Multinomial untuk setiap node (pada dasarnya di setiap node ada die to roll spesifik untuk menentukan ke mana Anda pergi selanjutnya). Tujuan kami adalah memperkirakan parameter dadu ini. Seperti yang disebutkan Ash, pendekatan Bayesian adalah menempatkan Dirichlet Prior Distribution pada setiap dadu, dan memperbarui ini sebelumnya dengan data baru untuk mendapatkan Dirichlet Posterior Distribution . Anda dapat menganggap distribusi Dirichlet sebagai pabrik dadu. Fakta bahwa distribusi posterior juga adalah Dirichlet adalah karena distribusi Dirichlet adalah Prior Konjugatke distribusi Multinomial. Walaupun ini terdengar membingungkan, sebenarnya sangat sederhana. Sebelumnya dapat diartikan sebagai pseudo-counts, pada dasarnya berpura-pura bahwa Anda sudah melihat beberapa data (meskipun Anda belum).
Misalnya, jika Anda berada di Z Anda dapat pergi ke C, D, Z (dadu kami tiga sisi di sini). Kita dapat menggunakan Dirichlet sebelum bertindak seolah-olah kita telah melihat satu transisi dari Z ke masing-masing negara. Jadi setiap probabilitas akan sama dengan 1/3. Jika pemain bertransisi ke C, kami akan memperbarui distribusi kami dengan satu hitungan lagi, jadi transisi dari Z ke C akan memiliki probabilitas 2/4 dan yang lainnya masing-masing akan memiliki probabilitas 1/4. Jika kita menggunakan prior dengan lebih banyak pseudo-counts seolah-olah kita telah melihat 10 transisi dari Z ke masing-masing negara lain, probabilitas yang diperbarui (11/31, 10/31, 10/31), akan jauh lebih dekat dengan aslinya yang, ini adalah yang sebelumnya lebih kuat . Kekuatan prior biasanya ditentukan oleh Validasi Lintas .
Model yang saya jelaskan di atas disebut sebagai tanpa memori , karena probabilitas transisi dari satu kondisi ke kondisi lain hanya bergantung pada kondisi Anda saat ini. Jika Anda ingin melakukan sesuatu yang lebih rumit, Anda dapat menggabungkan tidak hanya di mana Anda berada saat ini, tetapi juga di mana Anda berada pada langkah terakhir, meskipun pada titik ini jumlah parameter yang harus Anda perkirakan akan meningkat secara dramatis, dan oleh karena itu variasi dalam memperkirakan akan sama baik.
Pertanyaan:
Anda memberi intuisi berupa "Mengapa saya harus pergi dari B-> C-> X ketika saya bisa pergi dari B-> X?" Gagasan-gagasan ini tampaknya spesifik untuk masalah yang sedang Anda kerjakan, jadi saya dapat berbicara langsung dengannya. Meskipun jika itu merupakan masalah, mungkin Anda ingin menggunakan model non-memoryless (memoryfull?), Atau memasukkan informasi ini ke dalam prior Anda. Jika Anda ingin menjelaskan apa arti kehidupan nyata dari grafik ini, dan karena itu dari mana intuisi ini berasal, mungkin kita bisa lebih membantu.
catatan:
Anda ingin mencari Model Markov, mungkin tidak begitu banyak Model Markov Tersembunyi. Mereka memiliki status tersembunyi yang mengendalikan data yang diamati, dan mencoba belajar menggunakannya mungkin menghalangi proyek ini.
sumber