Enquanto assiste às notícias, provavelmente já se deparou com previsões meteorológicas afirmando que as hipóteses de queda de neve são de 75%. Alguma vez se perguntou como é que eles surgem com esta percentagem? Ou sabe o que elas significam? Estas são afirmações complicadas, especialmente do ponto de vista dos frequentadores. Poderá achar difícil explicar se a neve cairá ou não.
De acordo com Bayesian, esta abordagem é explicável, e proporcionam uma solução para este tipo de afirmações. A abordagem Bayesian para a probabilidade explica que se pode medir a probabilidade com base na credibilidade de um evento. É por isso que os Bayesianos estão confiantes sobre a probabilidade de um evento.
Em palavras simples, um Bayesiano não está completamente seguro sobre aquilo em que acredita, mas está confiante sobre o evento. Contudo, como bayesiano, torna-se mais confiante sobre o que acredita depois de recolher os dados e interpretar a ligação entre esses dados.

O que é PyMC3

A programação PP ou probabilística permite codificar a especificação dos modelos Bayesianos. PyMC3 é uma versão open-source e actualizada de PyMC2. PyMC3 é uma estrutura para programação probabilística. Com a ajuda da estrutura PyMC3, pode descrever os seus modelos com uma sintaxe poderosa, legível, e intuitiva. A sintaxe é semelhante à dos estatisticos de sintaxe natural.
Esta estrutura permite-lhe apresentar algoritmos de cadeia de Markov Monte Carlo. Estes algoritmos são uma ferramenta da próxima geração para amostragem e segmentação – por exemplo, o amostrador No-U-Turn, a variante de auto-ajustamento de Hamilton Monte Carlo, etc. Pode-se trabalhar nestes amostradores com a complexa distribuição posterior e de alta dimensão. Estes algoritmos ajudam-no com modelos complexos e detalhados sem a necessidade de conhecimentos extensivos e especialização em algoritmos complicados.

Rede Bayesiana com PyMC3

É possível calcular as probabilidades do evento e definir a relação entre diferentes variáveis com a ajuda de modelos probabilísticos. Por exemplo, se estiver a criar um modelo que cubra todos os casos e probabilidades possíveis, necessita de grandes quantidades de dados. A rede simplificará os pressupostos pela independência condicional e aumentará a eficácia de todas as variáveis aleatórias. Embora os passos sejam simples, pode tomar o exemplo de Naïve Bayes neste caso.
Pode criar um modelo para preservar a dependência condicional que já conhece entre a independência condicional aleatória e variáveis em diferentes casos.
As redes Bayesianas são modelos para gráficos probabilísticos, capturando a dependência condicional que conhece e dirigindo os valores numa representação gráfica. Pode encontrar as ligações em falta com a ajuda das independências condicionais do modelo.
As redes Bayesian permitem-lhe com ferramentas úteis para que possa gerar o gráfico do domínio e visualizar o modelo probabilístico. Além disso, ajuda-o a rever a relação das suas variáveis aleatórias. Além disso, indica a razão para estas probabilidades com provas. A rede Bayesiana tem dois grandes benefícios:
– Em primeiro lugar, a rede Bayesiana permite-lhe compreender como pode criar e ajustar o seu modelo de acordo com as suas necessidades. No entanto, antes de realizar esta actividade, precisa de compreender o conceito e o mecanismo de trabalho por detrás do modelo.
– Em segundo lugar, pode verificar o desempenho do modelo onde já temos os dados de saída. Por exemplo, pode verificar a incerteza e os valores. Isto ajuda-nos a compreender a precisão do modelo.
Abaixo, iremos compreender como Python estimula os seus dados com a ajuda de propriedades que já temos.

PyMC3 com Python

A utilização da programação Python for Probabilistic dá-lhe numerosos benefícios. Aqui estão algumas vantagens de PyMC3 com Python:
– Compatibilidade com múltiplas plataformas
– Sintaxe legível, limpa e expressiva
– Extensibilidade com Cython, Fortron, C, e C++
– Fácil integração com bibliotecas científicas
Com a ajuda destas características e da qualidade do PyMC3, pode facilmente escrever distribuição estatística personalizada, função de transformação, e amostras para análise Bayesiana.

Exemplo de PyMC3 com Python

Pode verificar o seguinte exemplo da romã, que é um pacote Python. Neste exemplo, utilizamos os dados dos pacientes da COVID e dos fumadores para descobrir quantas pessoas irão parar ao hospital. Pode compreender o conceito a partir do seguinte exemplo:
importar romãs aspg

smokeD = pg.DiscreteDistribution({‘sim’: 0,25, ‘não’: 0,75})
covidD = pg.DiscreteDistribution({‘sim’: 0,1, ‘não’: 0,9})
hospitalD = pg.ConditionalProbabilityTable(
[[‘sim’, ‘sim’, ‘sim’, 0,9], [‘sim’, ‘sim’, ‘não’, 0,1],
[‘sim’, ‘não’, ‘sim’, 0,1], [‘sim’, ‘não’, ‘não’, 0,9],
[‘não’, ‘sim’, ‘sim’, 0,9], [‘não’, ‘sim’, ‘não’, 0,1],
[‘não’, ‘não’, ‘sim’, 0,01], [‘não’, ‘não’, ‘não’, 0,99]],
[smokeD, covidD])

fumo = pg.Node(smokeD, name=”smokeD”)
covid = pg.Node(covidD, name=”covidD”)
hospital = pg.Node(hospitalD, name=”hospitalD”)

modelo = pg.BayesianNetwork(“Covid Collider”)
model.add_states(fumo, covid, hospital)
model.add_edge(fumo, hospital)
model.add_edge(covid, hospital)
model.bake()
Poderia então calcular P(covid|tabagismo, hospital) = 0,5 com
model.predict_proba({‘smokeD’: ‘sim’, ‘hospitalD’: ‘sim’})
e P(covid|fumadores, hospital)=0,91 com
model.predict_proba({‘smokeD’: ‘não’, ‘hospitalD’: ‘yes’}

Futuro de PyMC3

Aguardamos uma grande transformação na abordagem PyMC3. Podemos agora reunir os gráficos Theano em JAX e utilizar um amostrador MCMC baseado em JAX. Isto significa que podemos alterar a codificação backend para JAX sem qualquer alteração nos códigos PyMC3. Além disso, podemos utilizar a amostragem rápida por raios para modelos enormes com a ajuda de amostradores baseados em JAX.
A parte surpreendente desta oportunidade é que não é necessário alterar o código existente para o modelo PyMC3 para executar os seus modelos em hardware moderno, backend moderno, e amostradores baseados em JAX. Esta abordagem e mudança proporcionará uma velocidade espantosa sem despesas adicionais.
Com o foco crescente da TF e PyTorch nos gráficos dinâmicos, Python já não dispõe de bibliotecas estáticas adequadas. Além disso, há inúmeros benefícios da estática sobre os gráficos dinâmicos. É por isso que consideramos Theano como uma biblioteca poderosa e madura para o futuro. Esta estrutura ganhará mais tracção no futuro, uma vez que poderá aceder e modificar todos os tipos de representação gráfica. Pode executar Theano para numerosas interfaces backend modernas.

Conclusão

PyMC3 ajuda-o a resolver previsões estatísticas básicas Bayesianas e problemas de inferência. Neste artigo, compreendemos PyMC3 e as suas utilizações. Além disso, compreendemos como Bayesian Networks e Python o ajudam a criar um modelo sofisticado com PyMC3.