Naive Bayes explicado: função, vantagens e desvantagens, aplicações em 2022
Publicados: 2021-01-05Naive Bayes é um algoritmo de aprendizado de máquina que usamos para resolver problemas de classificação. É baseado no Teorema de Bayes. É um dos algoritmos de ML mais simples e poderosos em uso e encontra aplicações em muitos setores.
Suponha que você tenha que resolver um problema de classificação e criou as características e gerou a hipótese, mas seus superiores querem ver o modelo. Você tem vários pontos de dados (lakhs de pontos de dados) e muitas variáveis para treinar o conjunto de dados. A melhor solução para esta situação seria utilizar o classificador Naive Bayes, que é bastante mais rápido em comparação com outros algoritmos de classificação.
Neste artigo, discutiremos esse algoritmo em detalhes e descobriremos como ele funciona. Também discutiremos suas vantagens e desvantagens junto com seus aplicativos do mundo real para entender o quão essencial é esse algoritmo.
Participe do Curso de Aprendizado Profundo on-line das principais universidades do mundo - Mestrados, Programas de Pós-Graduação Executiva e Programa de Certificado Avançado em ML e IA para acelerar sua carreira.
Vamos começar:
Índice
Explicação de Naive Bayes
Naive Bayes usa o Teorema de Bayes e assume que todos os preditores são independentes. Em outras palavras, esse classificador assume que a presença de um determinado recurso em uma classe não afeta a presença de outro.

Aqui está um exemplo: você consideraria uma fruta laranja se for redonda, laranja e tiver cerca de 3,5 polegadas de diâmetro. Agora, mesmo que esses recursos exijam a existência um do outro, todos contribuem independentemente para sua suposição de que essa fruta em particular é laranja. É por isso que este algoritmo tem 'Naive' em seu nome.
Construir o modelo Naive Bayes é bastante simples e ajuda você a trabalhar com grandes conjuntos de dados. Além disso, essa equação é popular por superar muitas técnicas avançadas de classificação em termos de desempenho.
Aqui está a equação para Naive Bayes:
P (c|x) = P(x|c) P(c) / P(x)
P(c|x) = P(x1 | c) x P(x2 | c) x … P(xn | c) x P(c)
Aqui, P (c|x) é a probabilidade posterior de acordo com o preditor (x) para a classe(c). P(c) é a probabilidade anterior da classe, P(x) é a probabilidade anterior do preditor e P(x|c) é a probabilidade do preditor para a classe particular(c).
Além de considerar a independência de cada recurso, Naive Bayes também assume que eles contribuem igualmente. Este é um ponto importante a ser lembrado.
Como funciona o Naive Bayes?
Para entender como o Naive Bayes funciona, devemos discutir um exemplo.
Suponha que queremos encontrar carros roubados e temos o seguinte conjunto de dados:
Número de série. | Cor | Tipo | Origem | Foi Roubado? |
1 | vermelho | Esportes | Doméstico | sim |
2 | vermelho | Esportes | Doméstico | Não |
3 | vermelho | Esportes | Doméstico | sim |
4 | Amarelo | Esportes | Doméstico | Não |
5 | Amarelo | Esportes | Importado | sim |
6 | Amarelo | SUV | Importado | Não |
7 | Amarelo | SUV | Importado | sim |
8 | Amarelo | SUV | Doméstico | Não |
9 | vermelho | SUV | Importado | Não |
10 | vermelho | Esportes | Importado | sim |
De acordo com nosso conjunto de dados, podemos entender que nosso algoritmo faz as seguintes suposições:
- Ele assume que cada recurso é independente. Por exemplo, a cor 'Amarela' de um carro não tem nada a ver com sua Origem ou Tipo.
- Dá a cada recurso o mesmo nível de importância. Por exemplo, saber apenas a Cor e a Origem poderia prever o resultado corretamente. É por isso que cada recurso é igualmente importante e contribui igualmente para o resultado.
Agora, com nosso conjunto de dados, temos que classificar se os ladrões roubam um carro de acordo com suas características. Cada linha tem entradas individuais e as colunas representam as características de cada carro. Na primeira fila, temos um Carro Esportivo Vermelho de Origem Doméstica roubado. Descobriremos se os ladrões roubariam um SUV doméstico vermelho ou não (nosso conjunto de dados não possui uma entrada para um SUV doméstico vermelho).
Podemos reescrever o Teorema de Bayes para o nosso exemplo como:
P(y | X) = [P(X | y) P(y)P(X)]/P(X)
Aqui, y representa a variável de classe (foi roubado?) para mostrar se os ladrões roubaram o carro não de acordo com as condições. X representa os recursos.
X = x1, x2, x3, …., xn)
Aqui, x1, x2,…, xn representam os recursos. Podemos mapeá-los como Tipo, Origem e Cor. Agora, substituiremos X e expandiremos a regra da cadeia para obter o seguinte:
P(y | x1, …, xn) = [P(x1 | y) P(x2 | y) … P(xn | y) P(y)]/[P(x1) P (x2) … P(xn) )]
Você pode obter os valores de cada um usando o conjunto de dados e colocando seus valores na equação. O denominador permanecerá estático para cada entrada no conjunto de dados para removê-lo e injetar proporcionalidade.
P(y | x1, …, xn) ∝ P(y) i = 1nP(xi | y)
Em nosso exemplo, y tem apenas dois resultados, sim ou não.
y = argmaxyP(y) i = 1nP(xi | y)
Podemos criar uma Tabela de Frequências para calcular a probabilidade posterior P(y|x) para cada característica. Em seguida, moldaremos as tabelas de frequência em Tabelas de Probabilidade e usaremos a equação Naive Bayesiana para encontrar a probabilidade posterior de cada classe. O resultado de nossa previsão seria a classe que tem a maior probabilidade posterior. Aqui estão as tabelas de probabilidade e frequência:
Tabela de Frequência de Cores:
Cor | Foi Roubado (Sim) | Foi Roubado (Não) |
vermelho | 3 | 2 |
Amarelo | 2 | 3 |
Tabela de Cor de Probabilidade:

