SlideShare uma empresa Scribd logo
1 de 33
Baixar para ler offline
Dominando Modelos Ocultos de
Markov com Python e GHMM
Daker Fernandes Pinheiro

Setembro/2011, Python Brasil
Sobre mim...



   from Petrolina-PE import Daker
   Ciência da Computação CIn-UFPE
   Developer Instituto Nokia de Tecnologia (IDNT)
   Software Livre
   KDE, Qt, Plasma, QML-Box2D, MeeGo Components, dia2code,
   QMLFB, ...
   GSoC: Plasma Components
   PUG-PE
   Nerd Power
   Camisetas Brancas :-)
Senta que lá vem história




Processamento de Sequências Biológicas e Metodos e Algoritmos em
Biologia Computacional - 2011.1
    Prof. Ivan Gesteira
    DNA, RNA
    Proteínas
    Modelos Ocultos de Markov
Problemas em Biologia Computacional




  Identicação de regiões de interesse no DNA
  Classicação de DNA e Proteínas
  Clusterização de DNA e Proteínas
  Proling de DNA e Proteínas
  Identicação de Anomalias
  Ilhas CpG
  ...
Modelos Ocultos de Markov




  Ou Hidden Markov Models (HMMs)
  Modelo Matemático
  Probabilístico
  Análise de Séries e Sequências
  Estados internos vs. Comportamento
Problemas diversos




   Classicação
   Clusterização
   Reconhecimento
   Análise de Séries Temporais
   Análise de Sequências
   Geração segundo o modelo
Problemas Diversos




   Linguagem Natural
   Sinais
   Música
   Mineração de Dados
   Aprendizagem de Máquina
   Extração de Informação
Fair-Bet Casino


Existe um casino onde existe um jogo de apostas com moedas e um
funcioná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 pode
trocá-las com 10% das vezes que vai fazer um novo sorteio.
     Estados
     Transições
Fair-Bet Casino




Grafo de transições de estados:
Fair-Bet Casino




O funcionário começa com qualquer uma das moedas com igual
probabilidade.
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 + Algoritmos
 Binding Python
GHMM




import ghmm

# Criando a l f a b e t o para r e p r e s e n t a r os
#     s i m b o l o s e m i t i d o s p e l o me modelo .

emission_alphabet = ghmm. Alphabet ( [ 'H ' , 'T ' ] )
GHMM




# Matriz de t r a n s i c o e s :
#       l i n h a s representam e s t a d o s de origem
#       c o l u n a s representam e s t a d o s de d e s t i n o
#       v a l o r e s da matriz representam a
#               p r o b a b i l i d a d e da t r a n s i c a o de e s t a d o s
#
transitions_probabilities = [
    [ 0 . 9 , 0 . 1 ] , # 0 : e s t a d o de j u s t o
    [ 0 . 1 , 0 . 9 ] , # 1: estado viciado
]
GHMM




# p r o b a b i l i d a d e s de comecar em H e T
initial_states_distribution = [0.5 , 0.5]
GHMM



# Matriz de emissao de s i m b o l o s

# 0 : p r o b a b i l i d a d e s de emissao da moeda j u s t a
emissions_fair = [0.5 , 0.5]
# 1 : p r o b a b i l i d a d e s de emissao da moeda v i c i a d a
emissions_biased = [ 0 . 5 , 0 . 5 ]

emissions_probabilities = [
    emissions_fair ,
    emissions_biased
]
GHMM




# Criando Modelo Oculto de Markov
hmm = ghmm. HMMFromMatrices (
    # Alfabeto
    emission_alphabet ,
    # Tipo de d i s t r i b u i c a o ( d i s c r e t a , gau ss ia na , . . . )
    ghmm. D i s c r e t e D i s t r i b u t i o n ( emission_alphabet ) ,
     transitions_probabilities ,
    emissions_probabilities ,
     initial_states_distribution
)
GHMM




Resolvendo o problema do Casino

