Redes Bayesianas
O que são? Como funcionam? Onde vivem??
Podemos definir as Redes Bayesianas de forma enxuta:
Representação das relações entre as probabilidades de ocorrência de eventos conforme o Teorema de Bayes através de uma rede.
Mas para que possamos efetivamente entendê-las é necessário conhecermos dois conceitos muito importantes: o Teorema de Bayes e Teoria de grafos.
Teorema de Bayes
O Teorema de Bayes descreve a probabilidade de um evento dado que outro evento já ocorreu, o que é chamado de probabilidade condicional.
Nesse teorema precisamos ter alguma informação anterior, ou seja, saber que um determinado evento já ocorreu e qual a probabilidade desse evento, essa informação é chamada a priori.
Caso não tenhamos as probabilidades a priori, podemos estimá-las ou utilizar algumas distribuição de probabilidade conhecida (Distribuição Normal, Poisson, etc).
Com base nas probabilidades a priori e novos dados obtidos, a chamada verossimilhança, temos as probabilidades a posteriori, que podem ser consideradas as novas ou atuais probabilidades.
Algumas observações interessantes sobre o teorema:
- Quando a utilizamos no contexto da classificação podemos substituir o A por C (a classe) e o B por X (vetor de características)
- Os eventos são encadeáveis, o que permite combinar diferentes eventos;
- Alguns problemas podem envolver muitas variáveis, inclusive com dependência entre si;
- É possível descrever as dependências das variáveis através de uma rede.
Caso ainda tenha ficado confuso, veja esse exemplo 💚
Teoria dos grafos
Essa teoria estuda os grafos, que podem ser definidos como um conjunto de objetos que estão relacionados de certa forma. Esse objetos correspondem à vértices (também chamados de nós ou pontos) e as relações correspondem à arestas (também chamadas de link ou linha).
Existem muitas categorias de grafos, que levam em conta a topologia dos grafos, direcionamento, etc. Para deixar mais enxuto, vamos descrever apenas o grafo mais pertinente nesse post.
DAG - Directed Acyclic Graph
Como o próprio nome diz, esse é um tipo de grafo:
- Direcionado, ao contrário do grafo na imagem A, esse grafo tem direções específicas na relações (arestas);
- Acíclico, ou seja, não possui ciclos dentro dele, ou loops.
Redes Bayesianas
Agora que já conhecemos os componentes principais podemos retornar à nossa definição de Redes Bayesianas, agora acrescentando alguns detalhes:
Representação das relações entre as probabilidades de ocorrência de eventos utilizando probabilidades a priori e a posteriori relacionadas através de um grafo, onde os vértices são as variáveis aleatórias e as arestas são as relações de dependência.
Tendo como definição formal: par ordenado (S, P), no qual:
- S é a estrutura da rede (nós e arestas);
- P é o conjunto de distribuições de probabilidade p (xi | pa(xi)), em que pa(xi) são os nós pais de xi.
É possível obter a distribuição de probabilidade conjunta da rede multiplicando as probabilidades condicionais em cada nó em todos os caminhos da rede.
Utilidade — Inferência
Inicialmente ela pode ser tida como uma forma de representar um conhecimento especialista sobre incertezas do objeto de estudo e de inferir sobre o que era desconhecido, ou seja, onde as probabilidades não são representadas diretamente no modelo.
Redes Bayesianas como classificadores
Além da inferência, a rede pode ser interpretada como um classificador, onde a classe e as características são representadas no modelo, sendo que a classe possui uma dependência em relação às características (não obrigatoriamente, à todas elas). Dessa forma é realizada uma classificação com base nas probabilidades a posteriori.
Como nem tudo são flores, existem problemas relacionados à essa estratégia:
- Se o número de configurações é grande, o erro de estimação será grande;
- Mesmo com uma amostra grande, o que evitaria o problema anterior, seria custoso estimar os parâmetros.
Devido à esses problemas, foram criadas algumas alternativas de realizam simplificações topológicas na rede, que diminuem o erro de estimação e simplificam o processo de estimação de parâmetros.
Naive Bayes Classifier (NBC)
Aqui é realizada a inversão da classe e das características, ou seja, a classe ficará na raiz e as características ficam nas folhas que são filhas diretas da raiz. Também é considerada independência entre as características, já que elas são filhas imediatas da classe.
Esse método trás a vantagem de estrutura fixa da rede e com isso somente os parâmetros precisam ser aprendidos.
E a desvantagem é que ele assume a independência entre as características.
Os resultados dependem do domínio do problema, caso essa simplificação de topologia seja muito diferente da realidade os resultados podem não ser bons.
Tree Augmented NBC (TAN)
Extensão do NBC, onde cada variável característica pode ter no máximo mais uma variável característica como pai, ou seja, permite ter uma estrutura mais flexível.
Pontos fortes de Redes Bayesianas
Considerando que temos os valores corretos das probabilidades, inclusive das condicionais, conseguimos o valor ótimo de classificação.
Elas conseguem lidar com dados incompletos (missing values).
Aprendizado de relações causais, permitindo interpretabilidade, que nos dá uma utilização mais interessante em alguns domínios onde interpretar os resultados é crucial.
Combina dados e conhecimento a priori, ou seja, podemos inserir o conhecimento do especialista da área tanto quanto o conhecimento empírico.
Boa forma de evitar o overfitting quando utilizamos a estimação MAP.
Classificação multiclasse é natural, ao contrário de outros classificadores que são naturalmente binários.
É um método supervisionado, ou seja, precisamos saber a classificação para realizar o treinamento da rede.
Paramétrico, porque precisamos assumir uma distribuição dos dados para conseguir estimar os parâmetros. Caso os dados sejam categóricos assumimos uma distribuição multinomial e caso sejam contínuos podemos assumir uma distribuição normal, por exemplo.
Calibração de parâmetros
É comum que os indutores de classificadores (métodos que criam classificadores), possuírem um ou mais parâmetros, como no caso da Rede Bayesiana, mas podemos utilizar um valor unitário, como no exemplo citado, ou podemos utilizar um valor específico para cada variável.
A escolha de valores específico para cada característica é feita de forma a maximizar alguma medida de desempenho do classificador, como a acurácia, por exemplo.
Os testes de estimação de erro são realizados para cada um dos valores possíveis de forma a encontrar as melhores medidas desejadas, esse processo é chamado de calibração de parâmetros (parameter tuning).
Como escolher os valores a serem testados? Afim de não fazer uma busca exaustiva existem várias estratégias possíveis.
Grid search
É definida uma grade dentro do espaço de valores possíveis, com um espaçamento predefinido entre os pontos da grade a serem testados.
Precisamos lembrar que o processo de estimação de erro será realizado para cada valor dentro do grid, por isso é importante conseguir encontrar um meio termo no espaço entre os pontos, uma maneira de conseguir isso é definir um ponto inicial de interesse e tornar o grid gradativamente mais denso próximo à esse ponto.
Random search
Os valores a serem testados são sorteados aleatoriamente, e podem seguir alguma distribuição para seleção dos valores.
Também é possível realizar a combinação dos métodos, realizando uma random search dentro do grid search.
Gostou do conteúdo?
Siga a Luna no Medium. E não se esqueça de deixar alguns aplausos 👏🏽Qualquer dúvida ou sugestão é só deixar nos comentários!