Me resulta difícil entender el proceso de Naive Bayes, y me preguntaba si alguien podría explicarlo con un simple proceso paso a paso en inglés. Entiendo que se necesitan comparaciones por tiempos ocurridos como una probabilidad, pero no tengo idea de cómo se relacionan los datos de entrenamiento con el conjunto de datos real.
Por favor, dame una explicación de qué papel juega el conjunto de entrenamiento. Estoy dando un ejemplo muy simple para las frutas aquí, como el plátano, por ejemplo.
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
fuente
fuente
Respuestas:
Su pregunta, según tengo entendido, se divide en dos partes, la primera es que necesita una mejor comprensión del clasificador Naive Bayes y la segunda parte es la confusión que rodea al conjunto de entrenamiento.
En general, todos los algoritmos de aprendizaje automático deben estar capacitados para tareas de aprendizaje supervisadas como clasificación, predicción, etc., o para tareas de aprendizaje no supervisadas como la agrupación.
Durante el paso de entrenamiento, los algoritmos se enseñan con un conjunto de datos de entrada particular (conjunto de entrenamiento) para que luego podamos probarlos en busca de entradas desconocidas (que nunca han visto antes) para las que puedan clasificar o predecir, etc. (en caso de supervisión aprendizaje) en función de su aprendizaje. Esto es en lo que se basan la mayoría de las técnicas de Machine Learning como Redes Neuronales, SVM, Bayesian, etc.
Entonces, en un proyecto general de Aprendizaje automático, básicamente debe dividir su conjunto de entrada en un Conjunto de desarrollo (Conjunto de capacitación + Conjunto de prueba de desarrollo) y un Conjunto de prueba (o conjunto de evaluación). Recuerde que su objetivo básico sería que su sistema aprenda y clasifique las nuevas entradas que nunca antes han visto en el conjunto Dev o el conjunto de prueba.
El conjunto de prueba generalmente tiene el mismo formato que el conjunto de entrenamiento. Sin embargo, es muy importante que el conjunto de pruebas sea distinto del conjunto de entrenamiento: si simplemente reutilizamos el conjunto de entrenamiento como conjunto de prueba, entonces un modelo que simplemente memoriza su entrada, sin aprender cómo generalizar a nuevos ejemplos, recibiría engañosamente puntuaciones altas.
En general, por ejemplo, el 70% de nuestros datos se pueden usar como casos de conjunto de capacitación. También recuerde dividir el conjunto original en los conjuntos de entrenamiento y prueba al azar .
Ahora llego a su otra pregunta sobre Naive Bayes.
Para demostrar el concepto de clasificación Naïve Bayes, considere el siguiente ejemplo:
Como se indicó, los objetos se pueden clasificar como
GREEN
oRED
. Nuestra tarea es clasificar los casos nuevos a medida que llegan, es decir, decidir a qué etiqueta de clase pertenecen, en función de los objetos existentes actualmente.Dado que hay el doble de
GREEN
objetosRED
, es razonable creer que un caso nuevo (que aún no se ha observado) tiene el doble de probabilidades de tener membresía enGREEN
lugar de hacerloRED
. En el análisis bayesiano, esta creencia se conoce como la probabilidad previa. Probabilidades anteriores se basan en la experiencia anterior, en este caso el porcentaje deGREEN
yRED
objetos, y utilizan a menudo para predecir los resultados antes de que ocurran.Por lo tanto, podemos escribir:
Probabilidad previa de
GREEN
:number of GREEN objects / total number of objects
Probabilidad previa de
RED
:number of RED objects / total number of objects
Dado que hay un total de
60
objetos,40
de los cuales sonGREEN
20RED
, nuestras probabilidades previas de pertenencia a la clase son:Probabilidad previa para
GREEN
:40 / 60
Probabilidad previa para
RED
:20 / 60
Habiendo formulado nuestra probabilidad previa, ahora estamos listos para clasificar un nuevo objeto (
WHITE
circule en el diagrama a continuación). Dado que los objetos están bien agrupados, es razonable suponer que cuantos másGREEN
(uRED
) objetos estén cerca de X, es más probable que los nuevos casos pertenezcan a ese color en particular. Para medir esta probabilidad, dibujamos un círculo alrededor de X que abarca un número (para ser elegido a priori) de puntos, independientemente de sus etiquetas de clase. Luego calculamos el número de puntos en el círculo que pertenecen a cada etiqueta de clase. A partir de esto calculamos la probabilidad:De la ilustración anterior, está claro que la probabilidad de lo
X
dadoGREEN
es menor que la probabilidad de loX
dadoRED
, ya que el círculo abarca1
GREEN
objetos y3
RED
unos. Así:Aunque las probabilidades anteriores indican que
X
puede pertenecerGREEN
(dado que hay el doble enGREEN
comparación conRED
), la probabilidad indica lo contrario; que la membresía de la claseX
esRED
(dado que hay másRED
objetos en la vecindad deX
queGREEN
). En el análisis bayesiano, la clasificación final se produce combinando ambas fuentes de información, es decir, la anterior y la probabilidad, para formar una probabilidad posterior utilizando la llamada regla de Bayes (llamada así por el reverendo Thomas Bayes 1702-1761).Finalmente, clasificamos X como
RED
ya que su membresía de clase logra la mayor probabilidad posterior.fuente
Me doy cuenta de que esta es una vieja pregunta, con una respuesta establecida. La razón por la que estoy publicando es que la respuesta aceptada tiene muchos elementos de k-NN ( k -vecinos más cercanos), un algoritmo diferente.
Tanto k-NN como NaiveBayes son algoritmos de clasificación. Conceptualmente, k-NN utiliza la idea de "proximidad" para clasificar nuevas entidades. En k-NN, la 'proximidad' se modela con ideas como la distancia euclidiana o la distancia cosenoidal. Por el contrario, en NaiveBayes, el concepto de 'probabilidad' se usa para clasificar nuevas entidades.
Como la pregunta es sobre Naive Bayes, así es como describiría las ideas y los pasos a alguien. Trataré de hacerlo con la menor cantidad de ecuaciones y en inglés simple tanto como sea posible.
Primero, la probabilidad condicional y la regla de Bayes
Antes de que alguien pueda comprender y apreciar los matices de Naive Bayes, primero debe conocer un par de conceptos relacionados, a saber, la idea de probabilidad condicional y la regla de Bayes. (Si está familiarizado con estos conceptos, vaya a la sección titulada Cómo llegar a Bayes ingenuos ' )
Probabilidad condicional en inglés simple: ¿Cuál es la probabilidad de que algo suceda, dado que algo más ya ha sucedido?
Digamos que hay algún Resultado O. Y alguna Evidencia E. Por la forma en que se definen estas probabilidades: La Probabilidad de tener tanto el Resultado O como la Evidencia E es: (Probabilidad de que ocurra O) multiplicado por (Prob de E dado que O paso)
Un ejemplo para entender la probabilidad condicional:
Digamos que tenemos una colección de senadores estadounidenses. Los senadores podrían ser demócratas o republicanos. También son hombres o mujeres.
Si seleccionamos un senador completamente al azar, ¿cuál es la probabilidad de que esta persona sea una mujer demócrata? La probabilidad condicional puede ayudarnos a responder eso.
Probabilidad de (demócrata y senadora) = Prob (el senador es demócrata) multiplicado por la probabilidad condicional de ser mujer dado que son demócratas.
Podríamos calcular exactamente lo mismo, de la manera inversa:
Entendiendo la regla de Bayes
Conceptualmente, esta es una forma de pasar de P (Evidencia | Resultado conocido) a P (Resultado | Evidencia conocida). A menudo, sabemos con qué frecuencia se observa alguna evidencia particular, dado un resultado conocido . Tenemos que usar este hecho conocido para calcular el reverso, para calcular la posibilidad de que ese resultado suceda , dada la evidencia.
P (Resultado dado que conocemos alguna Evidencia) = P (Evidencia dado que conocemos el Resultado) veces Prob (Resultado), escalado por el P (Evidencia)
El ejemplo clásico para entender la regla de Bayes:
Ahora, todo esto fue solo un preámbulo, para llegar a Naive Bayes.
Llegando a Naive Bayes
Hasta ahora, solo hemos hablado de una pieza de evidencia. En realidad, tenemos que predecir un resultado dada la evidencia múltiple. En ese caso, las matemáticas se vuelven muy complicadas. Para evitar esa complicación, un enfoque es 'desacoplar' múltiples piezas de evidencia y tratar cada una de ellas como independiente. Este enfoque es la razón por la que esto se llama ingenuo Bayes.
Muchas personas eligen recordar esto como:
Observe algunas cosas sobre esta ecuación:
base rates
y son una forma de escalar nuestras probabilidades predichas.¿Cómo aplicar NaiveBayes para predecir un resultado?
Simplemente ejecute la fórmula anterior para cada resultado posible. Como estamos tratando de clasificar , cada resultado se llama
class
ay tiene unclass label.
Nuestro trabajo es mirar la evidencia, considerar la probabilidad de que sea esta clase o esa clase, y asignar una etiqueta a cada entidad. Una vez más, adoptamos un enfoque muy simple: la clase que tiene la mayor probabilidad se declara "ganadora" y esa etiqueta de clase se asigna a esa combinación de evidencias.Ejemplo de fruta
Probemos con un ejemplo para aumentar nuestra comprensión: el OP solicitó un ejemplo de identificación de 'fruta'.
Digamos que tenemos datos sobre 1000 piezas de fruta. Resultan ser plátano , naranja o alguna otra fruta . Conocemos 3 características de cada fruta:
Este es nuestro 'conjunto de entrenamiento'. Usaremos esto para predecir el tipo de cualquier fruta nueva que encontremos.
Podemos precalcular muchas cosas sobre nuestra colección de frutas.
Las llamadas probabilidades "anteriores". (Si no supiéramos ninguno de los atributos de la fruta, esta sería nuestra suposición.) Estos son nuestros
base rates.
Probabilidad de "evidencia"
Probabilidad de "verosimilitud"
Dada una fruta, ¿cómo clasificarla?
Digamos que se nos dan las propiedades de una fruta desconocida y se nos pide que la clasifiquemos. Nos dicen que la fruta es larga, dulce y amarilla. ¿Es un plátano? ¿Es una naranja? ¿O es alguna otra fruta?
Simplemente podemos ejecutar los números para cada uno de los 3 resultados, uno por uno. Luego elegimos la probabilidad más alta y 'clasificamos' nuestra fruta desconocida como perteneciente a la clase que tenía la probabilidad más alta según nuestra evidencia previa (nuestro conjunto de entrenamiento de 1000 frutas):
Por un margen abrumador (
0.252 >> 0.01875
), clasificamos esta fruta dulce / larga / amarilla como probable que sea una banana.¿Por qué es tan popular el clasificador Bayes?
Mira a lo que finalmente se reduce. Solo un poco de contar y multiplicar. Podemos precalcular todos estos términos, por lo que la clasificación se vuelve fácil, rápida y eficiente.
Let z = 1 / P(evidence).
Ahora calculamos rápidamente las siguientes tres cantidades.Asigne la etiqueta de clase de la que sea el número más alto y listo.
A pesar del nombre, Naive Bayes resulta excelente en ciertas aplicaciones. La clasificación de texto es un área donde realmente brilla.
Espero que ayude a comprender los conceptos detrás del algoritmo Naive Bayes.
fuente
Ram Narasimhan explicó muy bien el concepto aquí abajo. Es una explicación alternativa a través del ejemplo de código de Naive Bayes en acción.
Utiliza un problema de ejemplo de este libro en la página 351.
Este es el conjunto de datos que usaremos en el conjunto de datos anterior si damos la hipótesis = entonces, ¿cuál es la probabilidad de que compre o no compre una computadora? El siguiente código responde exactamente esa pregunta. Simplemente cree un archivo llamado named y pegue el siguiente contenido.
{"Age":'<=30', "Income":"medium", "Student":'yes' , "Creadit_Rating":'fair'}
new_dataset.csv
¡Aquí está el código que los comentarios explican todo lo que estamos haciendo aquí! [pitón]
salida:
Espero que ayude a comprender mejor el problema
paz
fuente
Naive Bayes: Naive Bayes viene bajo la supervisión del aprendizaje automático que solía hacer clasificaciones de conjuntos de datos. Se utiliza para predecir cosas en función de su conocimiento previo y suposiciones de independencia.
Lo llaman ingenuo porque son suposiciones (se supone que todas las características del conjunto de datos son igualmente importantes e independientes) son realmente optimistas y rara vez son ciertas en la mayoría de las aplicaciones del mundo real.
Es el algoritmo de clasificación el que toma la decisión del conjunto de datos desconocido. Se basa en el Teorema de Bayes, que describe la probabilidad de un evento en función de su conocimiento previo.
El siguiente diagrama muestra cómo funciona Bayes ingenuo
Fórmula para predecir NB:
¿Cómo utilizar el algoritmo Naive Bayes?
Tomemos un ejemplo de cómo NB woks
Paso 1: Primero descubrimos la probabilidad de la tabla que muestra la probabilidad de sí o no en el siguiente diagrama. Paso 2: Encuentra la probabilidad posterior de cada clase.
Para más referencia consulte estos blog.
Consulte el repositorio de GitHub Naive-Bayes-Ejemplos
fuente
Trato de explicar la regla de Bayes con un ejemplo.
¿Cuál es la posibilidad de que una persona aleatoria seleccionada de la sociedad sea fumadora?
Puede responder 10%.
Ahora, ¿qué pasa si la persona es hombre y tiene 15 años?
No puede ser del 60%, aunque sabemos que el porcentaje de fumadores era muy bajo. Tampoco puede ser inferior al 10%. 15 o 20% son mejores conjeturas.
De hecho, tratamos de actualizar la suposición inicial con nuevas pruebas (
P(smoker) vs. P(smoker | evidence)
). La regla de Bayes es una forma de conectar estas dos probabilidades.Cada evidencia puede aumentar o disminuir esta posibilidad. Por ejemplo, este hecho de que es un hombre puede aumentar las posibilidades, siempre que este porcentaje (ser un hombre) entre los no fumadores sea menor. En otras palabras, ser hombre debe ser un buen indicador de ser un fumador en lugar de ser un no fumador.
Podemos mostrar esta contribución de otra manera también. Para cada característica, puede comparar la similitud (probabilidad) de esa característica en las condiciones dadas con su similitud sola. (
P(f | x) vs. P(f))
.Por ejemplo, si sabemos que el 90% de los fumadores son hombres, todavía no es suficiente decir si ser hombre es un indicador de ser fumador o no. Por ejemplo, si la probabilidad de ser un hombre en la sociedad también es del 90%, entonces saber que alguien es un hombre no nos ayuda
((90% / 90%) = 1
. Pero si los hombres contribuyen al 40% de la sociedad, pero al 90% de los fumadores, saber que alguien es hombre aumenta las posibilidades de ser fumador(90% / 40%) = 2.25
, por lo que aumenta la suposición inicial (10%) en 2.25, lo que resulta en 22.5%.Sin embargo, si la probabilidad de ser hombre era del 95% en la sociedad, ¡independientemente del hecho de que el porcentaje de hombres entre los fumadores es alto (90%)! ¡La evidencia de que alguien es un hombre disminuye la posibilidad de que sea fumador!
(90% / 95%) = 0.95)
.Entonces tenemos:
Tenga en cuenta que en esta fórmula asumimos que ser hombre y tener menos de 20 años son características independientes, por lo que las multiplicamos, lo que significa que saber que alguien tiene menos de 20 años no tiene ningún efecto en adivinar que es hombre o mujer. Pero puede no ser cierto, por ejemplo, tal vez la mayoría de la adolescencia en una sociedad son hombres ...
Para usar esta fórmula en un clasificador
El clasificador se da con algunas características (ser hombre y ser menor de 20 años) y debe decidir si es fumador o no (estas son dos clases). Utiliza la fórmula anterior para calcular la probabilidad de cada clase bajo la evidencia (características), y asigna la clase con la mayor probabilidad a la entrada. Para proporcionar las probabilidades requeridas (90%, 10%, 80% ...) utiliza el conjunto de entrenamiento. Por ejemplo, cuenta las personas en el conjunto de capacitación que son fumadores y descubren que contribuyen con el 10% de la muestra. Luego, para los fumadores, verifique cuántos de ellos son hombres o mujeres ... cuántos están por encima de 20 o por debajo de 20 ... En otras palabras, trata de construir la distribución de probabilidad de las características para cada clase en función del entrenamiento datos.
fuente