Cor | Foi roubado [P(Sim)] | Foi roubado [P(Não)] |
vermelho | 3/5 | 2/5 |
Amarelo | 2/5 | 3/5 |
Tabela de frequência do tipo:
Tipo | Foi Roubado (Sim) | Foi Roubado (Não) |
Esportes | 4 | 2 |
SUV | 1 | 3 |
Tabela de probabilidade do tipo:
Tipo | Foi roubado [P(Sim)] | Foi roubado [P(Não)] |
Esportes | 4/5 | 2/5 |
SUV | 1/5 | 3/5 |
Tabela de frequência de origem:
Origem | Foi Roubado (Sim) | Foi Roubado (Não) |
Doméstico | 2 | 3 |
Importado | 3 | 2 |
Tabela de Probabilidade de Origem:
Origem | Foi roubado [P(Sim)] | Foi roubado [P(Não)] |
Doméstico | 2/5 | 3/5 |
Importado | 3/5 | 2/5 |
Nosso problema tem 3 preditores para X, então de acordo com as equações que vimos anteriormente, a probabilidade posterior P(Sim | X) seria a seguinte:
P(Sim | X) = P(Vermelho | Sim) * P(SUV | Sim) * P(Doméstico | Sim) * P(Sim)
= ⅗ x ⅕ x ⅖ x 1
= 0,048
P(Não | X) seria:
P(Não | X) = P(Vermelho | Não) * P(SUV | Não) * P(Doméstico | Não) * P(Não)
= ⅖ x ⅗ x ⅗ x 1
= 0,144
Assim, como a probabilidade posterior P(Não | X) é maior do que a probabilidade posterior P(Sim | X), nosso SUV doméstico vermelho terá 'Não' no campo 'Foi roubado?' seção.
O exemplo deve ter mostrado como funciona o classificador Naive Bayes. Para obter uma imagem melhor do Naive Bayes explicado, devemos agora discutir suas vantagens e desvantagens:
Vantagens e desvantagens de Naive Bayes
Vantagens
- Esse algoritmo funciona rapidamente e pode economizar muito tempo.
- Naive Bayes é adequado para resolver problemas de previsão multiclasse.
- Se sua suposição de independência de recursos for verdadeira, ele pode ter um desempenho melhor do que outros modelos e requer muito menos dados de treinamento.
- Naive Bayes é mais adequado para variáveis de entrada categóricas do que para variáveis numéricas.
Desvantagens
- Naive Bayes assume que todos os preditores (ou recursos) são independentes, raramente acontecendo na vida real. Isso limita a aplicabilidade desse algoritmo em casos de uso do mundo real.
- Este algoritmo enfrenta o 'problema de frequência zero' onde atribui probabilidade zero a uma variável categórica cuja categoria no conjunto de dados de teste não estava disponível no conjunto de dados de treinamento. Seria melhor se você usasse uma técnica de suavização para superar esse problema.
- Suas estimativas podem estar erradas em alguns casos, então você não deve levar suas saídas de probabilidade muito a sério.
Checkout: modelos de aprendizado de máquina explicados
Explicação das aplicações de Naive Bayes
Aqui estão algumas áreas onde este algoritmo encontra aplicações:

