What Is Naive Bayes Algorithm In Machine Learning?

considere um caso em que você criou recursos, você sabe sobre a importância dos recursos e você deve fazer um modelo de classificação que deve ser apresentado em um período muito curto de tempo? o que vai fazer? Você tem um grande volume de pontos de dados e muito menos recursos em seu conjunto de dados., Nessa situação se eu tivesse que fazer tal modelo eu teria usado ‘ingênuo Bayes’, que é considerado um algoritmo realmente rápido quando se trata de tarefas de classificação.

neste blog, estou tentando explicar como o algoritmo funciona que pode ser usado neste tipo de cenários. Se você quiser saber o que é Classificação e outros algoritmos, você pode se referir aqui.

Ingenuble Bayes é um modelo de aprendizagem de máquina que é usado para grandes volumes de dados, mesmo se você está trabalhando com dados que tem milhões de registros de dados a abordagem recomendada é ingenuidade Bayes., Dá resultados muito bons quando se trata de Tarefas NLP, como a análise sentimental. É um algoritmo de classificação rápido e simples.

para entender o classificador ingênuo de Bayes precisamos entender o teorema de Bayes. Então vamos primeiro discutir o teorema de Bayes.

Teorema de Bayes

é um teorema que funciona com probabilidade condicional. Probabilidade condicional é a probabilidade de que algo aconteça, dado que algo mais já ocorreu. A probabilidade condicional pode nos dar a probabilidade de um evento usando seu conhecimento prévio.,

probabilidade Condicional:

Probabilidade Condicional

Onde

P(A): A probabilidade de uma hipótese H de ser verdadeiro. Isto é conhecido como probabilidade prévia.

P(B): a probabilidade da evidência.

P(A / B): a probabilidade da evidência dada que a hipótese é verdadeira.

P (B / A): a probabilidade da hipótese dada de que a evidência é verdadeira.

ingênuo classificador de Bayes

  • é um tipo de classificador que trabalha no teorema de Bayes.,

  • a previsão de probabilidades de adesão é feita para cada classe, como a probabilidade de pontos de dados associados a uma determinada classe.a classe com probabilidade máxima é avaliada como a classe mais adequada.

  • isto também é referido como máximo a Posteriori (mapa).
  • NB classificadores concluem que todas as variáveis ou características não estão relacionadas entre si.

  • a existência ou ausência de uma variável não afecta a existência ou ausência de qualquer outra variável.,

  • exemplo:

    • pode observar-se que os frutos são uma maçã se forem vermelhos, redondos e com cerca de 4″ de diâmetro.

    • neste caso também mesmo se todas as características estão inter-relacionadas entre si, e o classificador de NB irá observar todas estas independentemente contribuindo para a probabilidade de que o fruto é uma maçã.

  • experimentamos a hipótese em conjuntos de dados reais, dadas várias características.

  • assim, o cálculo torna-se complexo.

tipos de algoritmos ingênuos de Bayes

1., Bayes Naïve Gaussian: quando os valores característicos são de natureza contínua, então faz-se uma suposição de que os valores ligados a cada classe são dispersos de acordo com Gaussian que é a distribuição Normal.2. Multinomial Naïve Bayes: Multinomial Naive Bayes é favorecido para usar em dados que são distribuídos multinomial. É amplamente utilizado na classificação de texto em NLP. Cada evento na classificação de texto constitui a presença de uma palavra em um documento.3., Bernoulli Naïve Bayes: quando os dados são distribuídos de acordo com as distribuições multivariadas de Bernoulli então Bernoulli ingênuo Bayes é usado. Isso significa que existem várias características, mas cada uma é assumida para conter um valor binário. Então, requer recursos para serem avaliados binários.

vantagens e desvantagens de Bayes ingênuos

