Glossário

Naive Bayes

Descobre a simplicidade e o poder dos classificadores Naive Bayes para classificação de texto, PNL, deteção de spam e análise de sentimentos em IA e ML.

Treina os modelos YOLO simplesmente
com Ultralytics HUB

Aprende mais

Naive Bayes refere-se a uma família de classificadores probabilísticos simples baseados na aplicação do teorema de Bayes com pressupostos de independência forte (ingénua) entre as caraterísticas. É um algoritmo popular de aprendizagem supervisionada utilizado principalmente para tarefas de classificação em aprendizagem automática (ML). Apesar da sua simplicidade e do pressuposto de independência muitas vezes irrealista, o Naive Bayes tem frequentemente um bom desempenho, especialmente em domínios como o Processamento de Linguagem Natural (PLN), e serve como um modelo de base útil. A sua eficiência torna-o adequado para cenários de grandes volumes de dados e previsões em tempo real em que a velocidade é crucial.

O teorema de Bayes e a hipótese ingénua

O algoritmo baseia-se no teorema de Bayes, que descreve a probabilidade de um acontecimento com base no conhecimento prévio das condições relacionadas com o acontecimento. Na classificação, calcula a probabilidade de um ponto de dados pertencer a uma determinada classe, tendo em conta as suas caraterísticas. A parte "ingénua" vem do pressuposto central de que todas as caraterísticas utilizadas para a classificação são independentes umas das outras, dada a classe. Por exemplo, na classificação de texto, assume que a presença de uma palavra não está relacionada com a presença de outra palavra no mesmo documento, dada a categoria do documento. Embora esta suposição raramente seja verdadeira na realidade (as palavras num documento estão frequentemente correlacionadas), simplifica drasticamente o cálculo, tornando o algoritmo rápido e eficiente, especialmente com conjuntos de dados de elevada dimensão.

Como funciona o Naive Bayes

O treino de um classificador de Naive Bayes envolve o cálculo da probabilidade prévia de cada classe (a frequência com que cada classe aparece nos dados de treino) e a probabilidade de cada caraterística ocorrer dada cada classe. Para um novo ponto de dados não visto, o algoritmo utiliza estas probabilidades pré-calculadas e o pressuposto de independência para calcular a probabilidade posterior de cada classe. A classe com a maior probabilidade posterior é atribuída como previsão. Existem diferentes variantes, como o Gaussian Naive Bayes (para caraterísticas contínuas que assumem uma distribuição normal), o Multinomial Naive Bayes (comum para a classificação de textos que utilizam contagens de palavras) e o Bernoulli Naive Bayes (para caraterísticas binárias que indicam presença ou ausência). Muitas vezes, é necessário um pré-processamento adequado dos dados antes de aplicar o algoritmo.

Aplicações no mundo real

Os classificadores Naive Bayes são amplamente utilizados devido à sua eficiência e desempenho decente:

  1. Filtragem de spam: Esta é uma aplicação clássica em que os e-mails são classificados como "spam" ou "não spam". O algoritmo analisa a frequência de determinadas palavras (caraterísticas) num e-mail e calcula a probabilidade de ser spam com base no histórico de ocorrência dessas palavras em e-mails conhecidos como spam e não spam. As primeiras investigações demonstraram a sua eficácia neste domínio.
  2. Classificação de textos e análise de sentimentos: O Naive Bayes é eficaz para categorizar documentos como artigos de notícias em tópicos (por exemplo, desporto, política, tecnologia) ou para determinar o sentimento (positivo, negativo, neutro) expresso em comentários de texto ou publicações em redes sociais. Utiliza frequências ou presenças de palavras como caraterísticas. Muitos tutoriais de introdução à classificação de texto utilizam Naive Bayes.
  3. Diagnóstico médico: Embora menos comum agora com o aumento da aprendizagem profunda na análise de imagens médicas, o Naive Bayes tem sido utilizado para sugestões de diagnóstico preliminares com base nos sintomas do paciente (caraterísticas), assumindo a independência dos sintomas dada uma doença.
  4. Sistemas de recomendação: Os sistemas de recomendação simples podem utilizar Naive Bayes para sugerir itens com base nas preferências do utilizador e no seu comportamento passado, tratando as interações do utilizador como caraterísticas.

Vantagens e desvantagens

Vantagens:

  • Rapidez e simplicidade: Fácil de implementar e computacionalmente muito rápido, tanto para a formação como para a previsão.
  • Eficiência de dados: Apresenta um desempenho relativamente bom mesmo com pequenas quantidades de dados de treino.
  • Escalabilidade: lida eficazmente com dados de elevada dimensão (muitas caraterísticas), como na análise de texto.
  • Versatilidade: Trabalha com dados contínuos e discretos através de diferentes variantes.

Desvantagens:

  • Pressuposto de independência ingénua: O pressuposto central da independência das caraterísticas é frequentemente violado, limitando potencialmente a precisão.
  • Problema de frequência zero: Se um valor de caraterística nos dados de teste nunca foi visto com uma determinada classe durante o treino, o modelo atribui-lhe uma probabilidade zero, dominando potencialmente a previsão global. Este problema é frequentemente tratado com técnicas de suavização como a suavização de Laplace (ou aditiva).

Comparação com outros algoritmos

  • vs. Regressão logística: Ambos são frequentemente utilizados para tarefas de classificação semelhantes. O Naive Bayes é um modelo generativo, enquanto a regressão logística é discriminativa. O Naive Bayes pode ter um melhor desempenho com conjuntos de dados mais pequenos ou com dimensões elevadas, enquanto a regressão logística pode ser superior se o pressuposto de independência for fortemente violado.
  • vs. Máquinas de vectores de suporte (SVM): As SVMs atingem frequentemente uma maior precisão ao encontrar um hiperplano de separação ótimo e ao lidar melhor com as interações das caraterísticas, mas são geralmente mais lentas a treinar do que as Naive Bayes.
  • vs. Árvores de Decisão / Florestas Aleatórias: Os métodos baseados em árvores podem modelar relações não lineares complexas e interações de caraterísticas de forma explícita, que o Naive Bayes não consegue captar devido ao seu pressuposto de independência. No entanto, o Naive Bayes pode ser mais rápido e requerer menos memória.
  • vs. Modelos de aprendizagem profunda: Modelos complexos como Redes Neurais Convolucionais (CNNs) ou Transformers, incluindo os utilizados em Ultralytics YOLO para visão computacional, normalmente superam o desempenho do Naive Bayes em tarefas que exigem a compreensão de padrões complexos (por exemplo, classificação de imagens, deteção de objectos). No entanto, o Naive Bayes requer muito menos dados, recursos computacionais, como GPUs, e tempo de treinamento, o que o torna uma linha de base ou ferramenta valiosa para problemas mais simples. Plataformas como o Ultralytics HUB concentram-se na implementação de modelos sofisticados de aprendizagem profunda, que funcionam de forma diferente do Naive Bayes.

As implementações do Naive Bayes estão prontamente disponíveis em bibliotecas populares de ML, como o Scikit-learn. Embora não seja o estado da arte para tarefas complexas dominadas pela aprendizagem profunda, o Naive Bayes continua a ser um algoritmo fundamental no conjunto de ferramentas de ML, valorizado pela sua velocidade, simplicidade e eficácia em domínios específicos, particularmente no processamento de texto. A avaliação de modelos utilizando métricas como as discutidas em YOLO Performance Metrics é crucial, independentemente do algoritmo utilizado.

Lê tudo