t o s s e s = [ T, T, T, H, . . . , H, T]

# XXX
sequence = ghmm. EmissionSequence ( emission_alphabet ,
                                        tosses )

v i t er b i _ p a t h , states_prob = hmm. v i t e r b i ( sequence )
GHMM




Resolvendo o problema do Casino

 p r i n t ( v i t e r b i _ p a t h )
[0 , 0 , 0 , 0 , . . . , 1 , 1 , 1 , 1 , 1]

 p r i n t states_prob
[[0.8407944139086141 , 0.1592055860913865] ,
 [0.860787703168127 , 0.13921229683187356] , . . . ]
Fair-Bet Casino




Probabilidades a posteriori:
Algoritmos




  Geração de sequências
  Emissão com distribuições Gaussianas
  Baum Welch
Agradecimentos




  INDT
  CIn - UFPE
  Prof. Ivan Gesteira
  Python Brasil
  Vocês!
Dúvidas?
Twitter: @dakerfp
E-mail: daker.pinheiro@openbossa.org
Freenode: dakerfp
Blog: http://codecereal.blogspot.com
Blog: http://blog.qtlabs.org.br
Blog: http://aimotion.blogspot.com
Gitorious: http://gitorious.org/ dakerfp
Github: http://github.com/dakerfp
GHMM: http://ghmm.org

Mais conteúdo relacionado

Mais procurados

Campanha Cacau Show
Campanha Cacau ShowCampanha Cacau Show
Campanha Cacau ShowTalita Tata
 
Torre de Hanoi: jogando com a Matemática
Torre de Hanoi: jogando com a MatemáticaTorre de Hanoi: jogando com a Matemática
Torre de Hanoi: jogando com a Matemáticaeellzziimmaarr
 
Jogos matemáticos slide
Jogos matemáticos slideJogos matemáticos slide
Jogos matemáticos slideMarli Franca
 
Análise Combinatória.ppt
Análise Combinatória.pptAnálise Combinatória.ppt
Análise Combinatória.pptMarcoAurlioLeo
 
Progressão geométrica
Progressão geométricaProgressão geométrica
Progressão geométricaJorgelgl
 
Bases Conceituais do Design | Havaianas
Bases Conceituais do Design | HavaianasBases Conceituais do Design | Havaianas
Bases Conceituais do Design | HavaianasPaulo Matos Jr
 
Problemas de aplicação pa e pg
Problemas de aplicação pa e pgProblemas de aplicação pa e pg
Problemas de aplicação pa e pgJose Donisete
 
Slide equaçoes 1 grau
Slide equaçoes 1 grauSlide equaçoes 1 grau
Slide equaçoes 1 grauestrelaeia
 
337 arezzo co-relatorio_sustentabilidade_2011
337 arezzo co-relatorio_sustentabilidade_2011337 arezzo co-relatorio_sustentabilidade_2011
337 arezzo co-relatorio_sustentabilidade_2011Arezzori
 
Exercícios intervalos reais
Exercícios intervalos reaisExercícios intervalos reais
Exercícios intervalos reaisTia Má
 

Mais procurados (13)

Campanha Cacau Show
Campanha Cacau ShowCampanha Cacau Show
Campanha Cacau Show
 
Torre de Hanoi: jogando com a Matemática
Torre de Hanoi: jogando com a MatemáticaTorre de Hanoi: jogando com a Matemática
Torre de Hanoi: jogando com a Matemática
 
Análise combinatória
Análise combinatóriaAnálise combinatória
Análise combinatória
 
Jogos matemáticos slide
Jogos matemáticos slideJogos matemáticos slide
Jogos matemáticos slide
 
Análise Combinatória.ppt
Análise Combinatória.pptAnálise Combinatória.ppt
Análise Combinatória.ppt
 
Progressão geométrica
Progressão geométricaProgressão geométrica
Progressão geométrica
 
Bases Conceituais do Design | Havaianas
Bases Conceituais do Design | HavaianasBases Conceituais do Design | Havaianas
Bases Conceituais do Design | Havaianas
 
