Jos e Luis Ruiz Reina - Universidad de Sevilla · Un poco de teor a de la probabilidadLa regla de...

64
Un poco de teor´ ıa de la probabilidad La regla de Bayes Clasificador Naive Bayes Naive Bayes para clasificaci´on de textos Naive B Aprendizaje de modelos probabil´ ısticos Jos´ e Luis Ruiz Reina Dpto. Ciencias de la Computaci´on e Inteligencia Artificial Razonamiento Asistido por Computador, 2017-2018

Transcript of Jos e Luis Ruiz Reina - Universidad de Sevilla · Un poco de teor a de la probabilidadLa regla de...

  • Un poco de teoŕıa de la probabilidad La regla de Bayes Clasificador Naive Bayes Naive Bayes para clasificación de textos Naive Bayes en scikit-learn (naive bayes)

    Aprendizaje de modelos probabiĺısticos

    José Luis Ruiz Reina

    Dpto. Ciencias de la Computación e Inteligencia Artificial

    Razonamiento Asistido por Computador, 2017-2018

  • Un poco de teoŕıa de la probabilidad La regla de Bayes Clasificador Naive Bayes Naive Bayes para clasificación de textos Naive Bayes en scikit-learn (naive bayes)

    Modelos probabiĺısticos para clasificación

    • Un modelo probabiĺıstico es aquel que, bajo ciertassuposiciones de simplificación, define una distribución deprobabilidad entre los datos y el valor de clasificación• El modelo se aprende a partir de los datos del conjunto de

    entrenamiento• Y luego se usa para clasificar nuevas instancias, simplemente

    calculando la probabilidad de que pertenezca a cada clase.

    • Regresión loǵıstica es un modelo probabiĺıstico, que ya hemosvisto

    • En este tema:• Clasificador Naive Bayes simple (Bernoulli)• Clasificador Naive Bayes multinomial

  • Un poco de teoŕıa de la probabilidad La regla de Bayes Clasificador Naive Bayes Naive Bayes para clasificación de textos Naive Bayes en scikit-learn (naive bayes)

    Índice

    Un poco de teoŕıa de la probabilidad

    La regla de Bayes

    Clasificador Naive Bayes

    Naive Bayes para clasificación de textos

    Naive Bayes en scikit-learn (naive bayes)

  • Un poco de teoŕıa de la probabilidad La regla de Bayes Clasificador Naive Bayes Naive Bayes para clasificación de textos Naive Bayes en scikit-learn (naive bayes)

    Un poco de teoŕıa de la probabilidad

  • Un poco de teoŕıa de la probabilidad La regla de Bayes Clasificador Naive Bayes Naive Bayes para clasificación de textos Naive Bayes en scikit-learn (naive bayes)

    Variables aleatorias

    • Variables aleatorias: una “parte” del mundo cuyo estadopodemos desconocer• Ejemplo: la variable aleatoria Bronquitis describe el hecho de

    que un paciente pueda o no tener bronquitis• Nuestra descripción del mundo vendrá dada por un conjunto

    de variables aleatorias

    • Una variable aleatoria puede tomar diferentes valores de sudominio• Los posibles valores de Bronquitis son true y false• Notación: variables aleatorias en mayúsculas y sus valores en

    minúsculas

  • Un poco de teoŕıa de la probabilidad La regla de Bayes Clasificador Naive Bayes Naive Bayes para clasificación de textos Naive Bayes en scikit-learn (naive bayes)

    Variables aleatorias

    • Tipos de variables aleatorias:• Booleanas (notación: bronquitis y ¬bronquitis son equivalentes

    a Bronquitis = true y Bronquitis = false, respectivamente)• Discretas (incluyen a las booleanas)• Continuas

  • Un poco de teoŕıa de la probabilidad La regla de Bayes Clasificador Naive Bayes Naive Bayes para clasificación de textos Naive Bayes en scikit-learn (naive bayes)

    Sucesos

    • Usando las conectivas proposicionales y las variablesaleatorias, podemos expresar sucesos (o eventos aleatorios)

    • Ejemplos:• bronquitis ∧ ¬fiebre• Bronquitis = true ∨ Tiempo = nublado• Tirada1 = 5 ∧ (Tirada2 = 4 ∨ Tirada2 = 5 ∨ Tirada2 = 6)

    • Suceso elemental: una variable aleatoria toma un valor (p.ej.Tirada1 = 5)

    • Asignaremos probabilidades a los sucesos para expresarnuestro grado de creencia en que ocurran

  • Un poco de teoŕıa de la probabilidad La regla de Bayes Clasificador Naive Bayes Naive Bayes para clasificación de textos Naive Bayes en scikit-learn (naive bayes)

    Probabilidad incondicional: idea intuitiva

    • Dada un suceso a, su probabilidad incondicional (o a priori),notada P(a), cuantifica el grado de creencia en que ocurra a,en ausencia de cualquier otra información o evidencia• Ejemplo: P(bronquitis) = 0,1, P(bronquitis,¬fiebre) = 0,05• Notación: P(bronquitis,¬fiebre) es equivalente a

    P(bronquitis ∧ ¬fiebre)• Aproximación frecuentista: número de casos favorables (en los

    que se cumple a) entre el número de casos totales

  • Un poco de teoŕıa de la probabilidad La regla de Bayes Clasificador Naive Bayes Naive Bayes para clasificación de textos Naive Bayes en scikit-learn (naive bayes)

    Probabilidad: definición axiomática

    • Una función de probabilidad es una función definida en elconjunto de posibles sucesos (respecto de un conjunto dadode variables aleatorias), verificando las siguientes propiedades:• 0 ≤ P(a) ≤ 1, para todo suceso a• P(true) = 1 y P(false) = 0 donde true y false representan a

    cualquier suceso tautológico o insatisfactible, respectivamente• P(a ∨ b) = P(a) + P(b)− P(a ∧ b), para cualquier par de

    sucesos a y b

    • El cálculo de probabilidades se construye sobre los tresaxiomas anteriores. Por ejemplo:• P(¬a) = 1− P(a)• P(a ∨ b) = P(a) + P(b), si a y b son disjuntos.•

    ∑ni=1 P(D = di ) = 1, siendo D una v.a. y di , i = 1, . . . , n sus

    posibles valores

  • Un poco de teoŕıa de la probabilidad La regla de Bayes Clasificador Naive Bayes Naive Bayes para clasificación de textos Naive Bayes en scikit-learn (naive bayes)

    Distribuciones de probabilidad

    • La distribución de probabilidad de una variable aleatoria indicalas probabilidades de que la variable pueda tomar cada uno desus valores• Ejemplo: si Tiempo es una v.a. con valores lluvia, sol , nubes y

    nieve, su distribución de probabilidad podŕıa ser:• P(Tiempo = sol) = 0,7, P(Tiempo = lluvia) = 0,2,

    P(Tiempo = nubes) = 0,08, P(Tiempo = nieve) = 0,02

    • Notación: usaremos P (en negrita), para expresar de maneracompacta una distribución de probabilidad (fijado un ordenentre sus valores)• Ejemplo: P(Tiempo) = 〈0,7; 0,2; 0,08; 0,02〉

  • Un poco de teoŕıa de la probabilidad La regla de Bayes Clasificador Naive Bayes Naive Bayes para clasificación de textos Naive Bayes en scikit-learn (naive bayes)

    Distribución conjunta

    • Distribución de probabilidad conjunta: probabilidad de cadacombinación de valores de dos o más variables aleatorias• Notación P(X ,Y ): manera compacta de denotar a una tabla

    con esas probabilidades• Ejemplo: P(Tiempo,Bronquitis) denota una tabla con 4× 2

    entradas

  • Un poco de teoŕıa de la probabilidad La regla de Bayes Clasificador Naive Bayes Naive Bayes para clasificación de textos Naive Bayes en scikit-learn (naive bayes)

    Eventos atómicos

    • Dado un conjunto de variables aleatorias que describennuestro “mundo”, un evento atómico es un tipo particular desuceso:• Conjunción de sucesos elementales, que expresan un valor

    concreto para todas y cada una de las variables

    • Ejemplo: si Bronquitis y Fiebre son todas las variablesaleatorias en nuestra descripción del mundo, los posibleseventos atómicos son• bronquitis ∧ fiebre• bronquitis ∧ ¬fiebre• ¬bronquitis ∧ fiebre• ¬bronquitis ∧ ¬fiebre

  • Un poco de teoŕıa de la probabilidad La regla de Bayes Clasificador Naive Bayes Naive Bayes para clasificación de textos Naive Bayes en scikit-learn (naive bayes)

    Eventos atómicos

    • Caracteŕısticas de los eventos atómicos:• Mútuamente excluyentes• Todos los eventos atómicos son exhaustivos (alguno debe

    ocurrir)• Un evento atómico implica la verdad o falsedad de todo suceso• Todo suceso es equivalente a la disyunción de un conjunto de

    eventos atómicos: por ejemplo, bronquitis es equivalente a(bronquitis ∧ fiebre) ∨ (bronquitis ∧ ¬fiebre)

    • Para cualquier suceso a,

    P(a) =∑

    ei∈e(a)P(ei )

    siendo e(a) el conjunto de eventos atómicos cuya disyunciónequivale a a

  • Un poco de teoŕıa de la probabilidad La regla de Bayes Clasificador Naive Bayes Naive Bayes para clasificación de textos Naive Bayes en scikit-learn (naive bayes)

    Distribución conjunta y completa

    • Distribución de probabilidad conjunta y completa (DCC):probabilidad de cada evento atómico• Una DCC es una especificación completa (en términos

    probabiĺısticos) del dominio descrito

    • Ejemplo de DCC:

    fiebre fiebre ¬fiebre ¬fiebretos ¬tos tos ¬tos

    bronquitis 0.108 0.012 0.072 0.008

    ¬bronquitis 0.016 0.064 0.144 0.576

  • Un poco de teoŕıa de la probabilidad La regla de Bayes Clasificador Naive Bayes Naive Bayes para clasificación de textos Naive Bayes en scikit-learn (naive bayes)

    Cálculo de probabilidades usando DCC

    • Usando la fórmula P(a) =∑

    ei∈e(a) P(ei )

    • Ejemplos:• P(bronquitis ∨ fiebre) =

    P(bronquitis, fiebre, tos) + P(bronquitis, fiebre,¬tos) +P(bronquitis,¬fiebre, tos) + P(bronquitis,¬fiebre,¬tos) +P(¬bronquitis, fiebre, tos) + P(¬bronquitis, fiebre,¬tos) =0,108 + 0,012 + 0,072 + 0,008 + 0,016 + 0,064 = 0,28

    • P(bronquitis) =P(bronquitis, fiebre, tos) + P(bronquitis, fiebre,¬tos) +P(bronquitis,¬fiebre, tos) + P(bronquitis,¬fiebre,¬tos) =0,108 + 0,012 + 0,072 + 0,008 = 0,2

  • Un poco de teoŕıa de la probabilidad La regla de Bayes Clasificador Naive Bayes Naive Bayes para clasificación de textos Naive Bayes en scikit-learn (naive bayes)

    Cálculo de probabilidades usando DCC

    • En general:• P(Y) =

    ∑z P(Y, z) (regla de marginalización)

    • Notación• Y es un vector de variables aleatorias, simbolizando cualquier

    combinación de valores de esas variables• z representa una combinación de valores concretos para un

    conjunto Z de variables aleatorias (las restantes)• Hay un sumando P(Y, z) para cada posible z, y cada sumando

    es una entrada de la DCC

    • Problemas:• Tamaño exponencial de la DCC• Rara vez se conocen directamente las probabilidades de todos

    los eventos atómicos.

    • Las probabilidades condicionales expresan mejor nuestroconocimiento del dominio.

  • Un poco de teoŕıa de la probabilidad La regla de Bayes Clasificador Naive Bayes Naive Bayes para clasificación de textos Naive Bayes en scikit-learn (naive bayes)

    Probabilidad condicional

    • Probabilidad condicional (o a posteriori) asociada a a dado b(a y b sucesos):• Grado de creencia sobre a, dado que todo lo que sabemos es

    que b ocurre, notada P(a|b)• Ejemplo: P(bronquitis|fiebre) = 0,8 significa que una vez

    sabido que un paciente tiene fiebre (y sólamente sabemos eso),nuestra creencia es que el paciente tendrá bronquitis conprobabilidad 0,8

  • Un poco de teoŕıa de la probabilidad La regla de Bayes Clasificador Naive Bayes Naive Bayes para clasificación de textos Naive Bayes en scikit-learn (naive bayes)

    Probabilidad condicional

    • Relación entre probabilidad condicional e incondicional:

    P(a|b) = P(a ∧ b)P(b)

    • Variante: P(a ∧ b) = P(a|b)P(b) (regla del producto)• O, análogamente, P(a ∧ b) = P(b|a)P(a)

    • Notación P(X |Y ) para expresar la tabla de probabilidadescondicionales• Forma compacta de la regla del producto:

    P(X ,Y ) = P(X |Y )P(Y )• Nota: la fórmula anterior no expresa un producto de matrices,

    sino la relación existente entre las correspondientes entradas delas tablas

  • Un poco de teoŕıa de la probabilidad La regla de Bayes Clasificador Naive Bayes Naive Bayes para clasificación de textos Naive Bayes en scikit-learn (naive bayes)

    Ejemplo de cálculo de una probabilidad condicional

    • Probabilidad de tener bronquitis, observado que hay fiebre

    P(bronquitis|fiebre) = P(bronquitis, fiebre)P(fiebre)

    =

    =0,108 + 0,012

    0,108 + 0,012 + 0,016 + 0,064= 0,6

  • Un poco de teoŕıa de la probabilidad La regla de Bayes Clasificador Naive Bayes Naive Bayes para clasificación de textos Naive Bayes en scikit-learn (naive bayes)

    Normalización

    • Podŕıamos evitar calcular expĺıcitamente P(fiebre)• 1

    P(fiebre) puede verse como una constante α que normaliza la

    distribución P(Bronquitis, fiebre) haciendo que sume 1:

    P(Bronquitis|fiebre) = 〈P(bronquitis|fiebre),P(¬bronquitis|fiebre)〉

    = 〈P(bronquitis, fiebre)P(fiebre)

    ,P(¬bronquitis, fiebre)

    P(fiebre)〉

    = α〈P(bronquitis, fiebre),P(¬bronquitis, fiebre)〉

    = α〈0,108 + 0,012; 0,016 + 0,064〉 = 〈0,12; 0,08〉 = 〈0,6; 0,4〉

    • Es decir, calculamos P(bronquitis, fiebre) yP(¬bronquitis, fiebre) y a posteriori multiplicamos ambos poruna constante α que haga que ambos sumen 1; de esa maneratenemos P(bronquitis|fiebre) y P(¬bronquitis|fiebre)

  • Un poco de teoŕıa de la probabilidad La regla de Bayes Clasificador Naive Bayes Naive Bayes para clasificación de textos Naive Bayes en scikit-learn (naive bayes)

    Independencia probabiĺıstica

    • En muchos casos prácticos, algunas de las variables de unproblema son independientes entre śı• Ejemplo: P(Tiempo = nublado|fiebre, bronquitis, tos) =

    P(Tiempo = nublado)• Si la variable Tiempo (con 4 posibles valores) formara parte de

    una descripción en la que están Bronquitis, Tos y Fiebre:• No necesitaŕıamos una tabla con 32 entradas para describir la

    DCC, sino dos tablas independientes (8+4 entradas)• Esto reduce la complejidad de la representación

  • Un poco de teoŕıa de la probabilidad La regla de Bayes Clasificador Naive Bayes Naive Bayes para clasificación de textos Naive Bayes en scikit-learn (naive bayes)

    Independencia probabiĺıstica

    • Intuitivamente, dos variables aleatorias son independientes siconocer el valor que toma una de ellas no nos actualiza (ni alalza ni a la baja) nuestro grado de creencia sobre el valor quetome la otra.• El asumir que dos variables son independientes está basado

    normalmente en el conocimiento previo del dominio que semodela

    • Formalmente, dos variables aleatorias X e Y sonindependientes si P(X |Y ) = P(X ) (equivalentemente,P(Y |X ) = P(Y ) ó P(X ,Y ) = P(X ) · P(Y ))• En general, dos sucesos a y b son independientes si

    P(a|b) = P(a)• Asumir independencia entre ciertas variables ayuda a que la

    representación del mundo sea más manejable.• Es una simplificación útil, a veces no del todo cierta.• Reduce la exponencialidad (factorización del problema)

  • Un poco de teoŕıa de la probabilidad La regla de Bayes Clasificador Naive Bayes Naive Bayes para clasificación de textos Naive Bayes en scikit-learn (naive bayes)

    Independencia condicional

    • Sin embargo, en nuestro ejemplo Fiebre y Tos no sonindependientes• Ambas dependen de Bronquitis

    • Pero son independientes una vez conocido el valor deBronquitis• Es decir: P(Fiebre|Tos,Bronquitis) = P(Fiebre|Bronquitis) o

    equivalentementeP(Tos|Fiebre,Bronquitis) = P(Tos|Bronquitis)

    • También equivalente: P(Tos,Fiebre|Bronquitis) =P(Tos|Bronquitis)P(Fiebre|Bronquitis)

  • Un poco de teoŕıa de la probabilidad La regla de Bayes Clasificador Naive Bayes Naive Bayes para clasificación de textos Naive Bayes en scikit-learn (naive bayes)

    Independencia condicional

    • Intuitivamente: X es condicionalmente independiente de Ydado un conjunto de variables Z si nuestro grado de creenciaen que X tome un valor dado, sabiendo el valor que toman lasvariables de Z, no se veŕıa actualizado (ni al alza ni a labaja), si además supiéramos el valor que toma Y

    • En el ejemplo: sabiendo si se tiene Bronquitis o no, el conocersi se tiene Fiebre o no, no va a aportar nada nuevo a nuestrogrado de creencia en que se tenga Tos.

    • Formalmente, dos v.a. X e Y son independientes dado unconjunto de v.a. Z si P(X ,Y |Z) = P(X |Z)P(Y |Z)• O equivalentemente P(X |Y ,Z) = P(X |Z) ó

    P(Y |X ,Z) = P(Y |Z)

  • Un poco de teoŕıa de la probabilidad La regla de Bayes Clasificador Naive Bayes Naive Bayes para clasificación de textos Naive Bayes en scikit-learn (naive bayes)

    La regla de Bayes

  • Un poco de teoŕıa de la probabilidad La regla de Bayes Clasificador Naive Bayes Naive Bayes para clasificación de textos Naive Bayes en scikit-learn (naive bayes)

    La regla de Bayes

    • De P(a ∧ b) = P(a|b)P(b) = P(b|a)P(a) podemos deducir lasiguiente fórmula, conocida como regla de Bayes

    P(b|a) = P(a|b)P(b)P(a)

    • Regla de Bayes para variables aleatorias:

    P(Y |X ) = P(X |Y )P(Y )P(X )

    • recuérdese que esta notación representa un conjunto deecuaciones, una para cada valor espećıfico de las variables

    • Generalización, en presencia de un conjunto e deobservaciones:

    P(Y |X , e) = P(X |Y , e)P(Y |e)P(X |e)

  • Un poco de teoŕıa de la probabilidad La regla de Bayes Clasificador Naive Bayes Naive Bayes para clasificación de textos Naive Bayes en scikit-learn (naive bayes)

    Regla de Bayes: un ejemplo

    • La regla de Bayes nos permite diagnosticar en función denuestro conocimiento de relaciones causales

    • Ejemplo:• Sabemos que la probabilidad de que un paciente de meningitis

    tenga el cuello hinchado es 0.5 (relación causal)• También sabemos la probabilidad (incondicional) de tener

    meningitis ( 150000 ) y de tener el cuello hinchado (0.05)• Estas probabilidades provienen del conocimiento y la

    experiencia• La regla de Bayes nos permite diagnosticar la probabilidad de

    tener meningitis una vez que se ha observado que el pacientetiene el cuello hinchado

    P(m|h) = P(h|m)P(m)P(h)

    =0,5× 150000

    0,05= 0,0002

  • Un poco de teoŕıa de la probabilidad La regla de Bayes Clasificador Naive Bayes Naive Bayes para clasificación de textos Naive Bayes en scikit-learn (naive bayes)

    Regla de Bayes, un ejemplo con normalización

    • Una variante del ejemplo anterior:• Si M es una variable aleatoria booleana indicando si se tiene

    meningitis o no, podŕıamos calcular con la siguiente fórmula,donde α es el factor de normalización

    P(M|h) = α〈P(h|m)P(m); P(h|¬m)P(¬m)〉

    • Respecto de lo anterior, esto evita el cálculo de P(h) peroobliga a saber P(h|¬m)

    • Versión de la regla de Bayes, con normalización, para variablesaleatorias: P(Y |X ) = αP(X |Y )P(Y )

  • Un poco de teoŕıa de la probabilidad La regla de Bayes Clasificador Naive Bayes Naive Bayes para clasificación de textos Naive Bayes en scikit-learn (naive bayes)

    Otro ejemplo

    • Consideremos la siguiente información sobre el cáncer demama• Un 1 % de las mujeres de más de 40 años que se hacen un

    chequeo tienen cáncer de mama• Un 80 % de las que tienen cáncer de mama se detectan con

    una mamograf́ıa• El 9.6 % de las que no tienen cáncer de mama, al realizarse

    una mamograf́ıa se le diagnostica cáncer erróneamente

  • Un poco de teoŕıa de la probabilidad La regla de Bayes Clasificador Naive Bayes Naive Bayes para clasificación de textos Naive Bayes en scikit-learn (naive bayes)

    Otro ejemplo

    • Pregunta: ¿cuál es la probabilidad de tener cáncer si lamamograf́ıa aśı lo diagnostica?• Variables aleatorias: C (tener cáncer de mama) y M

    (mamograf́ıa positiva)• P(C |m) = αP(m|C )P(C ) =α〈P(m|c)P(c); P(m|¬c)P(¬c)〉 = α〈0,8 · 0,01; 0,096 · 0,99〉 =α〈0,008; 0,09504〉 = 〈0,0776; 0,9223〉

    • Luego el 7.8 % de las mujeres diagnosticadas positivamentecon mamograf́ıa tendrán realmente cáncer de mama

  • Un poco de teoŕıa de la probabilidad La regla de Bayes Clasificador Naive Bayes Naive Bayes para clasificación de textos Naive Bayes en scikit-learn (naive bayes)

    Uso de la regla de Bayes

    • ¿Por qué calcular el diagnóstico en función del conocimientocausal y no al revés?• Porque es más fácil y robusto disponer de probabilidades

    causales que de probabilidades de diagnóstico• La información probabiĺıstica está generalmente disponible en

    la forma P(efecto|causa)• Y usamos la regla de Bayes para calcular P(causa|efecto)

  • Un poco de teoŕıa de la probabilidad La regla de Bayes Clasificador Naive Bayes Naive Bayes para clasificación de textos Naive Bayes en scikit-learn (naive bayes)

    La regla de Bayes: combinando evidencias

    • Cuando manejamos varias variables para representar distintasevidencias (y es lo habitual), el uso de la regla de Bayes puedenecesitar una cantidad exponencial de probabilidades de tipoP(efecto|causa)

    • Por ejemplo:• Supongamos que tenemos evidencias sobre tos (Tos) y sobre

    fiebre en el paciente (Fiebre), y queremos diagnosticar si tienebronquitis (Bronquitis)

    • Por la regla de Bayes: P(Bronquitis|Fiebre,Tos) =αP(Fiebre,Tos|Bronquitis)P(Bronquitis)

    • Puesto que Fiebre y Tos son independientes dado Bronquitis:P(Bronquitis|Fiebre,Tos) =αP(Fiebre|Bronquitis)P(Tos|Bronquitis)P(Bronquitis)

  • Un poco de teoŕıa de la probabilidad La regla de Bayes Clasificador Naive Bayes Naive Bayes para clasificación de textos Naive Bayes en scikit-learn (naive bayes)

    La independencia condicional simplifica el modelo

    • Si Bronquitis tuviera n efectos independientes entre śı (dadoBronquitis), el número de probabilidades a manejar es O(n)en lugar de O(2n)

    • En general, con una Causa con n efectos Ei independientesentre śı dado Causa, se tiene

    P(Causa|E1, . . . ,En) = αP(Causa)∏

    i

    P(Ei |Causa)

    • No siempre se dan estas condiciones de independencia tanfuertes, aunque a veces compensa asumirlas

  • Un poco de teoŕıa de la probabilidad La regla de Bayes Clasificador Naive Bayes Naive Bayes para clasificación de textos Naive Bayes en scikit-learn (naive bayes)

    Ejemplo combinando evidencias

    • Pregunta: ¿cuál es la probabilidad de tener cáncer si tras dosmamograf́ıas consecutivas en ambas se diagnostica cáncer?• Variables aleatorias: M1 (primera mamograf́ıa positiva) y M2

    (segunda mamograf́ıa positiva)• Obviamente, no podemos asumir independencia

    (incondicional) entre M1 y M2• Pero es plausible asumir independencia condicional de M1 y

    M2 dada C• Por tanto, P(C |m1,m2) = αP(m1|C )P(m2|C )P(C ) =α〈P(m1|c)P(m2|c)P(c); P(m2|¬c)P(m2|¬c)P(¬c)〉 =α〈0,8 · 0,8 · 0,01; 0,096 · 0,096 · 0,99〉 = 〈0,412; 0,588〉

    • Luego aproximadamente el 41 % de las mujeres doblementediagnosticadas positivamente con mamograf́ıa tendránrealmente cáncer de mama

  • Un poco de teoŕıa de la probabilidad La regla de Bayes Clasificador Naive Bayes Naive Bayes para clasificación de textos Naive Bayes en scikit-learn (naive bayes)

    Clasificador Naive Bayes

  • Un poco de teoŕıa de la probabilidad La regla de Bayes Clasificador Naive Bayes Naive Bayes para clasificación de textos Naive Bayes en scikit-learn (naive bayes)

    Clasificadores Naive Bayes

    • Seguimos ahora abordando un problema de clasificaciónclásico: conjunto de atributos o caracteŕısticas A1, . . . ,Ancuyos valores determinan un valor en un conjunto finito C deposibles “clases” o “categoŕıas”

    • Atención: de momento supondremos que los atributos soncategóricos: toman valores discretos

    • Tenemos un conjunto de entrenamiento D con una serie detuplas de valores concretos para los atributos, junto con suclasificación

    • Queremos aprender un clasificador tal que clasifique nuevasinstancias 〈a1, . . . , an〉

  • Un poco de teoŕıa de la probabilidad La regla de Bayes Clasificador Naive Bayes Naive Bayes para clasificación de textos Naive Bayes en scikit-learn (naive bayes)

    Clasificadores Naive Bayes

    • Podemos diseñar un modelo probabiĺıstico para un problemade clasificación de este tipo, tomando los atributos A1, . . . ,Any la clasificación C como variables aleatorias

    • El valor de clasificación asignado a una nueva instancia〈a1, . . . , an〉, notado cNB vendrá dado por la clase másprobable para esa combinación de valores de los atributos:

    argmaxc∈V

    P(C = c |A1 = a1, . . . ,An = an)

    • Aplicando el teorema de Bayes podemos escribir:

    cNB = argmaxc∈C

    P(A1 = a1, . . . ,An = an|C = c)P(C = c)

    • Nótese que podemos prescindir de la constante denormalización (¿por qué?)

  • Un poco de teoŕıa de la probabilidad La regla de Bayes Clasificador Naive Bayes Naive Bayes para clasificación de textos Naive Bayes en scikit-learn (naive bayes)

    Clasificadores Naive Bayes

    • Necesitamos ahora estimar (aprender) las probabilidades quese usan en la fórmula anterior:

    • P(c) y P(A1 = a1, . . . ,An = an|C = c) por cada clase ycombinación de valores de los atributos

    • Problema: necesitaŕıamos una gran cantidad de datos paraestimar adecuadamente las probabilidad de cualquiercombinación de valores de los atributos en cada clase

    • Idea clave: simplificar el aprendizaje suponiendo que losatributos son (mútuamente) condicionalmente independientesdado el valor de clasificación (de ah́ı lo de “naive”)

    • En ese caso, tomamos como valor de clasificación:

    cNB = argmaxc∈C

    P(C = c)∏

    i

    P(Ai = ai |C = c)

  • Un poco de teoŕıa de la probabilidad La regla de Bayes Clasificador Naive Bayes Naive Bayes para clasificación de textos Naive Bayes en scikit-learn (naive bayes)

    Estimación de probabilidades Naive Bayes• Para el proceso de aprendizaje, sólo tenemos que estimar las

    probabilidades P(C = c) (probabilidades a priori) yP(A = a|C = c) (probabilidades condicionadas). Son muchasmenos que en el caso general.

    • Mediante cálculo de sus frecuencias en el conjunto deentrenamiento, obtenemos estimaciones de máximaverosimilitud de esas probabilidades:

    P(C = c) =n(C = c)

    NP(A = v |C = c) = n(A = v ,C = c)

    n(C = c)

    donde N es el número total de ejemplos, n(C = c) es elnúmero de ejemplos clasificados como c y n(A = v ,C = c) esel número de ejemplos clasificados como c cuyo valor en elatributo A es v .

    • A pesar de su aparente sencillez, los clasificadores Naive Bayestienen un rendimiento comparable al de los árboles dedecisión, las reglas o las redes neuronales

  • Un poco de teoŕıa de la probabilidad La regla de Bayes Clasificador Naive Bayes Naive Bayes para clasificación de textos Naive Bayes en scikit-learn (naive bayes)

    Clasificador Naive Bayes: un ejemplo

    Unos biólogos que exploraban la selva del Amazonas han descubierto una nuevaespecie de insectos, que bautizaron con el nombre de lepistos. Desgraciadamente, handesaparecido y la única información que disponemos del nuevo insecto viene dada porel siguiente conjunto de ejemplos encontrados en un cuaderno de notas, en los que seclasifican una serie de muestras de individuos en función de ciertos parámetros comosu color, el tener alas, su tamaño y su velocidad:

    color alas tama~no velocidad lepisto

    E1 negro sı́ peque~no alta +E2 amarillo no grande media -E3 amarillo no grande baja -E4 blanco sı́ medio alta +E5 negro no medio alta -E6 rojo sı́ peque~no alta +E7 rojo sı́ peque~no baja -E8 negro no medio media -E9 negro sı́ peque~no media -E10 amarillo sı́ grande media -

  • Un poco de teoŕıa de la probabilidad La regla de Bayes Clasificador Naive Bayes Naive Bayes para clasificación de textos Naive Bayes en scikit-learn (naive bayes)

    Clasificador Naive Bayes: un ejemplo

    • Aprendizaje: estimación de las probabilidades• Probabilidades a priori:

    • P(Lepisto = +) = 3/10• P(Lepisto = −) = 7/10

    • Algunas probabilidades condicionadas:• P(Color = blanco|Lepisto = +) = 1/3• P(Vel = alta|Lepisto = +) = 3/3• P(Alas = no|Lepisto = −) = 4/7• P(Tam = grande|Lepisto = −) = 3/7• . . .

  • Un poco de teoŕıa de la probabilidad La regla de Bayes Clasificador Naive Bayes Naive Bayes para clasificación de textos Naive Bayes en scikit-learn (naive bayes)

    Clasificador Naive Bayes: un ejemplo

    • Supongamos que queremos predecir si un animal amarillo, sinalas, pequeño y con velocidad alta es un lepisto.

    • Según el clasificador Naive Bayes (simplificando notación):

    cNB = argmaxc∈{+,−}

    P(c)P(amarillo|c)P(no|c)P(pequeo|c)P(alta|c)

    • Las probabilidades que se necesitan para esta predicción son:• p(+) = 3/10, p(−) = 7/10, p(amarillo|+) = 0/3,

    p(amarillo|−) = 3/7, p(no|+) = 0/3, p(no|−) = 4/7,p(pequeño|+) = 2/3, p(pequeño|−) = 2/7, p(alta|+) = 3/3y p(alta|−) = 1/7

  • Un poco de teoŕıa de la probabilidad La regla de Bayes Clasificador Naive Bayes Naive Bayes para clasificación de textos Naive Bayes en scikit-learn (naive bayes)

    Clasificador Naive Bayes: un ejemplo

    • Calculamos ahora la predicción:• P(+)P(amarillo|+)P(no|+)P(pequeño|+)P(alta|+) = 0• P(−)P(amarillo|−)P(no|−)P(pequeño|−)P(alta|−) = 0,007

    • La predicción del clasificador es la clasificación con mayorprobabilidad a posteriori, en este caso la respuesta es − (no esun lepisto)

    • Recordar: los números anteriores no son probabilidades,aunque śı proporcionales a ellas (por eso basta para hacer lapredicción)

  • Un poco de teoŕıa de la probabilidad La regla de Bayes Clasificador Naive Bayes Naive Bayes para clasificación de textos Naive Bayes en scikit-learn (naive bayes)

    Suavizado de Laplace

    • Problema en la estimaciones:• Probabilidades nulas o muy bajas, por ausencia en el conjunto

    de entrenamiento de algunos valores de atributos en algunascategoŕıas

    • Sobreajuste

    • En nuestro ejemplo:• P(Color = amarillo|Lepisto = +) = 0, y eso hace que

    cualquier animal amarillo tenga probabilidad 0 en la clase +• Se debe a que en el conjunto de entrenamiento no hay lepistos

    amarillos, pero podŕıan existir

    • Idea del suavizado: se supone que además de los del conjuntode entrenamiento, hay k ejemplos “virtuales” en cada clase cpor cada posible valor de cada atributo A

  • Un poco de teoŕıa de la probabilidad La regla de Bayes Clasificador Naive Bayes Naive Bayes para clasificación de textos Naive Bayes en scikit-learn (naive bayes)

    Suavizado de Laplace

    • Por tanto, la siguiente fórmula expresa cómo estimar lasprobabilidades condicionales usando suavizado de Laplace:

    P(A = v |C = c) = n(A = v ,C = c) + kn(C = c) + k|A|

    donde k es un parámetro fijado y |A| es el número de posiblesvalores del atributo |A|.

    • Usualmente k = 1, pero podŕıan tomarse otros valores(incluso no enteros)

    • Elección de k : experimentando con los distintos rendimientossobre un conjunto de validación

  • Un poco de teoŕıa de la probabilidad La regla de Bayes Clasificador Naive Bayes Naive Bayes para clasificación de textos Naive Bayes en scikit-learn (naive bayes)

    Clasificador Naive Bayes: un ejemplo con suavizado

    • Calculemos la misma predicción de antes (animal amarillo, sinalas, pequeño, alta velocidad), pero ahora con suavizado

    • Las probabilidades que se necesitan para esta predicción son:• p(+) = 3/10, p(−) = 7/10, p(amarillo|+) = (0 + 1)/(3 + 4),

    p(amarillo|−) = (3 + 1)/(7 + 4), p(no|+) = (0 + 1)/(3 + 2),p(no|−) = (4 + 1)/(7 + 2), p(pequeño|+) = (2 + 1)/(3 + 3),p(pequeño|−) = (2 + 1)/(7 + 3), p(alta|+) = (3 + 1)/(3 + 3)y p(alta|−) = (1 + 1)/(7 + 3)

    • Calculo de la predicción:• P(+)P(amarillo|+)P(no|+)P(pequeño|+)P(alta|+) =

    0,002857• P(−)P(amarillo|−)P(no|−)P(pequeño|−)P(alta|−) =

    0,008484

    • Por tanto, la predicción del clasificador con suavizado vuelve aser − (no es un lepisto)

  • Un poco de teoŕıa de la probabilidad La regla de Bayes Clasificador Naive Bayes Naive Bayes para clasificación de textos Naive Bayes en scikit-learn (naive bayes)

    Detalles técnico sobre las predicciones: log-probabilidades

    • Aún con suavizado, al realizar las estimaciones, los productosfinales pueden resultar excesivamente bajos

    • Una mejora técnica, intentado evitar productos muy bajos:usar logaritmos de las probabilidades.• Los productos se transforman en sumas

    cN̂B = argmaxc∈C

    [log(P(c)) +∑

    i

    log(P(Ai = ai |c))]

    • El valor de clasificación resultante será el mismo, ya que ellogaritmo es una función monótona.

  • Un poco de teoŕıa de la probabilidad La regla de Bayes Clasificador Naive Bayes Naive Bayes para clasificación de textos Naive Bayes en scikit-learn (naive bayes)

    Naive Bayes para clasificación de textos

  • Un poco de teoŕıa de la probabilidad La regla de Bayes Clasificador Naive Bayes Naive Bayes para clasificación de textos Naive Bayes en scikit-learn (naive bayes)

    Clasificación de documentos

    • El problema de clasificar documentos:• Dado un documento D y un conjunto C de categoŕıas

    documentales (o temas), encontrar la clase c ∈ C a la quepertenece D.

    • Tiene numerosas aplicaciones:• Filtros anti-spam• Control de contenidos infantiles• Clasificación automática de correos• Detección de sentimientos y opiniones• Presentación de resultados en recuperación de la

    información,. . .

    • Es un problema de aprendizaje: supondremos que tenemos unconjunto entrenamiento o corpus (en este caso, textos yaclasificados)

  • Un poco de teoŕıa de la probabilidad La regla de Bayes Clasificador Naive Bayes Naive Bayes para clasificación de textos Naive Bayes en scikit-learn (naive bayes)

    El modelo “bag of words”

    • Simplificación: considerar un documento como unmulticonjunto (o “bolsa”) de palabras, en el que sólo tenemosen cuenta el número de veces que ocurre cada palabra.

    • Ignoramos el orden en el que aparecen (y en particular lasrelaciones de proximidad entre palabras, los contextos, etc.)• Ejemplo: “A Juan le gusta Patricia” y “A Patricia le gusta

    Juan” son tratados exactamente igual

    • Medimos la relevancia de cada palabra en el texto por elnúmero de veces que ocurre

    • Ejemplo:• “Juan quiere comprar un coche. Ana no quiere comprar ningún

    coche.”• Como diccionario: {Juan:1, quiere: 2, comprar: 2,un:1, coche: 2, Ana: 1, no:1, ningún: 1}

    • O como vector: (1,2,2,1,2,1,1,1) (fijando un ordenposicional impĺıcito para cada palabra)

  • Un poco de teoŕıa de la probabilidad La regla de Bayes Clasificador Naive Bayes Naive Bayes para clasificación de textos Naive Bayes en scikit-learn (naive bayes)

    Representación vectorial

    • Corpus: conjunto de documentos• Vocabulario: todas las palabras que aparecen en el corpus

    • En la práctica no se consideran todas las palabras• Eliminación de palabras sin contenido semántico (stop words)• Reducción de palabras a su ráız (stemming)

    • Fijado un orden en el vocabulario, un texto T se puede vercomo el vector (v1, v2, . . . , vn), donde vi es el número de vecesque aparece en T la palabra i-ésima del vocabulario.

  • Un poco de teoŕıa de la probabilidad La regla de Bayes Clasificador Naive Bayes Naive Bayes para clasificación de textos Naive Bayes en scikit-learn (naive bayes)

    Clasificación con Naive Bayes Multinomial

    • Fijamos un vocabulario de referencia:• Dado el documento D a clasificar devolver cNB como

    clasificación de D, donde cNB se define:

    cnb = argmaxc∈C

    P(c|D) = argmaxc∈C

    P(c)∏

    1≤k≤mP(tk |c)ntk

    • Donde t1, . . . , tm son los términos del vocabulario queaparecen en el documento

    • y nt el número de veces que el término t aparece en eldocumento

    • Para evitar desbordamientos por números muy bajos, se sueleusar la siguiente versión, equivalente, con logaritmos:

    cN̂B = argmaxc∈C

    logP(c) + ∑1≤k≤m

    ntk logP(tk |c)

    • Como ya sabemos, las probabilidades se obtienen como

    estimaciones a partir del conjunto de entrenamiento o corpus

  • Un poco de teoŕıa de la probabilidad La regla de Bayes Clasificador Naive Bayes Naive Bayes para clasificación de textos Naive Bayes en scikit-learn (naive bayes)

    Estimación de las probabilidades

    • P(c) se estima como NcN , donde Nc es el número dedocumentos de la categoŕıa c y N el número total dedocumentos en el conjunto de entrenamiento.

    • P(t|c) se estima como Tc,t∑s∈V Tc,s

    , la proporción de ocurrencias

    de t en todos los documentos de la categoŕıa c (respecto detodas las ocurrencias de todos los términos del vocabulario)

    • Para evitar que muchas de estas probabilidades sean 0, seaplica un suavizado de Laplace:

    P(t|c) = Tc,t + 1∑s∈V (Tc,s + 1)

    =Tc,t + 1∑

    s∈V Tc,s + |V |

  • Un poco de teoŕıa de la probabilidad La regla de Bayes Clasificador Naive Bayes Naive Bayes para clasificación de textos Naive Bayes en scikit-learn (naive bayes)

    Naive Bayes Multinomial para clasificación de texto

    C las clases, D el conjunto de entrenamiento yd el documento a clasificar

    EntrenaNB(C,D)1. V ← vocabulario que se extrae de D,2. N ← número de documentos de D3. Para cada clase c en C, hacer:

    3.1 Nc ← el número de documentos en la clase c,3.2 prior[c] ← Nc/N,3.3 Textoc ← concatenación de los documentos de la clase c3.4 Para cada término t en V, hacer:

    3.4.1 T (c, t) ← número de ocurrencias de t en Textoc3.5 Tc ← la suma de todos los T (c, t),3.6 Para cada término t en V, hacer:

    3.6.1 condprob[c,t] ← (T (c, t) + 1)/(Tc + |V |)4. Devolver V, prior y condprob

    ClasificaNB(C,V, prior, condprob, d)1. Para cada clase c en C, hacer:

    1.1 score[c] ← log(prior[c])1.2 Para cada término t en V, hacer:

    1.2.1 nt ← número de veces que aparace t en d1.2.2 incrementar score[c] con nt · log(condprob[c,t])

    2. Devolver la clase c para la que score[c] sea máximo

  • Un poco de teoŕıa de la probabilidad La regla de Bayes Clasificador Naive Bayes Naive Bayes para clasificación de textos Naive Bayes en scikit-learn (naive bayes)

    Un ejemplo con Naive Bayes Multinomial

    (Manning, Raghavan & Schütze, ejemplo 13.1) Supongamos unproblema de clasificación de documentos en el que el vocabularioconsiderado es {Chino, Peḱın, Shanghai, Macao, Tokyo, Japón}.Existen dos categoŕıas posibles: la de los documentos que hablande China (ch), y la de los que hablan de Japón (j). Como conjuntode entrenamiento contamos con los siguientes documentos:

    • D1: “Chino Peḱın Chino”, categoŕıa ch.• D2: “Chino Chino Shanghai”, categoŕıa ch.• D3: “Chino Macao”, categoŕıa ch.• D4: “Tokyo Japón Chino”, categoŕıa j .

    ¿Cómo clasificaŕıa el método Naive Bayes Multinomial (conestimación suavizada) el nuevo documento D5 “Chino Chino ChinoTokyo Japón”?

  • Un poco de teoŕıa de la probabilidad La regla de Bayes Clasificador Naive Bayes Naive Bayes para clasificación de textos Naive Bayes en scikit-learn (naive bayes)

    Un ejemplo con Naive Bayes Multinomial

    • Estimación de las probabilidades (a priori) de cada clase:

    P(ch) =3

    4P(j) =

    1

    4

    • Estimación de las probabilidades de cada palabra (sólomostramos las que necesitamos para clasificar el documento):

    P(Chino|c) = 5 + 18 + 6

    =3

    7P(Chino|j) = 1 + 1

    3 + 6=

    2

    9

    P(Tokyo|c) = 0 + 18 + 6

    =1

    14P(Tokyo|j) = 1 + 1

    3 + 6=

    2

    9

    P(Japon|c) = 0 + 18 + 6

    =1

    14P(Japon|j) = 1 + 1

    3 + 6=

    2

    9

  • Un poco de teoŕıa de la probabilidad La regla de Bayes Clasificador Naive Bayes Naive Bayes para clasificación de textos Naive Bayes en scikit-learn (naive bayes)

    Un ejemplo con Naive Bayes Multinomial

    Clasificamos el documento D5 (en este caso no usamoslogaritmos):

    • Categoŕıa ch para D5: 34 · (37 )

    3 · 114 ·1

    14 = 0,0003

    • Categoŕıa j para D5: 14 · (29 )

    3 · 29 ·29 = 0,0001

    Luego el método Naive Bayes multinomial clasifica el documentoD5 como de la categoŕıa de los que hablan de China

  • Un poco de teoŕıa de la probabilidad La regla de Bayes Clasificador Naive Bayes Naive Bayes para clasificación de textos Naive Bayes en scikit-learn (naive bayes)

    Detección de SPAM con Naive Bayes clásico

    • Problema: Decidir si un correo electrónico es SPAM o no,basándonos en un conjunto previo de correos clasificadoscomo SPAM o como HAM• En este caso el corpus está formado por los correos

    electrónicos previamente clasificados

    • Dado un correo nuevo, consideramos la variable aleatoria Yrepresentando el hecho de que dicho correo sea SPAM

    • Consideramos también un conjunto de n variables aleatorias,Xi , asociadas a ciertas caracteŕısticas del correo electrónico(p.ej. aparición de ciertas palabras, remitente, mayúsculas..)• Se asume que las variables Xi son independientes entre śı,

    condicionadas a la variable Y• En este caso aplicaremos Naive Bayes “clásico”, visto en el

    primer cuatrimestre (es decir, no basado en contar ocurrencias,como es el caso del multinomial)

    • Es muy importante una buena selección de caracteŕısticas

  • Un poco de teoŕıa de la probabilidad La regla de Bayes Clasificador Naive Bayes Naive Bayes para clasificación de textos Naive Bayes en scikit-learn (naive bayes)

    Detección de SPAM con Naive Bayes

    • Según Naive Bayes, se clasifica el nuevo correo como SPAMen función del valor de

    ynb = argmaxy∈{spam,ham}

    [log(P(Y = y)) +∑

    1≤i≤n

    log(P(X = xi |Y = y))]

    • El corpus se utiliza para estimar las probabilidades:

    P(Y = spam) =S

    S + HP(Y = ham) =

    H

    S + H

    P(X = x |Y = spam) = SxS

    P(x |Y = ham) = HxH

    donde Sx es el número de correos SPAM del conjunto deentrenamiento que tiene la caracteŕıstica X = x y Hx es elnúmero de correos HAM del conjunto de entrenamiento con lacaracteŕıstica X = x

    • Estas estimaciones suelen suavizarse

  • Un poco de teoŕıa de la probabilidad La regla de Bayes Clasificador Naive Bayes Naive Bayes para clasificación de textos Naive Bayes en scikit-learn (naive bayes)

    Naive Bayes Multinomial vs Bernoulli• Nótese que el modelo multinomial no es el mismo que Naive

    Bayes clásico (o Bernoulli)• Multinomial:

    • Tiene en cuenta el número de ocurrencias de un término en eldocumento

    • Podŕıa usarse con cualquier representación vectorial deldocumento basada en el número de ocurrencias de lostérminos (tf-idf, por ejemplo)

    • La ausencia de términos no influye en la clasificación• Bernoulli:

    • Tiene en cuenta el valor que pueda tomar una determinadacaracteŕıstica del documento

    • Por ejemplo, si un término ocurre o no en el documento(influye tanto la presencia como la ausencia)

    • No tiene en cuenta las repeticiones• En ambos casos, se asume independencia entre los términos

    que aparecen en una clase, y no se tienen en cuentacuestiones posicionales

  • Un poco de teoŕıa de la probabilidad La regla de Bayes Clasificador Naive Bayes Naive Bayes para clasificación de textos Naive Bayes en scikit-learn (naive bayes)

    Naive Bayes en scikit-learn (naive bayes)

  • Un poco de teoŕıa de la probabilidad La regla de Bayes Clasificador Naive Bayes Naive Bayes para clasificación de textos Naive Bayes en scikit-learn (naive bayes)

    Naive Bayes: BernoulliNB, MultinomialNB yGaussianNB

    • Dependiendo de la distribución que asume el modelo, de lascaracteŕısticas en función de las clases:• BernoulliNB• MultinomialNB• GaussianNB

    • Mismos métodos y parámetros:• Métodos fit, predict, predict proba y score• alpha: suavizado

  • Un poco de teoŕıa de la probabilidad La regla de Bayes Clasificador Naive Bayes Naive Bayes para clasificación de textos Naive Bayes en scikit-learn (naive bayes)

    Parámetros, Fortalezas y debilidades de Naive Bayes

    • Parámetro:• Parámetro de suavizado: cuanto mayor, más suavizado y

    menos sobreajuste

    • Fortalezas y debilidades• En cierto modo, pros y contras parecidos a los modelos lineales• Se entrenan rápido y predicen rápido• Fáciles de entender• Funcionan bien con dimensiones grandes

  • Un poco de teoŕıa de la probabilidad La regla de Bayes Clasificador Naive Bayes Naive Bayes para clasificación de textos Naive Bayes en scikit-learn (naive bayes)

    Bibliograf́ıa

    • Russell, S. y Norvig, P. Artificial Intelligence (A modernapproach) (Third edition) (Prentice Hall, 2003) [Figurastomadas de este libro]• Sec. 20: “Learning probabilistic models”

    • Aggarwal, C.C.. Data Mining: The Textbook (Springer, 2015)• Cap. 10: “data classification”

    • Andreas C. Müller y Sarah GuidoIntroduction to Machine Learning with Python(O’Really, 2017)• Caṕıtulo 2.

    Un poco de teoría de la probabilidadLa regla de BayesClasificador Naive BayesNaive Bayes para clasificación de textosNaive Bayes en scikit-learn (naive_bayes)