O que é o algoritmo Naive Bayes?
O Algoritmo Naive Bayes é uma técnica que ajuda a construir classificadores. Classificadores são os modelos que classificam as instâncias do problema e atribuem a eles rótulos de classe representados como vetores de preditores ou valores de recursos. É baseado no teorema de Bayes. É chamado de Bayes ingênuo porque pressupõe que o valor de um recurso é independente do outro recurso, ou seja, alterar o valor de um recurso não afetaria o valor do outro recurso. É também chamado de idiota de Bayes devido à mesma razão. Esse algoritmo funciona eficientemente para grandes conjuntos de dados, portanto, mais adequado para previsões em tempo real.
Ajuda a calcular a probabilidade posterior P (c | x) usando a probabilidade anterior da classe P (c), a probabilidade anterior do preditor P (x) e a probabilidade do preditor dado a uma classe, também chamada de probabilidade P (x | c )
A fórmula ou equação para calcular a probabilidade posterior é:
- P (c | x) = (P (x | c) * P (c)) / P (x)
Como funciona o algoritmo Naive Bayes?
Vamos entender o funcionamento do algoritmo Naive Bayes usando um exemplo. Assumimos um conjunto de dados de treinamento sobre o clima e a variável de destino 'Ir às compras'. Agora vamos classificar se uma garota irá às compras com base nas condições climáticas.
O conjunto de dados fornecido é:
Clima | Ir as compras |
Ensolarado | Não |
Chuvoso | sim |
Céu nublado | sim |
Ensolarado | sim |
Céu nublado | sim |
Chuvoso | Não |
Ensolarado | sim |
Ensolarado | sim |
Chuvoso | Não |
Chuvoso | sim |
Céu nublado | sim |
Chuvoso | Não |
Céu nublado | sim |
Ensolarado | Não |
As etapas a seguir seriam executadas:
Etapa 1: Criar tabelas de frequência usando conjuntos de dados.
Clima | sim | Não |
Ensolarado | 3 | 2 |
Céu nublado | 4 | 0 0 |
Chuvoso | 2 | 3 |
Total | 9 | 5 |
Etapa 2: faça uma tabela de probabilidade calculando as probabilidades de cada condição meteorológica e indo às compras.
Clima | sim | Não | Probabilidade |
Ensolarado | 3 | 2 | 5/14 = 0, 36 |
Céu nublado | 4 | 0 0 | 4/14 = 0, 29 |
Chuvoso | 2 | 3 | 5/14 = 0, 36 |
Total | 9 | 5 | |
Probabilidade | 9/14 = 0, 64 | 5/14 = 0, 36 |
Etapa 3: Agora precisamos calcular a probabilidade posterior usando a equação de Naive Bayes para cada classe.
Exemplo de problema: uma garota irá às compras se o tempo estiver nublado. Esta afirmação está correta?
Solução:
- P (Sim | Nublado) = (P (Nublado | Sim) * P (Sim)) / P (Nublado)
- P (Nublado | Sim) = 4/9 = 0, 44
- P (Sim) = 14/9 = 0, 64
- P (Nublado) = 14/4 = 0, 39
Agora coloque todos os valores calculados na fórmula acima
- P (Sim | Nublado) = (0, 44 * 0, 64) / 0, 39
- P (Sim | Nublado) = 0, 722
A classe com maior probabilidade seria o resultado da previsão. Utilizando as mesmas probabilidades de abordagem de diferentes classes, pode ser previsto.
Para que é utilizado o Algoritmo Naive Bayes?
1. Previsão em tempo real: o algoritmo Naive Bayes é rápido e está sempre pronto para aprender, portanto, mais adequado para previsões em tempo real.
2. Previsão de várias classes : a probabilidade de várias classes de qualquer variável de destino pode ser prevista usando um algoritmo Naive Bayes.
3. Sistema de recomendação: o classificador Naive Bayes, com a ajuda da Filtragem colaborativa, cria um sistema de recomendação. Este sistema utiliza técnicas de mineração de dados e aprendizado de máquina para filtrar as informações que não são vistas antes e depois prever se um usuário apreciaria um determinado recurso ou não.
4. Classificação do texto / Análise de sentimentos / Filtragem de spam: Devido ao seu melhor desempenho com problemas de várias classes e à sua regra de independência, o algoritmo Naive Bayes tem um desempenho melhor ou tem uma maior taxa de sucesso na classificação de texto. Portanto, é usado na Análise de sentimentos e Filtragem de spam.
Vantagens do algoritmo Naive Bayes
- Fácil de implementar.
- Rápido
- Se a suposição de independência se mantiver, ela funcionará com mais eficiência do que outros algoritmos.
- Requer menos dados de treinamento.
- É altamente escalável.
- Pode fazer previsões probabilísticas.
- Pode lidar com dados contínuos e discretos.
- Insensível a características irrelevantes.
- Pode funcionar facilmente com valores ausentes.
- Fácil de atualizar na chegada de novos dados.
- Mais adequado para problemas de classificação de texto.
Desvantagens do Algoritmo Naive Bayes
- A forte suposição de que os recursos são independentes, o que dificilmente se aplica às aplicações da vida real.
- Escassez de dados.
- Chances de perda de precisão.
- Freqüência zero, isto é, se a categoria de qualquer variável categórica não for vista no conjunto de dados de treinamento, o modelo atribuirá uma probabilidade zero a essa categoria e, portanto, uma previsão não poderá ser feita.
Como construir um modelo básico usando o algoritmo Naive Bayes
Existem três tipos de modelos Naive Bayes, como Gaussian, Multinomial e Bernoulli. Vamos discutir brevemente cada um deles.
1. Gaussiano: O algoritmo gaussiano de Naive Bayes assume que os valores contínuos correspondentes a cada recurso são distribuídos de acordo com a distribuição gaussiana, também chamada de distribuição normal.
A probabilidade ou probabilidade anterior de preditor de uma determinada classe é assumida como gaussiana; portanto, a probabilidade condicional pode ser calculada como:
2. Multinomial: As frequências da ocorrência de certos eventos representados por vetores de recursos são geradas usando distribuição multinomial. Este modelo é amplamente utilizado para classificação de documentos.
3. Bernoulli: Neste modelo, as entradas são descritas pelos recursos que são variáveis binárias independentes ou booleanas. Isso também é amplamente usado na classificação de documentos como Multinomial Naive Bayes.
Você pode usar qualquer um dos modelos acima, conforme necessário, para manipular e classificar o conjunto de dados.
Você pode criar um Modelo Gaussiano usando Python, entendendo o exemplo dado abaixo:
Código:
from sklearn.naive_bayes import GaussianNB
import numpy as np
a = np.array((-2, 7), (1, 2), (1, 5), (2, 3), (1, -1), (-2, 0), (-4, 0), (-2, 2), (3, 7), (1, 1), (-4, 1), (-3, 7)))
b = np.array((3, 3, 3, 3, 4, 3, 4, 3, 3, 3, 4, 4, 4))
md = GaussianNB()
md.fit (a, b)
pd = md.predict (((1, 2), (3, 4)))
print (pd)
Resultado:
((3, 4))
Conclusão
Neste artigo, aprendemos os conceitos do algoritmo Naive Bayes em detalhes. É usado principalmente na classificação de texto. É fácil de implementar e rápido de executar. Sua principal desvantagem é que exige que os recursos sejam independentes, o que não é verdade nas aplicações da vida real.
Artigos recomendados
Este foi um guia para o algoritmo Naive Bayes. Aqui discutimos o conceito básico, trabalho, vantagens e desvantagens do algoritmo Naive Bayes. Você também pode consultar nossos outros artigos sugeridos para saber mais -
- Algoritmo de impulso
- Algoritmo em Programação
- Introdução ao algoritmo