Dominando Modelos Ocultos deMarkov com Python e GHMMDaker Fernandes PinheiroSetembro/2011, Python Brasil
Senta que lá vem história
Processamento de Sequências Biológicas e Metodos e Algoritmos emBiologia Computacional - 2011.1
Prof. Ivan GesteiraDNA, RNAProteínasModelos Ocultos de Markov
Problemas em Biologia Computacional
Identificação de regiões de interesse no DNAClassificação de DNA e ProteínasClusterização de DNA e ProteínasProfiling de DNA e ProteínasIdentificação de AnomaliasIlhas CpG...
Modelos Ocultos de Markov
Ou Hidden Markov Models (HMMs)Modelo MatemáticoProbabilísticoAnálise de Séries e SequênciasEstados internos vs. Comportamento
Problemas diversos
ClassificaçãoClusterizaçãoReconhecimentoAnálise de Séries TemporaisAnálise de SequênciasGeração segundo o modelo
Problemas Diversos
Linguagem NaturalSinaisMúsicaMineração de DadosAprendizagem de MáquinaExtração de Informação
Fair-Bet Casino
Existe um casino onde existe um jogo de apostas com moedas e umfuncionário que as lança moedas.
Fair-Bet Casino
Cada moeda pode assumir dois valores:Cara (H)Coroa (T)
Fair-Bet Casino
O funcionário tem duas moedas:Uma moeda Justa: que pode dar como resultado (emite símbolos)com a seguinte distribuição
Cara com probabilidade 50%Coroa com probabilidade 50%
Uma moeda Viciada:Cara com probabilidade 75%Coroa com probabilidade 25%
Fair-Bet Casino
Grafo de emissões:
Fair-Bet Casino
Esse funcionário sempre usa uma das duas moedas. Mas podetrocá-las com 10% das vezes que vai fazer um novo sorteio.
EstadosTransições
Fair-Bet Casino
Grafo de transições de estados:
Fair-Bet Casino
O funcionário começa com qualquer uma das moedas com igualprobabilidade.
Fair-Bet Casino
Transições do estado inicial:
Fair-Bet Casino
Modelo completo:
Problema
Imagine que você é um apostador
Problema
Dada uma sequência de lançamentos:
T, T, T, H, T, H, H, T, T, H, H, T, H, T, H, H, H, H, T, T, H, T, H,T, H, H, H, T, H, H, H, H, H, T, H, H, T, H, H, H, T, H, T
Quais moedas o lançador estava utilizando em cada momento?
Solução
Não existe solução extata! Mas...
Solução
Probabilidades a posteriori
Dado uma sequência, quais as probabilidades de estar em cada modelo
+Viterbi
Biblioteca:
General Hidden Markov Model (GHMM)+ Biopython (Cenas de um próximo capítulo)
GHMM
Biblioteca C++HMMs + AlgoritmosBinding Python
GHMM
import ghmm
# Criando a l f ab e t o para r ep r e s en t a r os# s imbolos emit idos pe lo me modelo .
emiss ion_alphabet = ghmm. Alphabet ( [ ’H ’ , ’T ’ ] )
GHMM
# Matriz de t r a n s i c o e s :# l i nha s representam estados de origem# colunas representam estados de de s t i no# va l o r e s da matr iz representam a# probab i l i dade da t r an s i c a o de es tados#t r a n s i t i o n s_p r o b a b i l i t i e s = [
[ 0 . 9 , 0 . 1 ] , # 0 : estado de j u s t o[ 0 . 1 , 0 . 9 ] , # 1 : estado v i c i ado
]
GHMM
# probab i l i dade s de comecar em H e Ti n i t i a l_ s t a t e s_d i s t r i b u t i o n = [ 0 . 5 , 0 . 5 ]
GHMM
# Matriz de emissao de s imbolos
# 0 : p robab i l i dade s de emissao da moeda ju s t aemi s s i on s_ fa i r = [ 0 . 5 , 0 . 5 ]# 1 : p robab i l i dade s de emissao da moeda v i c i adaemiss ions_biased = [ 0 . 5 , 0 . 5 ]
em i s s i o n s_p robab i l i t i e s = [emi s s i ons_fa i r ,emiss ions_biased
]
GHMM
# Criando Modelo Oculto de Markovhmm = ghmm.HMMFromMatrices (
# Al fabetoemission_alphabet ,# Tipo de d i s t r i b u i c a o ( d i s c r e t a , gauss iana , . . . )ghmm. D i s c r e t eD i s t r i bu t i o n ( emiss ion_alphabet ) ,t r a n s i t i o n s_p r ob ab i l i t i e s ,em i s s i on s_probab i l i t i e s ,i n i t i a l_ s t a t e s_d i s t r i b u t i o n
)
GHMM
Resolvendo o problema do Casino
t o s s e s = [T, T, T, H, . . . , H, T]
# XXXsequence = ghmm. EmissionSequence ( emiss ion_alphabet ,
t o s s e s )
v iterbi_path , states_prob = hmm. v i t e r b i ( sequence )
GHMM
Resolvendo o problema do Casino
>>> pr in t ( v i terb i_path )[ 0 , 0 , 0 , 0 , . . . , 1 , 1 , 1 , 1 , 1 ]
>>> pr in t states_prob[ [ 0 . 8407944139086141 , 0 .1592055860913865 ] ,[ 0 .860787703168127 , 0 .13921229683187356 ] , . . . ]
Fair-Bet Casino
Probabilidades a posteriori:
Algoritmos
Geração de sequênciasEmissão com distribuições GaussianasBaum Welch
Agradecimentos
INDTCIn - UFPEProf. Ivan GesteiraPython BrasilVocês!
Dúvidas?Twitter: @dakerfpE-mail: [email protected]: dakerfpBlog: http://codecereal.blogspot.comBlog: http://blog.qtlabs.org.brBlog: http://aimotion.blogspot.comGitorious: http://gitorious.org/ dakerfpGithub: http://github.com/dakerfpGHMM: http://ghmm.org