Trilha machine learning: Algoritmo Naive Bayes
O algoritmo Naive Bayes é um método probabilístico que se baseia no Teorema de Bayes para realizar classificação, ele assume que as características usadas para descrever instâncias são condicionalmente independentes, dada a classe da instância. Essa suposição simplificadora é conhecida como "ingênua" (naive), mas o algoritmo tem mostrado ser eficaz em muitas situações práticas. O Naive Bayes calcula a probabilidade condicional de uma classe dada as características da instância. Usando o Teorema de Bayes, a fórmula geral é:
P(C∣X)=P(X)P(X∣C)⋅P(C)
onde:
- é a probabilidade da classe dado um conjunto de características .
- é a probabilidade das características dado .
- é a probabilidade prévia da classe .
- é a probabilidade das características .
A suposição de independência condicional permite simplificar a fórmula, tornando-a mais gerenciável.
Podemos usar o Naive Bayes para determinar se um e-mail é spam ou não spam com base nas palavras contidas no texto, identificar se um paciente tem uma determinada condição médica com base em sintomas observados ou classificar opiniões de usuários como positivas ou negativas com base no texto.
Por quê usar o Naive Bayes? Fácil de implementar e entender, pode ser eficaz em tarefas de classificação, especialmente quando a independência condicional não é uma suposição prejudicial. E por quê não? A suposição ingênua de independência condicional pode não ser realista em muitos casos reais e ele pode ser sensível a dados de treinamento desbalanceados ou com características correlacionadas.
Em resumo o Naive Bayes é uma escolha popular para tarefas de classificação simples, especialmente quando há uma quantidade limitada de dados disponíveis, mas apesar de suas simplificações, muitas vezes apresenta resultados competitivos em comparação com algoritmos mais complexos.
- Importamos as bibliotecas necessárias, incluindo o classificador Naive Bayes (`GaussianNB`), funções para avaliação (`accuracy_score`), o conjunto de dados Iris (`load_iris`), e PCA (`PCA`) para redução de dimensões.
- Utilizamos novamente o conjunto de dados Iris, que contém informações sobre três espécies de flores, com quatro características cada.
- Dividimos o conjunto de dados em conjuntos de treino e teste.
- Criamos um classificador Naive Bayes Gaussiano (`GaussianNB`) e o treinamos usando o conjunto de treino.
- Realizamos previsões no conjunto de teste e avaliamos a precisão do modelo.
- Aplicamos a técnica de Análise de Componentes Principais (PCA) para reduzir as dimensões dos dados para dois, tornando-os visualizáveis.
- Plotamos as previsões no conjunto de teste usando um gráfico de dispersão, onde cada ponto é colorido de acordo com a classe prevista pelo modelo Naive Bayes.
O resultado é um gráfico que mostra visualmente como as previsões do modelo Naive Bayes se comparam às classes reais no conjunto de teste. Cada ponto no gráfico representa uma flor no espaço bidimensional das duas principais componentes, as cores dos pontos indicam a classe prevista pelo modelo e as cores do fundo o valor real, como de costume, a exibição é feita por ordem alfabética, então 0 é setosa, 1 é versicolor e 2 é virginica. O objetivo é visualizar o quão bem o modelo está separando as diferentes classes no conjunto de teste, e podemos ver que a alta acurácia corresponde ao gráfico, pois as setosas foram bem separadas, enquanto versicolor e virginica se misturam porém em apenas três observações.
Comentários
Postar um comentário