2011-10-02 13 views
7

Bir kuşun hareketlerine ait 500 gözlem dizim var. Kuşun 501 hareketinin ne olacağını tahmin etmek istiyorum. Web'de arama yaptım ve sanırım bu HMM'yi kullanarak yapılabilir, ancak bu konuda herhangi bir deneyimim yok. Bu problemi çözmek için kullanılan bir algoritmanın adımlarını açıklayabilir mi?Bir sonraki gözlemi öngören Gizli Markov Modeli

+0

Bazılarının zaten olduğunu iddia ediyorum. .. uzunluğunda ... http://en.wiki pedia.org/wiki/Hidden_Markov_model – Gleno

cevap

10
x1-x2-x3-x4-x5......x500-x501 
| | | | |  | 
y1 y2 y3 y4 y5  y500 

x - actual state 
y - observations 

P(y_i|x_i) - how you think the observation depends on the actual state 
P(x_i|x_(i-1)) - how you think the actual state evolves 

for i = 1,2,3...,501: 
    write down best-guess of x_i based on y_i* and x_(i-1)** 
you have your solution, since you only care about the last state 

* missing in step 1 
** missing in step 501 

üzerinde basit (ileri-geri algoritmasına (http://en.wikipedia.org/wiki/Forward-backward_algorithm) olarak bilinen ve ağacın bu özel tür (Bayes ağ ağaçlar ve Markov ağ ağaçlar) toplam ürünün algoritmasının özel bir durumu olduğu düşünülebilir asılı düğümler zinciri. İhtiyacın olmadığından "geriye" adımını göz ardı edebilirsiniz, çünkü sadece son durumu önemsersiniz. senin HMM geçiş olasılıkları bilinmemesi halinde

şunları yapmanız gerekir ya:

  • gibi bir öğrenme algoritması gerçekleştirmek EM
  • bir naif tahminde (HMMler üzerinde gerçekleştirilen zaman Baum-Welch olarak da bilinir) alan bilgisine dayanarak (örneğin, gizli durumunuz DNA ise, DNA verilerinin geçişlerini manuel olarak etiketleyerek ve frekansları hesaplayarak önceki duruma verilen geçiş olaylarının frekanslarını sayabiliriz)
+0

Üzgünüz cevabını anlayamadım. Sadece 0 ile 8 arasında bir dizi 500 rakamım var (5, 4, 6, 6, ..., 0, 2 gibi) Ve mümkün olan en çok 501st numarasını almak istiyorum. – user975733

+0

ilk olarak şu soruları düşünün: ** 1) ** '" Gerçek/gizli durumlarımın aralığı nedir? (0-8 arası olmayabilir, örneğin 0-100 veya hatta sayısal olmayanlar olabilir) 'yüksek', 'düşük'}) "' ** 2) ** '" Eğer bir 5'i gözlemlersem, bu gerçek/gizli durumun ne anlama geldiği anlamına gelir? "** ** 3) **' " zamanda durum = t [bir şey], ne zaman devletin ne zaman olduğunu = t + 1 olacaktır? (Örneğin, x500 = 'yüksek' ise, kuşun 'düşük' uçmaya geçişi ne kadar muhtemeldir? ?) "' – ninjagecko