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 é:

ClimaIr as compras
EnsolaradoNão
Chuvososim
Céu nubladosim
Ensolaradosim
Céu nubladosim
ChuvosoNão
Ensolaradosim
Ensolaradosim
ChuvosoNão
Chuvososim
Céu nubladosim
ChuvosoNão
Céu nubladosim
EnsolaradoNão

As etapas a seguir seriam executadas:

Etapa 1: Criar tabelas de frequência usando conjuntos de dados.

ClimasimNão
Ensolarado32
Céu nublado40 0
Chuvoso23
Total95

Etapa 2: faça uma tabela de probabilidade calculando as probabilidades de cada condição meteorológica e indo às compras.

ClimasimNãoProbabilidade
Ensolarado325/14 = 0, 36
Céu nublado40 04/14 = 0, 29
Chuvoso235/14 = 0, 36
Total95
Probabilidade9/14 = 0, 645/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 -

  1. Algoritmo de impulso
  2. Algoritmo em Programação
  3. Introdução ao algoritmo

Categoria: