¿Sabías que muchos autores conocidos han publicado libros con otros nombres?
Utilizando la clasificación de autor / texto como ejemplo, así es como aplicaríamos Naive Bayes y por qué se necesita Gaussian Naive Bayes para datos continuos:
Comenzamos asignando la misma probabilidad de autoría a cada autor. Si hay dos autores posibles, cada uno tiene una probabilidad del 50%.
- Mi evaluación anual se acerca. ¿Qué debo hacer para prepararme?
- Me estoy mudando a Hyderabad. Mi oficina estará en la ciudad de alta tecnología. ¿Puede por favor aconsejar una buena zona habitable con buenas escuelas alrededor?
- Soy un indio de origen Malayali que trabajó en Dubai durante los últimos 9 años. Perdí mi trabajo y me veo obligado a regresar a la India (Trivandrum) y encontrar un trabajo para sobrevivir. ¿Cuál sería la indiferencia que podría imaginar?
- Si construí un juego de Unity3d, pero el proyecto en sí se borró, ¿es posible restaurarlo de nuevo a la unidad?
- Mi novio dijo que me odia porque lo dejé por unos días, tres veces, sin ningún motivo, ¿qué debo hacer? ¿Es realmente mi error?
P (autor = asimov) = 50%
P (autor = jkr) = 50%
Luego observamos diferentes atributos en los datos y calculamos la probabilidad de cada autor en función de la frecuencia. Así es como modelaríamos las probabilidades condicionales para la longitud promedio de la oración del atributo:
- Probabilidad de oraciones cortas y autor Isaac Asimov
- P (asimov | short) = # oraciones cortas asimov / # oraciones asimov
- por ejemplo, 50/100 = .5
- Probabilidad de oraciones cortas y autor JK Rowling
- P (jkr | short) = # oraciones jkr cortas / # oraciones jkr
- por ejemplo, 250/300 = .83
- Probabilidad de oraciones largas y autor Isaac Asimov
- P (long | asimov) = # oraciones asimov largas / # oraciones asimov
- por ejemplo, 50/100 = .5
- Probabilidad de oraciones largas y autor JK Rowling
- P (long | jkr) = # oraciones jkr largas / # oraciones jkr
- por ejemplo, 50/300 = .17
Ahora podemos usar el Teorema de Bayes para hacer una predicción para un texto nunca antes visto. Si tuviéramos un texto con una longitud de oración promedio corta, podríamos calcular:
asimov = P ((asimov | corto) * P (autor = asimov) = .5 * .5 = .25
jkr = P (jkr | corto) * P (autor = jkr) = 83 * .5 = .42
El autor que tenga el valor más alto es el que elige nuestro modelo. Para obtener la probabilidad de cada uno podemos normalizarlos así:
P (asimov | corto) = asimov / (asimov + jkr) = .25 / .67 = 37%
P (jkr | corto) = jkr / (asimov + jkr) =. 42 / .67 = 63%
Tenga en cuenta que si tuviéramos otro atributo como la frecuencia de la palabra “dragón”, calcularíamos las probabilidades condicionales de la misma manera y las multiplicaríamos todas juntas. Naive Bayes se llama “ingenuo” porque supone que cada variable que le damos al modelo es independiente de las otras variables. No aprende que tener ciertas combinaciones de valores de atributos sugiere fuertemente a un autor u otro. En simples Bayes ingenuos, el modelo no transmite pesos o condicionamientos a partir del cálculo de las probabilidades de un atributo a otro.
Ahora, ¿ves un lugar para insertar un rango continuo de números en estos cálculos de probabilidad?
P (asimov | short) = # oraciones cortas asimov / # oraciones asimov
No, porque con Bayes clásico, no podemos ingresar la frecuencia de la palabra “dragón” por capítulo representado por algún vector TF_IDF. Bayes, por definición, encuentra probabilidades para una lista binaria o discreta de valores de atributos. Bayes clásico simplemente no tiene reglas establecidas para tratar con un vector de entrada de datos.
Gaussian Bayes, por otro lado, es un método diseñado específicamente para proporcionar un método de normalizar datos continuos en valores a los que podemos aplicar el Teorema de Bayes. Cuando calculamos las probabilidades antes, solo usamos la frecuencia. Para entradas continuas, encontramos la media y la desviación estándar de los valores de entrada v (después de eliminar valores atípicos) para representar las distribuciones.
Calculamos la media y la desviación estándar de cada valor de entrada v para cada autor:
media (v) = 1 / n * suma (v)
Donde n es el número de instancias y v son los valores para un atributo de entrada en nuestros datos de entrenamiento. Podemos calcular la desviación estándar usando la siguiente ecuación:
desviación estándar (v) = sqrt (1 / n * sum (vi-mean (v) ^ 2))
Esta es la raíz cuadrada de las diferencias cuadráticas promedio de cada valor de v menos el valor medio de v, donde n es el número de instancias, sqrt () es la función de raíz cuadrada, sum () es la función de suma, vi es un El valor específico de la variable v para la i-ésima instancia y la media (v) se describió anteriormente, y ^ 2 es el cuadrado.
Ahora podemos usar la función de probabilidad gaussiana (PDF) para hacer predicciones y encontrar las probabilidades de textos invisibles utilizando nuestras entradas de valor continuo.
pdf (v, mean, sd) = (1 / (sqrt (2 * PI) * sd)) * exp (- ((v-mean ^ 2) / (2 * sd ^ 2)))
Donde pdf (v) es el PDF gaussiano, sqrt () es la raíz cuadrada, media y sd son la media y la desviación estándar anterior, PI es la constante matemática infame, exp () es la constante matemática e elevada a potencia (e elevada a -v-mean …) y v es el valor de entrada para la variable de entrada. Luego podemos conectar las probabilidades en la ecuación anterior para hacer predicciones con entradas de valor real.
asimov = P (pdf (información de la oración) | author = asimov) * P (pdf (información de la palabra) | author = asimov) * P (author = asimov)
Donde la información de la oración podría ser un vector que representa patrones de longitud de la oración y la información de la palabra podría ser cualquier información de valor continuo que represente alguna característica de los textos. También podríamos agregar otras entradas interesantes, como vectores que representan patrones de sentimiento a lo largo del texto que serían imposibles de calcular usando los clásicos Naive Bayes.