SlideShare uma empresa Scribd logo
Dominando Modelos Ocultos de
Markov com Python e GHMM
Daker Fernandes Pinheiro
Setembro/2011, Python Brasil
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


  Identificação de regiões de interesse no DNA
  Classificação de DNA e Proteínas
  Clusterização de DNA e Proteínas
  Profiling de DNA e Proteínas
  Identificaçã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



   Classificaçã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 o s
#     s i m b o l o s e m i t i d o s p e l o me modelo .

e m i s s i o n _ a l p h a b e t = ghmm. Alphabet ( [ ’H ’ , ’T ’ ] )
GHMM


# Matriz de t r a n s i c o e s :
#       l i n h a s r e p r e s e n t a m e s t a d o s de origem
#       c o l u n a s r e p r e s e n t a m e s t a d o s de d e s t i n o
#       v a l o r e s da m a t r i z r e p r e s e n t a m 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 e m i s s a o 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 e m i s s a o 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 e m i s s a o 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 , g a u s s i a n a , . . . )
    ghmm. D i s c r e t e D i s t r i b u t i o n ( e m i s s i o n _ a l p h a b e t ) ,
     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
s e q u e n c e = ghmm. Em i s s i o n S e q u e n c e ( e m i s s i o n _ a l p h a b e t ,
                                                                 tosses )