Media kit SBT Junho 2015
Media kit SBT Junho 2015Media kit SBT Junho 2015
Media kit SBT Junho 2015
 
Problemas de aplicação pa e pg
Problemas de aplicação pa e pgProblemas de aplicação pa e pg
Problemas de aplicação pa e pg
 
Slide equaçoes 1 grau
Slide equaçoes 1 grauSlide equaçoes 1 grau
Slide equaçoes 1 grau
 
337 arezzo co-relatorio_sustentabilidade_2011
337 arezzo co-relatorio_sustentabilidade_2011337 arezzo co-relatorio_sustentabilidade_2011
337 arezzo co-relatorio_sustentabilidade_2011
 
Exercícios intervalos reais
Exercícios intervalos reaisExercícios intervalos reais
Exercícios intervalos reais
 
Aula 5 probabilidade
Aula 5   probabilidadeAula 5   probabilidade
Aula 5 probabilidade
 

Mais de Daker Fernandes

Mais de Daker Fernandes (9)

Functional Pattern Matching on Python
Functional Pattern Matching on PythonFunctional Pattern Matching on Python
Functional Pattern Matching on Python
 
Why is Python slow? Python Nordeste 2013
Why is Python slow? Python Nordeste 2013Why is Python slow? Python Nordeste 2013
Why is Python slow? Python Nordeste 2013
 
Raspberry Pi + Python
Raspberry Pi + PythonRaspberry Pi + Python
Raspberry Pi + Python
 
Opengl aula-01
Opengl aula-01Opengl aula-01
Opengl aula-01
 
Plasmaquick Workshop - FISL 13
Plasmaquick Workshop - FISL 13Plasmaquick Workshop - FISL 13
Plasmaquick Workshop - FISL 13
 
Jogos em Qt
Jogos em QtJogos em Qt
Jogos em Qt
 
CITi - PySide
CITi - PySideCITi - PySide
CITi - PySide
 
QtQuick - WSL II
QtQuick - WSL IIQtQuick - WSL II
QtQuick - WSL II
 
Mongodb workshop cinlug
Mongodb workshop cinlugMongodb workshop cinlug
Mongodb workshop cinlug
 

