EM algo возвращает разные ответы, используя pykalman

Я столкнулся с проблемой, когда я использовал pykalman 0.9.5 в Python 3.6.3

Обратитесь к приведенному ниже коду, почему результаты kf2 а также kf3 отличаются в то время как результаты kf1 а также kf3 идентичны?

Разница процесса между kf2 а также kf3 является то, что я просто разделить итерацию на запуск 2 раза функции для kf2,

Спасибо всем, кто изучает это.

>>>pri_mean[:10]
array([ 2827.2222,  2829.6   ,  2831.    ,  2832.1   ,  2833.1   ,  2835.3   ,  2833.9   ,
        2833.8   ,  2833.6   ,  2833.    ])

>>>kf1 = KalmanFilter()
>>>kf1 = kf1.em(pri_mean, 10, em_vars='all')
>>>print(kf1.transition_matrices, kf1.transition_offsets, kf1.transition_covariance)
[[ 0.99741876]] [ 10.04426882] [[ 2896.92752373]]
>>>kf2 = kf1.em(pri_mean, 10, em_vars='all')
>>>print(kf2.transition_matrices, kf2.transition_offsets, kf2.transition_covariance)
[[ 0.99364606]] [ 20.02260806] [[ 2600.94151188]]

>>>kf3 = KalmanFilter()
>>>kf3 = kf3.em(pri_mean, 20, em_vars='all')
>>>print(kf3.transition_matrices, kf3.transition_offsets, kf3.transition_covariance)
[[ 0.99741876]] [ 10.04426882] [[ 2896.92752373]]

1 ответ

Решение

Я редактирую ответ, так как неправильно понял вопрос. Я думаю, что проблема в том, что вам не хватает ключевого слова n_iter

Смотрите этот код:

kf1 = KalmanFilter()
kf1 = kf1.em(pri_mean, n_iter=10, em_vars='all')
print(kf1.transition_matrices, kf1.transition_offsets, kf1.transition_covariance)
kf1 = kf1.em(pri_mean, n_iter=10, em_vars='all')
print(kf1.transition_matrices, kf1.transition_offsets, kf1.transition_covariance)
kf1 = KalmanFilter()
kf1 = kf1.em(pri_mean, n_iter=20, em_vars='all')
print(kf1.transition_matrices, kf1.transition_offsets, kf1.transition_covariance)

Я создаю один фильтр через KalmanFilter(), цикл 10 итераций и печать, затем еще 10 и печать. Это эквивалентно вызову .em() с 20 итерациями сразу.

Будет производить следующий вывод

[[ 0.95500561]] [ 113.29118228] [[ 6431.66262464]]
[[ 0.93636512]] [ 119.32378005] [[ 249.67547612]]
[[ 0.93636512]] [ 119.32378005] [[ 249.67547612]]
Другие вопросы по тегам