2013-10-29 3 views
1

나는 HMM을 처음 사용하지만 나는 충분한 문학을 조사했다. 저는 대기 매개 변수를 사용하여 강우량을 예측할 프로젝트에 참여하고 있습니다.비 동질성 숨겨진 마르코프 모델을 사용하여 강우 예측

나는 10 년 동안 대기 (습도, 온도, 바람, 해수면 높이)의 4 가지 특성을 가지고있다. 나는 또한 나와 함께 강수량 데이터를 가지고있다.

내가 알 수있는 것처럼 매일 날씨 상태는 공간 강우량을 기준으로 지정됩니다. 그래서 여기에 질문이갑니다. 100 일 동안 데이터가 있다고 가정 해 보겠습니다.

강우량 = {1,2,3,4 ... 100}. 그래서 날씨 상태를 생성하려면 어떻게해야합니까? (Y_t를 | (X_t-1 X_t) 상태 전이 행렬,

  • P

    가정한다

    • P (X_0) 초기 매개 변수를 찾는 방법

      temperature = { 30 to 45, some kind of distribution } 
      humidity = { 25 to 80 } 
      wind = { 60 to 100 } 
      sea level height = { 35 to 90 } 
      
      ,
    • P을 수 있습니다 | X_t) 상태에 대한 관찰의 의존성

    상태를 생성하기 위해 클러스터링이 필요합니까?

    저는 이것을 MATLAB에서 코딩하고 있습니다.

    프로그램이나 프로그램에 구현할 절차를 설명 할 수있는 소스를 함께 제공 할 수 있습니다.

  • +0

    @nispio는 아래 답변에서 지적했듯이, HMM은 근본적으로 이산 값 상태 변수와 출력 변수를 사용하여 구성됩니다. [Kalman Filters] (http://en.wikipedia.org/wiki/Kalman_filter) ([tutorial (http://bilgin.esme.org/BitsBytes/KalmanFilterforDummies.aspx)])를 살펴볼 수 있습니다. 동일한 모델이지만 연속 값 상태와 출력을 사용합니다. 데이터 세트의 더 나은 모델 유형이 될 수 있습니다. – lmjohns3

    답변

    0

    HMM에는 개별 상태 수가 있으므로 첫 단계는 상태를 정의하는 것입니다. 잘 정의 된 상태가되면 상태에 대한 번호 체계를 작성하고 주어진 기간 동안 데이터를 받아 들일 수있는 함수를 작성하고 해당 상태에 해당하는 상태 번호를 출력하십시오. 다음과 같이

    당신이 기능이 일단 상태 번호에 매핑하는 데이터를 (의이 get_state를 호출하자), 당신은 당신의 상태 전이 행렬을 만들 수 있습니다 매트릭스 T

    T = zeros(num_states); 
    for day = 2:num_days 
        s1 = get_state(data(day-1)); 
        s2 = get_state(data(day)); 
        T(s1,s2) = T(s1,s2) + 1; 
    end 
    

    i,j 번째 요소를 지금 상태 i에서 j으로 전환 카운트를 제공합니다. 이를 다음과 같이 전환 확률로 바꿀 수 있습니다.

    M = bsxfun(@rdivide,T+1,sum(T+1,2)); 
    

    관찰 결과의 상태 의존성이 더 큽니다. 관측 된 데이터를 확률 밀도 함수 또는 확률 질량 함수로 바꾸려는 방법을 파악해야합니다. 온도, 습도 등을 하나의 관찰 결과로 결합하는 대신 하나의 상태에서 여러 분포를 관찰 할 수 있습니다.

    이것은 분명히 완전한 구현은 아니지만 시작 지점을 제공하기 만하면 충분합니다.

    관련 문제