Classificação de texto
Na maioria das vezes, Naive Bayes encontra usos de classificação no texto devido à sua suposição de independência e alto desempenho na resolução de problemas multiclasse. Goza de uma alta taxa de sucesso do que outros algoritmos devido à sua velocidade e eficiência.
Análise de sentimentos
Uma das áreas mais proeminentes do aprendizado de máquina é a análise de sentimentos, e esse algoritmo também é bastante útil. A análise de sentimento se concentra em identificar se os clientes pensam de forma positiva ou negativa sobre um determinado tópico (produto ou serviço).
Sistemas de recomendação
Com a ajuda da Filtragem Colaborativa, o Naive Bayes Classifier cria um poderoso sistema de recomendação para prever se um usuário gostaria de um determinado produto (ou recurso) ou não. Amazon, Netflix e Flipkart são empresas proeminentes que usam sistemas de recomendação para sugerir produtos a seus clientes.
Saiba mais Algoritmos de aprendizado de máquina
Naive Bayes é um algoritmo de aprendizado de máquina simples e eficaz para resolver problemas multiclasse. Ele encontra usos em muitas áreas proeminentes de aplicativos de aprendizado de máquina, como análise de sentimentos e classificação de texto.
Confira Programa de Certificação Avançada em Machine Learning & Cloud com o IIT Madras, a melhor escola de engenharia do país para criar um programa que ensine não apenas machine learning, mas também a implantação efetiva do mesmo usando a infraestrutura em nuvem. Nosso objetivo com este programa é abrir as portas do instituto mais seletivo do país e dar aos alunos acesso a incríveis professores e recursos para dominar uma habilidade que está em alta e em crescimento
O que é algoritmo ingênuo bayes?
Para lidar com as dificuldades de categorização, empregamos a técnica de aprendizado de máquina Naive Bayes. O Teorema de Bayes sustenta isso. É um dos algoritmos de aprendizado de máquina mais básicos, porém poderosos, em uso, com aplicações em diversos setores. Digamos que você esteja trabalhando em um problema de classificação e já tenha estabelecido as características e hipóteses, mas seu chefe quer ver o modelo. Para treinar o conjunto de dados, você tem um grande número de pontos de dados (milhares de pontos de dados) e um grande número de variáveis. O classificador Naive Bayes, que é muito mais rápido que outros algoritmos de classificação, seria a melhor opção nesta circunstância.
Quais são algumas vantagens e desvantagens das baías ingênuas?
Para problemas de previsão multiclasse, Naive Bayes é uma boa escolha. Se a premissa da independência de recursos permanecer verdadeira, ela poderá superar outros modelos usando muito menos dados de treinamento. Variáveis de entrada categóricas são mais adequadas para Naive Bayes do que variáveis de entrada numéricas.
Em Naive Bayes, todos os preditores (ou traços) são considerados independentes, o que raramente é o caso na vida real. Isso limita a usabilidade do algoritmo em cenários do mundo real. Você não deve levar a sério suas saídas de probabilidade porque suas estimativas podem estar erradas em alguns casos.
Quais são algumas aplicações do mundo real de baías ingênuas?
Devido à sua premissa de autonomia e alto desempenho no tratamento de problemas multiclasse, Naive Bayes é frequentemente usado na classificação em texto. A análise de sentimentos é uma das aplicações mais populares de aprendizado de máquina, e essa técnica também pode ajudar nisso. O objetivo da análise de sentimentos é determinar se os clientes têm sentimentos favoráveis ou negativos sobre um determinado assunto (produto ou serviço). O Naive Bayes Classifier usa a Filtragem Colaborativa para criar um sofisticado sistema de recomendação que pode prever se um usuário irá desfrutar ou não de um determinado produto (ou recurso).