내가 하고 싶은 문제에 대한 코드가 user guide에는 제대로 나와 있지 않아 검색해보다가 제대로 된 예제코드가 있어서 아래에 주소를 남겨 두었다.

http://sujitpal.blogspot.kr/2013/03/the-wikipedia-bob-alice-hmm-example.html


예제코드는 아래의 예제를 코딩한 것이라고 하는데 관측확률 입력값만 다를 뿐 모든 것이 '패턴인식-오일식 저'의 예제 7.4 여자친구의 삶과 동일했다.

http://en.wikipedia.org/wiki/Hidden_Markov_model#A_concrete_example


위 예제에서는 디코딩에 대한 예제만 있어서 이 예제에서 했던 방식을 통해  guide를 참고하여 7.4.1 평가 문제까지 풀었다.

guide출처 : http://scikit-learn.org/0.6/modules/generated/scikits.learn.hmm.MultinomialHMM.html

7.4.3 학습은 다음에 다루겠다.


코드 내용은 아래와 같다.

from __future__ import division

import numpy as np

from hmmlearn import hmm


states = ["Rainy", "Sunny"]

n_states = len(states)


observations = ["walk", "shop", "clean"]

n_observations = len(observations)


start_probability = np.array([0.6, 0.4])


transition_probability = np.array([

  [0.7, 0.3],

  [0.4, 0.6]

])


emission_probability = np.array([

  [0.1, 0.4, 0.5],

  [0.6, 0.3, 0.1]

])


model = hmm.MultinomialHMM(n_components=n_states)

model._set_startprob(start_probability)

model._set_transmat(transition_probability)

model._set_emissionprob(emission_probability)


# predict a sequence of hidden states based on visible states

#bob_says = [0, 2, 1, 1, 2, 0]

bob_says = [0, 0, 2, 1]


prob, arr = model.eval(bob_says)

#print model.decode(bob_says)

print "evaluation : ", exp(prob)


logprob, alice_hears = model.decode(bob_says, algorithm="viterbi")

print "Bob says:", ", ".join(map(lambda x: observations[x], bob_says))

print "Alice hears:", ", ".join(map(lambda x: states[x], alice_hears))


mode.eval은 log를 취한 값을 return해 주기 때문에 지수함수를 취한 값을 최종 결과 값으로 생각하면 된다.


이로써 내가 하려고 했던 평가와 디코딩에 대한 코딩 실험이 끝났다.

이제 학습을 공부할 차례인다.


Posted by 공놀이나하여보세

아래 주소에서 설치 후 자동 업로드 설정을 해주고 나니 파일 저장만 하면 자동으로 서버에 업로드가 된다~!! 대박

출처 : http://blog.readiz.com/46


'Tool > sublime' 카테고리의 다른 글

sublime sftp 사용하기  (0) 2015.03.01
Posted by 공놀이나하여보세

일단 아래 주소를 따라한다.

http://www.rasplay.org/?p=3051


ftp접속은 filezilla 이용

접속시 

host : sftp://192.168.219.154

username : pi

password : 비밀번호

port : 22



Posted by 공놀이나하여보세