Dominando Modelos Ocultos de Markov com Python e GHMM

  • 1. Dominando Modelos Ocultos de Markov com Python e GHMM Daker Fernandes Pinheiro Setembro/2011, Python Brasil
  • 2. Sobre mim... from Petrolina-PE import Daker Ciência da Computação CIn-UFPE Developer Instituto Nokia de Tecnologia (IDNT) Software Livre KDE, Qt, Plasma, QML-Box2D, MeeGo Components, dia2code, QMLFB, ... GSoC: Plasma Components PUG-PE Nerd Power Camisetas Brancas :-)
  • 3. Senta que lá vem história Processamento de Sequências Biológicas e Metodos e Algoritmos em Biologia Computacional - 2011.1 Prof. Ivan Gesteira DNA, RNA Proteínas Modelos Ocultos de Markov
  • 4. Problemas em Biologia Computacional Identicação de regiões de interesse no DNA Classicação de DNA e Proteínas Clusterização de DNA e Proteínas Proling de DNA e Proteínas Identicação de Anomalias Ilhas CpG ...
  • 5. Modelos Ocultos de Markov Ou Hidden Markov Models (HMMs) Modelo Matemático Probabilístico Análise de Séries e Sequências Estados internos vs. Comportamento
  • 6. Problemas diversos Classicação Clusterização Reconhecimento Análise de Séries Temporais Análise de Sequências Geração segundo o modelo
  • 7. Problemas Diversos Linguagem Natural Sinais Música Mineração de Dados Aprendizagem de Máquina Extração de Informação
  • 8. Fair-Bet Casino Existe um casino onde existe um jogo de apostas com moedas e um funcionário que as lança moedas.
  • 9. Fair-Bet Casino Cada moeda pode assumir dois valores: Cara (H) Coroa (T)
  • 10. 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%
  • 12. Fair-Bet Casino Esse funcionário sempre usa uma das duas moedas. Mas pode trocá-las com 10% das vezes que vai fazer um novo sorteio. Estados Transições
  • 13. Fair-Bet Casino Grafo de transições de estados:
  • 14. Fair-Bet Casino O funcionário começa com qualquer uma das moedas com igual probabilidade.
  • 17. Problema Imagine que você é um apostador
  • 18. 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?
  • 19. Solução Não existe solução extata! Mas...
  • 20. Solução Probabilidades a posteriori Dado uma sequência, quais as probabilidades de estar em cada modelo +Viterbi
  • 21. Biblioteca: General Hidden Markov Model (GHMM) + Biopython (Cenas de um próximo capítulo)
  • 22. GHMM Biblioteca C++ HMMs + Algoritmos Binding Python
  • 23. GHMM import ghmm # Criando a l f a b e t o para r e p r e s e n t a r os # s i m b o l o s e m i t i d o s p e l o me modelo . emission_alphabet = ghmm. Alphabet ( [ 'H ' , 'T ' ] )
  • 24. GHMM # Matriz de t r a n s i c o e s : # l i n h a s representam e s t a d o s de origem # c o l u n a s representam e s t a d o s de d e s t i n o # v a l o r e s da matriz representam a # p r o b a b i l i d a d e da t r a n s i c a o de e s t a d o s # transitions_probabilities = [ [ 0 . 9 , 0 . 1 ] , # 0 : e s t a d o de j u s t o [ 0 . 1 , 0 . 9 ] , # 1: estado viciado ]
  • 25. GHMM # p r o b a b i l i d a d e s de comecar em H e T initial_states_distribution = [0.5 , 0.5]
  • 26. GHMM # Matriz de emissao de s i m b o l o s # 0 : p r o b a b i l i d a d e s de emissao da moeda j u s t a emissions_fair = [0.5 , 0.5] # 1 : p r o b a b i l i d a d e s de emissao da moeda v i c i a d a emissions_biased = [ 0 . 5 , 0 . 5 ] emissions_probabilities = [ emissions_fair , emissions_biased ]
  • 27. GHMM # Criando Modelo Oculto de Markov hmm = ghmm. HMMFromMatrices ( # Alfabeto emission_alphabet , # Tipo de d i s t r i b u i c a o ( d i s c r e t a , gau ss ia na , . . . ) ghmm. D i s c r e t e D i s t r i b u t i o n ( emission_alphabet ) , transitions_probabilities , emissions_probabilities , initial_states_distribution )
  • 28. GHMM Resolvendo o problema do Casino t o s s e s = [ T, T, T, H, . . . , H, T] # XXX sequence = ghmm. EmissionSequence ( emission_alphabet , tosses ) v i t er b i _ p a t h , states_prob = hmm. v i t e r b i ( sequence )
  • 29. GHMM Resolvendo o problema do Casino p r i n t ( v i t e r b i _ p a t h ) [0 , 0 , 0 , 0 , . . . , 1 , 1 , 1 , 1 , 1] p r i n t states_prob [[0.8407944139086141 , 0.1592055860913865] , [0.860787703168127 , 0.13921229683187356] , . . . ]
  • 31. Algoritmos Geração de sequências Emissão com distribuições Gaussianas Baum Welch
  • 32. Agradecimentos INDT CIn - UFPE Prof. Ivan Gesteira Python Brasil Vocês!
  • 33. Dúvidas? Twitter: @dakerfp E-mail: daker.pinheiro@openbossa.org Freenode: dakerfp Blog: http://codecereal.blogspot.com Blog: http://blog.qtlabs.org.br Blog: http://aimotion.blogspot.com Gitorious: http://gitorious.org/ dakerfp Github: http://github.com/dakerfp GHMM: http://ghmm.org