vantagens:

  • é um algoritmo altamente extensível que é muito rápido.

  • pode ser utilizado tanto para binários como para classificação multiclass.,

  • Ele tem, principalmente, três tipos diferentes de algoritmos que são GaussianNB, MultinomialNB, BernoulliNB.

  • é um algoritmo famoso para a classificação de email de spam.

  • pode ser facilmente treinado em pequenos conjuntos de dados e pode ser usado para grandes volumes de dados também.

Desvantagens:

  • A principal desvantagem do NB é, considerando todas as variáveis independentes que contribuem para a probabilidade.,

Applications of Naive Bayes Algorithms

  • Real-time Prediction: Being a fast learning algorithm can be used to make predictions in real-time as well.

  • classificação MultiClass: também pode ser usado para problemas de classificação multi-classes.

  • classificação de texto: como tem mostrado bons resultados na previsão de classificação multi-classes assim que tem mais taxas de sucesso em comparação com todos os outros algoritmos. Como resultado, é principalmente usado na análise de sentimentos & detecção de spam.,a declaração do problema é classificar os doentes como diabéticos ou não diabéticos. O conjunto de dados pode ser descarregado do sítio web do Kaggle que é a “base de dados de DIABETES Indiana PIMA”. Os conjuntos de dados tinham várias características de prognóstico médico diferentes e um alvo que é o “resultado”. As variáveis Predictor incluem o número de gravidezes que o paciente teve, seu IMC, nível de insulina, idade, e assim por diante.,

    implementação de Código de importação e dividir os dados

    PASSOS-

    • Inicialmente, todas as bibliotecas necessárias são importados como numpy, pandas, trem-test_split, GaussianNB, métricas.
    • Uma vez que é um ficheiro de dados sem cabeçalho, iremos fornecer os nomes das colunas que foram obtidos a partir do URL acima
    • criou uma lista python de nomes de colunas chamadas “nomes”.
    • variáveis de predictor inicializadas e o alvo que é X e Y respectivamente.
    • transformou os dados usando Scaler padrão.,divide os dados em conjuntos de treino e ensaio.
    • criou um objeto para GaussianNB.
    • instalou os dados no modelo para treiná-lo.
    • fez previsões sobre o conjunto de testes e armazenou-o numa variável de “predictor”.

    para fazer a análise de dados exploratórios do conjunto de dados você pode procurar as técnicas.

    Confusão-matriz & modelo de pontuação de teste de dados

    • Importado accuracy_score e confusion_matrix de sklearn.metrica., Imprimiu a matriz de confusão entre predito e real que nos diz o desempenho real do modelo.
    • calculou o model_score dos dados de teste para saber o quão bom é o modelo que se apresenta na generalização das duas classes que vieram a ser 74%.,
    model_score = model.score(X_test, y_test)model_score

    a Avaliação do modelo

    Roc_score

    • Importado auc, roc_curve novamente a partir sklearn.metrica.
    • Printed roc_auc score between false positive and true positive that came to be 79%.matplotlib importado.biblioteca pyplot para desenhar a curva roc_curve.
    • Printed the roc_curve.,

    Roc_curve

    O receiver operating characteristic curve também conhecido como roc_curve é um enredo que fala sobre a interpretação do potencial de um classificador binário do sistema. É plotada entre a taxa verdadeira positiva e a taxa falsa positiva em diferentes limiares. A área da curva ROC foi encontrada em 0,80.

    para o ficheiro python e também para o conjunto de dados usado no problema acima, pode referir-se à ligação do Github aqui que contém ambos.,

    Conclusion

    In this blog, I have discussed Naive Bayes algorithms used for classification tasks in different contexts. Eu discuti Qual é o papel do teorema de Bayes no classificador de NB, diferentes características de NB, vantagens e desvantagens de NB, aplicação de NB, e na última eu tomei uma declaração de problema de Kaggle que é sobre classificar pacientes como diabéticos ou não.

Share

Deixe uma resposta

O seu endereço de email não será publicado. Campos obrigatórios marcados com *