Skip to content

Naive Bayes

Raick Miranda edited this page Sep 19, 2023 · 2 revisions

Naive Bayes

É um algoritmo de classificação que gera uma tabela de probabilidades a partir de uma técnica de classificação de dados. Ele assume que cada par de características é independente um do outro, dada a variável de classe. Isso significa que a presença de uma característica específica não se relaciona com qualquer outro recurso também inserido na base de dados analisada.

Como funciona?

A princípio é importante entender que o Naive Bayes usa o teorema de Bayes para calcular a probabilidade de uma amostra pertencer a uma classe específica. Assim, ele funciona da seguinte maneira: primeiro, ele calcula a probabilidade a priori para cada classe. Em seguida, ele encontra a probabilidade de ver cada característica para cada classe. Por fim, ele coloca esses valores na fórmula de Bayes e calcula a probabilidade posterior. O resultado final é a classe com a maior probabilidade posterior.

Naive Bayes table

Por exemplo, suponha que você tenha um conjunto de dados chamado 'risco de crédito' que contém informações financeiras sobre diferentes pessoas, como histórico de crédito, dívida, garantias e renda anual. O objetivo é classificar essas pessoas quanto ao risco de fornecer um crédito financeiro a elas. O algoritmo Naive Bayes pode ser usado para calcular a probabilidade de uma amostra ter risco alto, moderado ou baixo com base nas informações disponíveis.

Na tabela gerada acima, a primeira coluna corresponde à classe e suas respectivas alternativas, enquanto as demais colunas representam os atributos e suas respectivas alternativas. A soma na vertical resulta no total de instâncias correspondente à alternativa do atributo, enquanto a soma na horizontal corresponde à interseção da alternativa do atributo com a alternativa da classe.

Para um registro de teste com as seguintes características: História de Crédito - boa, Dívida - alta, Garantias - nenhuma e renda > 35, o Naive Bayes pegará a coluna de cada alternativa do atributo, multiplicará pela probabilidade da classe e somará todos os resultados das alternativas da classe. Em seguida, dividirá o resultado da alternativa pelo total da classe e multiplicará por 100. A alternativa com a maior porcentagem corresponderá à classificação do registro. No exemplo fornecido, o registro seria classificado como baixo risco com uma probabilidade de 79,68%.

Vantagens

  1. Simplicidade: é um algoritmo simples e fácil de implementar, pois não requer muita computação ou tempo de treinamento;
  2. Lida bem com dados ausentes: é útil para lidar com dados ausentes, pois considera apenas os dados presentes para medir a acurácia;
  3. Rápido e escalável: é rápido e escalável, podendo ser usado com grandes conjuntos de dados. Ele pode ser aplicado em tarefas de aprendizado rápido e classificação em tempo real;
  4. Fácil de entender: é simples de entender, pois fornece uma explicação detalhada de como a classificação é realizada. Com base na presença ou ausência de cada característica, ele determina a probabilidade de um resultado específico e atribui uma classe com base na maior probabilidade;
  5. Bom desempenho em classificação de texto: é popular para tarefas de classificação de texto, como análise de sentimentos ou filtragem de spam. Ele lida bem com dados de alta dimensão e funciona bem com dados categóricos, que são comuns no processamento de linguagem natural;
  6. Funciona bem com pequenos conjuntos de dados: funciona bem com pequenos conjuntos de dados, pois não precisa de muitos dados de treinamento para produzir previsões confiáveis. Isso o torna uma boa opção para aplicações onde os dados são limitados, como detecção de fraudes ou diagnóstico médico.
  7. Robusto a características irrelevantes: é robusto a características irrelevantes nos dados. Ele assume que todas as características são independentes entre si e calcula a probabilidade de um determinado resultado com base na presença ou ausência de cada característica independentemente;
  8. Requer menos dados de treinamento: Em comparação com outros algoritmos de aprendizado de máquina, como árvores de decisão ou redes neurais, o Naive Bayes requer menos dados de treinamento. Isso ocorre porque o número de parâmetros que devem ser estimados a partir dos dados é reduzido, já que ele se baseia na ideia da independência das características.

Desvantagens

  1. Assunção da independência: assume que todas as características são independentes entre si, o que nem sempre é verdade em aplicações práticas. Se as características estiverem correlacionadas, isso pode resultar em resultados imprecisos na classificação;
  2. Falta de flexibilidade: como o Naive Bayes é um modelo paramétrico, ele precisa de um conjunto pré-determinado de parâmetros que devem ser ajustados durante o treinamento;
  3. Problema dos zeros: quando encontramos palavras nos dados de teste para uma classe específica que não estão presentes nos dados de treinamento, podemos acabar com probabilidades nulas para essa classe. No entanto, isso pode ser corrigido usando um estimador Laplaciano ou outras técnicas para evitar probabilidades nulas;
  4. Dependência condicional: só funcionará corretamente se o limite da decisão for linear, elíptico ou parabólico.

Frentes de Utilização

O Naive Bayes é amplamente utilizado em aplicações de classificação, especialmente em problemas de processamento de linguagem natural (NLP). Ele é conhecido por sua simplicidade, velocidade e eficácia em várias tarefas.

  • Classificação de texto: é frequentemente usado para classificar textos em categorias específicas, como análise de sentimentos, filtragem de spam e categorização de notícias.
  • Sistemas de recomendação: pode ser aplicado em sistemas de recomendação, como filtragem colaborativa, para prever as preferências dos usuários com base em dados históricos.
  • Detecção de fraudes: pode ser usado para detectar atividades fraudulentas em transações financeiras, analisando padrões e características suspeitas.
  • Diagnóstico médico: pode ser aplicado em sistemas de apoio ao diagnóstico médico, ajudando a identificar doenças com base em sintomas e histórico médico.
  • Análise de risco: pode ser usado para avaliar o risco associado a determinadas situações ou eventos, como risco de crédito ou risco de segurança.
  • Classificação de imagens: Embora seja mais comumente usado para processamento de texto, o Naive Bayes também pode ser aplicado em problemas de classificação de imagens, como reconhecimento facial ou classificação de objetos.

🔍 Referências

Clone this wiki locally