Estou achando difícil entender o processo de Naive Bayes e queria saber se alguém poderia explicá-lo com um simples processo passo a passo em inglês. Entendo que são necessárias comparações entre os tempos ocorridos como uma probabilidade, mas não tenho idéia de como os dados de treinamento estão relacionados ao conjunto de dados real.
Por favor, explique-me qual o papel do conjunto de treinamento. Estou dando um exemplo muito simples para frutas aqui, como banana por exemplo
training set---
round-red
round-orange
oblong-yellow
round-red
dataset----
round-red
round-orange
round-red
round-orange
oblong-yellow
round-red
round-orange
oblong-yellow
oblong-yellow
round-red
algorithm
machine-learning
dataset
classification
naivebayes
Jaggerjack
fonte
fonte
Respostas:
Sua pergunta, como eu a entendo, está dividida em duas partes, sendo a primeira parte que você precisa entender melhor o classificador Naive Bayes e a segunda parte, a confusão em torno do conjunto de treinamento.
Em geral, todos os algoritmos de aprendizado de máquina precisam ser treinados para tarefas de aprendizado supervisionado, como classificação, previsão, etc. ou para tarefas de aprendizado não supervisionado, como agrupamento.
Durante a etapa de treinamento, os algoritmos são ensinados com um conjunto de dados de entrada específico (conjunto de treinamento) para que mais tarde possamos testá-los para entradas desconhecidas (que nunca haviam visto antes) para as quais possam classificar ou prever etc. (no caso de supervisão aprendizagem) com base na sua aprendizagem. É nisso que a maioria das técnicas de Aprendizado de Máquina, como Redes Neurais, SVM, Bayesiana etc., são baseadas.
Portanto, em um projeto geral de aprendizado de máquina, basicamente, você deve dividir seu conjunto de entradas em um conjunto de desenvolvimento (conjunto de treinamento + conjunto de teste de desenvolvimento) e um conjunto de teste (ou conjunto de avaliação). Lembre-se de que seu objetivo básico é que seu sistema aprenda e classifique novas entradas que elas nunca viram antes no conjunto de desenvolvimento ou no conjunto de teste.
O conjunto de testes normalmente tem o mesmo formato que o conjunto de treinamento. No entanto, é muito importante que o conjunto de testes seja distinto do corpus de treinamento: se simplesmente reutilizássemos o conjunto de treinamento como conjunto de testes, um modelo que simplesmente memorizasse sua entrada, sem aprender a generalizar para novos exemplos, seria enganoso. notas altas.
Em geral, por exemplo, 70% dos nossos dados podem ser usados como casos de conjuntos de treinamento. Lembre-se também de particionar o conjunto original nos conjuntos de treinamento e teste aleatoriamente .
Agora chego à sua outra pergunta sobre Naive Bayes.
Para demonstrar o conceito de Classificação Naïve Bayes, considere o exemplo abaixo:
Conforme indicado, os objetos podem ser classificados como
GREEN
ouRED
. Nossa tarefa é classificar novos casos à medida que eles chegam, ou seja, decidir a qual rótulo de classe eles pertencem, com base nos objetos existentes no momento.Como há o dobro de
GREEN
objetosRED
, é razoável acreditar que um novo caso (que ainda não foi observado) tem duas vezes mais chances de ser membroGREEN
do queRED
. Na análise bayesiana, essa crença é conhecida como probabilidade anterior. As probabilidades anteriores são baseadas na experiência anterior, neste caso, a porcentagem deGREEN
eRED
objetos, e geralmente são usadas para prever resultados antes que eles realmente ocorram.Assim, podemos escrever:
Probabilidade prévia de
GREEN
:number of GREEN objects / total number of objects
Probabilidade prévia de
RED
:number of RED objects / total number of objects
Como existe um total de
60
objetos,40
dos quaisGREEN
20 sãoRED
, nossas probabilidades anteriores de associação à classe são:Probabilidade anterior para
GREEN
:40 / 60
Probabilidade anterior para
RED
:20 / 60
Tendo formulado nossa probabilidade anterior, agora estamos prontos para classificar um novo objeto (
WHITE
circule no diagrama abaixo). Como os objetos estão bem agrupados, é razoável supor que quanto maisGREEN
(ouRED
) objetos estiverem nas proximidades de X, maior a probabilidade de que os novos casos pertençam a essa cor específica. Para medir essa probabilidade, desenhamos um círculo em torno de X que engloba um número (a ser escolhido a priori) de pontos, independentemente de seus rótulos de classe. Em seguida, calculamos o número de pontos no círculo pertencentes a cada rótulo de classe. A partir disso, calculamos a probabilidade:A partir da ilustração acima, fica claro que Probabilidade de
X
dadoGREEN
é menor que Probabilidade deX
dadoRED
, uma vez que o círculo abrange1
GREEN
objeto e3
RED
uns. Portanto:Embora as probabilidades anteriores indiquem que
X
podem pertencer aGREEN
(dado que há o dobro emGREEN
comparação comRED
), a probabilidade indica o contrário; que a associação de classeX
éRED
(dado que há maisRED
objetos nas proximidades deX
queGREEN
). Na análise bayesiana, a classificação final é produzida pela combinação de ambas as fontes de informação, isto é, a anterior e a probabilidade, para formar uma probabilidade posterior usando a chamada regra de Bayes (em homenagem a Rev. Thomas Bayes 1702-1761).Por fim, classificamos X como
RED
uma vez que sua associação à classe atinge a maior probabilidade posterior.fonte
Percebo que essa é uma pergunta antiga, com uma resposta estabelecida. A razão pela qual estou postando é que a resposta aceita tem muitos elementos de k-NN ( k- vizinhos mais próximos), um algoritmo diferente.
O k-NN e o NaiveBayes são algoritmos de classificação. Conceitualmente, o k-NN usa a idéia de "proximidade" para classificar novas entidades. No k-NN, a "proximidade" é modelada com idéias como Distância Euclidiana ou Distância Cosseno. Por outro lado, no NaiveBayes, o conceito de 'probabilidade' é usado para classificar novas entidades.
Como a pergunta é sobre Naive Bayes, eis como eu descreveria as idéias e as etapas para alguém. Vou tentar fazê-lo com o mínimo de equações e em inglês simples, tanto quanto possível.
Primeiro, Probabilidade Condicional e Regra de Bayes
Antes que alguém possa entender e apreciar as nuances dos de Naive Bayes, eles precisam conhecer primeiro alguns conceitos relacionados, a saber, a idéia de Probabilidade Condicional e a Regra de Bayes. (Se você estiver familiarizado com esses conceitos, vá para a seção intitulada Como chegar a Naive Bayes ' )
Probabilidade condicional em inglês simples: qual é a probabilidade de que algo aconteça, considerando que algo já aconteceu.
Digamos que há algum resultado O. e alguma evidência de E. A partir da forma como estas probabilidades são definidas: a probabilidade de ter tanto o O Resultado e Evidência E é: (A probabilidade de ocorrência ó) multiplicado pela (Prob de E dado que O aconteceu)
Um exemplo para entender a probabilidade condicional:
Digamos que temos uma coleção de senadores dos EUA. Os senadores podem ser democratas ou republicanos. Eles também são homens ou mulheres.
Se selecionarmos um senador completamente aleatoriamente, qual é a probabilidade de que essa pessoa seja democrata? A probabilidade condicional pode nos ajudar a responder a isso.
Probabilidade de (democrata e senadora) = Prob (senador é democrata) multiplicado pela probabilidade condicional de ser mulher, uma vez que são democratas.
Poderíamos calcular exatamente a mesma coisa, no sentido inverso:
Regra de Bayes
Conceitualmente, esse é um caminho para ir de P (Evidence | Known Outcome) para P (Outcome | Known Evidence). Frequentemente, sabemos com que frequência algumas evidências particulares são observadas, dado um resultado conhecido . Temos que usar esse fato conhecido para calcular o inverso, para calcular a chance desse resultado acontecer , com base nas evidências.
P (resultado dado que conhecemos alguma evidência) = P (evidência desde que conhecemos o resultado) vezes Prob (resultado), escalonado pelo P (evidência)
O exemplo clássico para entender a Regra de Bayes:
Agora, tudo isso era apenas preâmbulo, para chegar a Naive Bayes.
Chegando a Naive Bayes '
Até agora, falamos apenas de uma evidência. Na realidade, temos que prever um resultado, com múltiplas evidências. Nesse caso, a matemática fica muito complicada. Para contornar essa complicação, uma abordagem é 'desacoplar' várias evidências e tratar cada uma delas como independente. Essa abordagem é a razão pela qual isso é chamado de ingênuo Bayes.
Muitas pessoas optam por se lembrar disso como:
Observe algumas coisas sobre esta equação:
base rates
e são uma maneira de escalar nossas probabilidades previstas.Como aplicar o NaiveBayes para prever um resultado?
Basta executar a fórmula acima para cada resultado possível. Como estamos tentando classificar , cada resultado é chamado de
class
e ele tem um.class label.
Nosso trabalho é examinar as evidências, considerar a probabilidade de ser essa classe ou essa classe e atribuir um rótulo a cada entidade. Novamente, adotamos uma abordagem muito simples: a classe que tem a maior probabilidade é declarada a "vencedora" e esse rótulo de classe é atribuído a essa combinação de evidências.Exemplo de frutas
Vamos tentar um exemplo para aumentar nossa compreensão: O OP pediu um exemplo de identificação de 'frutas'.
Digamos que temos dados sobre 1000 pedaços de frutas. Eles são banana , laranja ou alguma outra fruta . Conhecemos 3 características de cada fruta:
Este é o nosso 'conjunto de treinamento'. Usaremos isso para prever o tipo de qualquer nova fruta que encontrarmos.
Podemos pré-calcular muitas coisas sobre a nossa coleção de frutas.
As chamadas probabilidades "anteriores". (Se não conhecêssemos nenhum dos atributos das frutas, este seria o nosso palpite.) Estes são os nossos
base rates.
Probabilidade de "evidência"
Probabilidade de "Probabilidade"
Dada uma fruta, como classificá-la?
Digamos que recebemos as propriedades de uma fruta desconhecida e pedimos para classificá-la. Dizem-nos que a fruta é longa, doce e amarela. É uma banana? É uma laranja? Ou é alguma outra fruta?
Podemos simplesmente executar os números para cada um dos três resultados, um por um. Em seguida, escolhemos a maior probabilidade e 'classificamos' nossos frutos desconhecidos como pertencentes à classe que teve a maior probabilidade com base em nossas evidências anteriores (nosso conjunto de treinamento de 1000 frutos):
Por uma margem esmagadora (
0.252 >> 0.01875
), classificamos esta fruta Doce / Longa / Amarela como provável que seja uma Banana.Por que o Bayes Classifier é tão popular?
Olhe para o que eventualmente se resume. Apenas algumas contagens e multiplicações. Podemos pré-calcular todos esses termos e, assim, a classificação se torna fácil, rápida e eficiente.
Let z = 1 / P(evidence).
Agora, calculamos rapidamente as três quantidades seguintes.Atribua o rótulo de classe ao que for o número mais alto e pronto.
Apesar do nome, Naive Bayes acaba sendo excelente em certas aplicações. A classificação de texto é uma área em que realmente brilha.
Espero que ajude a entender os conceitos por trás do algoritmo Naive Bayes.
fonte
Ram Narasimhan explicou muito bem o conceito aqui abaixo. É uma explicação alternativa através do exemplo de código de Naive Bayes em ação.
Ele usa um exemplo de problema deste livro na página 351.
Este é o conjunto de dados que usaremos no conjunto de dados acima, se fornecermos a hipótese = então qual é a probabilidade de ele comprar ou não um computador. O código abaixo responde exatamente a essa pergunta. Basta criar um arquivo chamado nomeado e colar o seguinte conteúdo.
{"Age":'<=30', "Income":"medium", "Student":'yes' , "Creadit_Rating":'fair'}
new_dataset.csv
Aqui está o código que os comentários explicam tudo o que estamos fazendo aqui! [Pitão]
resultado:
Espero que ajude a entender melhor o problema
Paz
fonte
Naive Bayes: Naive Bayes está sob a supervisão de aprendizado de máquina que costumava fazer classificações de conjuntos de dados. É usado para prever coisas com base em seu conhecimento prévio e suposições de independência.
Eles chamam de ingênuo porque são suposições (assume que todos os recursos do conjunto de dados são igualmente importantes e independentes) são realmente otimistas e raramente verdadeiros na maioria dos aplicativos do mundo real.
É o algoritmo de classificação que toma a decisão pelo conjunto de dados desconhecido. É baseado no Teorema de Bayes, que descreve a probabilidade de um evento com base em seu conhecimento prévio.
O diagrama abaixo mostra como funciona o ingênuo Bayes
Fórmula para prever RN:
Como usar o algoritmo Naive Bayes?
Vamos dar um exemplo de como NB woks
Etapa 1: Primeiro descobrimos Probabilidade da tabela que mostra a probabilidade de sim ou não no diagrama abaixo. Etapa 2: encontre a probabilidade posterior de cada classe.
Para mais referência, consulte estes blogs.
Consulte Exemplos de Naive-Bayes do repositório do GitHub
fonte
Tento explicar a regra de Bayes com um exemplo.
Qual é a chance de uma pessoa aleatória selecionada da sociedade ser fumante?
Você pode responder 10%.
Agora, e se a pessoa for um homem e 15 anos?
Não pode ser 60%, enquanto sabemos que a porcentagem de fumantes era muito baixa. Também não pode ser inferior a 10%. 15 ou 20% são melhores palpites.
De fato, tentamos atualizar o palpite inicial com novas evidências (
P(smoker) vs. P(smoker | evidence)
). A regra de Bayes é uma maneira de conectar essas duas probabilidades.Cada evidência pode aumentar ou diminuir essa chance. Por exemplo, esse fato de ser homem pode aumentar a chance, desde que essa porcentagem (sendo homem) entre os não fumantes seja menor. Em outras palavras, ser homem deve ser um bom indicador de ser fumante e não não-fumante.
Também podemos mostrar essa contribuição de outra maneira. Para cada recurso, você pode comparar a semelhança (probabilidade) desse recurso sob as condições especificadas, apenas com a sua semelhança. (
P(f | x) vs. P(f))
.Por exemplo, se sabemos que 90% dos fumantes são homens, ainda não basta dizer se ser homem é um indicador de ser fumante ou não. Por exemplo, se a probabilidade de ser homem na sociedade também é de 90%, saber que alguém é homem não nos ajuda
((90% / 90%) = 1
. Mas se os homens contribuem com 40% da sociedade, mas 90% dos fumantes, saber que alguém é homem aumenta a chance de ser fumante(90% / 40%) = 2.25
, aumentando a estimativa inicial (10%) em 2,25, resultando em 22,5%.No entanto, se a probabilidade de ser homem era de 95% na sociedade, independentemente do fato de a porcentagem de homens entre fumantes ser alta (90%)! a evidência de que alguém é homem diminui a chance de ele ser fumante!
(90% / 95%) = 0.95)
.Então nós temos:
Observe que, nesta fórmula, assumimos que ser homem e ter menos de 20 anos são características independentes; portanto, nós as multiplicamos, significa que saber que alguém tem menos de 20 anos não tem efeito em supor que ele é homem ou mulher. Mas pode não ser verdade, por exemplo, talvez a maior parte da adolescência em uma sociedade seja homem ...
Para usar esta fórmula em um classificador
O classificador é fornecido com alguns recursos (ser homem e ter menos de 20 anos) e deve decidir se ele é fumante ou não (são duas classes). Ele usa a fórmula acima para calcular a probabilidade de cada classe sob a evidência (características) e atribui a classe com a maior probabilidade à entrada. Para fornecer as probabilidades necessárias (90%, 10%, 80% ...), ele usa o conjunto de treinamento. Por exemplo, conta as pessoas no conjunto de treinamento que são fumantes e descobre que elas contribuem com 10% da amostra. Então, para fumantes verifica quantos deles são homens ou mulheres .... quantos estão acima de 20 ou abaixo de 20 .... Em outras palavras, ele tenta construir a distribuição de probabilidade dos recursos para cada classe com base no treinamento dados.
fonte