v i t e r b i _ p a t h , s t a t e s _ p r o b = hmm. v i t e r b i ( s e q u e n c e )
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 s t a t e s _ p r o b
[[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

PDF
Module 4 Embedded Linux
PDF
Presentation aix basic
PPTX
Linux Ethernet device driver
PPTX
Abusing Microsoft Kerberos - Sorry you guys don't get it
PDF
Luca Ceresoli - Buildroot vs Yocto: Differences for Your Daily Job
PDF
2016 UCPC 풀이
PPTX
Linux Kernel Tour
PDF
Debian or Yocto Project? Which is the best for your Embedded Linux project?
Module 4 Embedded Linux
Presentation aix basic
Linux Ethernet device driver
Abusing Microsoft Kerberos - Sorry you guys don't get it
Luca Ceresoli - Buildroot vs Yocto: Differences for Your Daily Job
2016 UCPC 풀이
Linux Kernel Tour
Debian or Yocto Project? Which is the best for your Embedded Linux project?

Destaque (20)

PDF
Porque foi bom aprender com Python
PDF
Wikilytics
PPT
PDF
Python na formacao_de_jovens
PDF
Python Debugger - PUG-PE
PPTX
Palestra sobre Inteligência Coletiva
PPT
Blender Com Python
PDF
Peça seu código em casamento: Votos, Tópicos e TDD
PDF
Computação Científica com Python
PDF
Clustering com numpy e cython
PDF
Coding Dojo e Test Driven Development
ODP
REST APIs com Django
PDF
Qml + Python
PPT
Pyjamas: Uma Ferramenta Pythônica para Web
PDF
Criando comunidades bem sucedidas
PDF
Rain Toolbox - Previsão de Chuvas
PDF
Palestra sobre Collections com Python
ODP
(entregando djangoapps)@tangerinalab - pugpe xv
PDF
Apresentando o I Toró de Palestras do PUG-PE
PDF
Porque foi bom aprender com Python
Wikilytics
Python na formacao_de_jovens
Python Debugger - PUG-PE
Palestra sobre Inteligência Coletiva
Blender Com Python
Peça seu código em casamento: Votos, Tópicos e TDD
Computação Científica com Python
Clustering com numpy e cython
Coding Dojo e Test Driven Development
REST APIs com Django
Qml + Python
Pyjamas: Uma Ferramenta Pythônica para Web
Criando comunidades bem sucedidas
Rain Toolbox - Previsão de Chuvas
Palestra sobre Collections com Python
(entregando djangoapps)@tangerinalab - pugpe xv
Apresentando o I Toró de Palestras do PUG-PE
Anúncio

Mais de pugpe (18)

PPT
Projeto Amadeus
PDF
E o que danado é o PUG-PE?
PDF
Intro
PDF
Construindo uma startup em 54 horas com Python
PDF
Automatizando tarefas com Python
PDF
NoSQL com Cassandra e Python
PDF
Visualização da Informação
PPTX
Desenvolvendo aplicativos web com o google app engine
PPTX
Pip - Instalando Pacotes facilmente para Python
PPTX
Pug pe vii - luciano rodrigues - debugger
PPTX
Pug pe viii - luciano rodrigues - debugger
PPT
Python e Django
PDF
Python e Dispositivos Móveis
PDF
Redes Neurais e Python
PPTX
CATS: Sistema de Recomendação de Eventos
PDF
Python Funcional
PPT
Open Allure
PDF
Iron Python
Projeto Amadeus
E o que danado é o PUG-PE?
Intro
Construindo uma startup em 54 horas com Python
Automatizando tarefas com Python
NoSQL com Cassandra e Python
Visualização da Informação
Desenvolvendo aplicativos web com o google app engine
Pip - Instalando Pacotes facilmente para Python
Pug pe vii - luciano rodrigues - debugger
Pug pe viii - luciano rodrigues - debugger
Python e Django
Python e Dispositivos Móveis
Redes Neurais e Python
CATS: Sistema de Recomendação de Eventos
Python Funcional
Open Allure
Iron Python
Anúncio

Último (11)

PPTX
Tipos de servidor em redes de computador.pptx
PDF
eBook - GUIA DE CONSULTA RAPIDA EM ROTEADORES E SWITCHES CISCO - VOL I.pdf
PPTX
Informática Aplicada Informática Aplicada Plano de Ensino - estudo de caso NR...
PDF
Termos utilizados na designação de relação entre pessoa e uma obra.pdf
PPTX
Design - Introdução a Gestalt e teoria das formas
PPTX
Eng. Software - pontos essenciais para o início
PPTX
Arquitetura de computadores - Memórias Secundárias
PPTX
Viasol Energia Solar -Soluções para geração e economia de energia
PPTX
Proposta de Implementação de uma Rede de Computador Cabeada.pptx
PPTX
Utilizando code blockes por andre backes
PDF
Manejo integrado de pragas na cultura do algodão
Tipos de servidor em redes de computador.pptx
eBook - GUIA DE CONSULTA RAPIDA EM ROTEADORES E SWITCHES CISCO - VOL I.pdf
Informática Aplicada Informática Aplicada Plano de Ensino - estudo de caso NR...
Termos utilizados na designação de relação entre pessoa e uma obra.pdf
Design - Introdução a Gestalt e teoria das formas
Eng. Software - pontos essenciais para o início
Arquitetura de computadores - Memórias Secundárias
Viasol Energia Solar -Soluções para geração e economia de energia
Proposta de Implementação de uma Rede de Computador Cabeada.pptx
Utilizando code blockes por andre backes
Manejo integrado de pragas na cultura do algodão

Python e Cadeias de Markov GHMM

  • 1. Dominando Modelos Ocultos de Markov com Python e GHMM Daker Fernandes Pinheiro Setembro/2011, Python Brasil
  • 2. 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
  • 3. Problemas em Biologia Computacional Identificação de regiões de interesse no DNA Classificação de DNA e Proteínas Clusterização de DNA e Proteínas Profiling de DNA e Proteínas Identificação de Anomalias Ilhas CpG ...
  • 4. 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
  • 5. Problemas diversos Classificação Clusterização Reconhecimento Análise de Séries Temporais Análise de Sequências Geração segundo o modelo
  • 6. Problemas Diversos Linguagem Natural Sinais Música Mineração de Dados Aprendizagem de Máquina Extração de Informação
  • 7. Fair-Bet Casino Existe um casino onde existe um jogo de apostas com moedas e um funcionário que as lança moedas.
  • 8. Fair-Bet Casino Cada moeda pode assumir dois valores: Cara (H) Coroa (T)
  • 9. 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%
  • 11. 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
  • 12. Fair-Bet Casino Grafo de transições de estados:
  • 13. Fair-Bet Casino O funcionário começa com qualquer uma das moedas com igual probabilidade.
  • 16. Problema Imagine que você é um apostador
  • 17. 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?
  • 18. Solução Não existe solução extata! Mas...
  • 19. Solução Probabilidades a posteriori Dado uma sequência, quais as probabilidades de estar em cada modelo +Viterbi
  • 20. Biblioteca: General Hidden Markov Model (GHMM) + Biopython (Cenas de um próximo capítulo)
  • 21. GHMM Biblioteca C++ HMMs + Algoritmos Binding Python
  • 22. GHMM import ghmm # Criando a l f a b e t o para r e p r e s e n t a r o s # s i m b o l o s e m i t i d o s p e l o me modelo . e m i s s i o n _ a l p h a b e t = ghmm. Alphabet ( [ ’H ’ , ’T ’ ] )
  • 23. GHMM # Matriz de t r a n s i c o e s : # l i n h a s r e p r e s e n t a m e s t a d o s de origem # c o l u n a s r e p r e s e n t a m e s t a d o s de d e s t i n o # v a l o r e s da m a t r i z r e p r e s e n t a m 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 ]
  • 24. 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]
  • 25. GHMM # Matriz de e m i s s a o 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 e m i s s a o 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 e m i s s a o da moeda v i c i a d a emissions_biased = [ 0 . 5 , 0 . 5 ] emissions_probabilities = [ emissions_fair , emissions_biased ]
  • 26. 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 , g a u s s i a n a , . . . ) ghmm. D i s c r e t e D i s t r i b u t i o n ( e m i s s i o n _ a l p h a b e t ) , transitions_probabilities , emissions_probabilities , initial_states_distribution )
  • 27. GHMM Resolvendo o problema do Casino t o s s e s = [ T, T, T, H, . . . , H, T ] # XXX s e q u e n c e = ghmm. Em i s s i o n S e q u e n c e ( e m i s s i o n _ a l p h a b e t , tosses ) v i t e r b i _ p a t h , s t a t e s _ p r o b = hmm. v i t e r b i ( s e q u e n c e )
  • 28. 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 s t a t e s _ p r o b [[0.8407944139086141 , 0.1592055860913865] , [0.860787703168127 , 0.13921229683187356] , . . . ]
  • 30. Algoritmos Geração de sequências Emissão com distribuições Gaussianas Baum Welch
  • 31. Agradecimentos INDT CIn - UFPE Prof. Ivan Gesteira Python Brasil Vocês!
  • 32. 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