Loading repository data…
Loading repository data…
Rafael-dePaula / repository
Pequeno exemplo da cadeia de markov em python usando a biblioteca pomegranate.
A transparent discovery signal based on current public GitHub metadata.
This score does not audit code, security, maintainers, documentation quality, or suitability. Verify the repository and its current documentation before adoption.
Suposição de Markov diz que desde que o estado atual seja conhecido os estados anteriores são irrelevantes para calcular o proximo estado.
A Cadeia de Markov é um processo estocástico onde dada uma sequencia de estados X1, X2, X3, ... de variáveis aleatórias, a probabilidade do estado Xn+1 pode ser calculada apenas baseada no estado Xn.
Ou seja para calcular um determinado estado Xn+1 na cadeia de markov basta que tenhamos o estado anterior (Xn) conhecido e conhecer as probabilidades de transição entre os estados dessa cadeia.
Para o codigo desse exemplo foi usada a biblioteca pomegranate
Para o exemplo Sol e Chuva temos que a probabilidade de um dia de sol ser sucedido por um dia chuva é de 10% e a probabilidade de um dia de chuva ser sucedido por um dia de sol é de 60%.
Com essas probabilidades é possivel definir o modelo de transição entre os estados:
Modelo de Transição
| Sol | Chuva | |
|---|---|---|
| Sol | 0.9 | 0.1 |
| Chuva | 0.6 | 0.4 |
Que no codigo é definido como:
modeloTransicao = ConditionalProbabilityTable([['sol', 'sol', 0.9],
['sol', 'chuva', 0.1],
['chuva', 'sol', 0.6],
['chuva', 'chuva', 0.4]], [estadoInicial])
Com essas possibilidades basta definir o Estado Inicial, que será o primeiro valor da cadeia. No codigo foi usado 50% de chance de ser sol e 50% de ser chuva.
estadoInicial = DiscreteDistribution({'sol': 0.5, 'chuva': 0.5})
| Sol | Chuva |
|---|---|
| 0.5 | 0.5 |
Com essas informações é possivel criar uma cadeia de markov.
model = MarkovChain([d1, d2])
Amostra
Para criar uma amostra basta usar o metodo sample() e passar como parametro o tamanho da cadeia que deseja gerar.
model.sample(10)
Por exemplo com 10 amostras uma das possiveis cadeias geradas é:
| Sol | Chuva | Chuva | Sol | Sol | Sol | Sol | Sol | Chuva | Sol |
|---|