You are on page 1of 3

INVESTIGAR EL USO DE NAIVE BAYES

EN EL PROGRAMA R
Arias Gálvez Vicente Orlando
Universidad Técnica Estatal de Quevedo
vicente.arias2013@uteq.edu.ec


Abstract—.The purpose of this document is to present the "Supongamos que un ingeniero esta buscando agua en un
function of Naive Bayes to make predictions in categorical terreno. A priori, se sabe que la probabilidad de que haya agua
variables and prove its usefulness in an example. en dicha finca es del 60%. No obstante, el ingeniero quiere
asegurarse mejor y decide realizar una prueba que permite
Index Terms—. Naive Bayes, variables categoricas detectar la presencia o no de agua. Dicha prueba tiene una
fiabilidad del 90%, es decir, habiendo agua, la detecta en el 90%
I. INTRODUCCIÓN de los casos. También, cuando realmente no hay agua, la prueba

N aive Bayes se trata de una técnica de clasificación y


predicción supervisada que construye modelos que
predicen la probabilidad de posibles resultados.
predice que no hay agua en el 90% de los casos.
Por tanto, pudiendo hacer uso de dicha prueba ¿qué es más
probable, que haya agua o que no?" [2]
En este documento se presentará la función de Naive Bayes
para realizar predicciones en variables categóricas y probar su Como vemos, en el enunciado tenemos una probabilidad a
utilidad en un ejemplo. priori (60% de que haya agua) que se ve afectada por otra
probabilidad (el 90% de acierto de la prueba). Para resolver esta
Objetivo problemática, Thomas Bayes nos dió la solución. La
 Determinar la función Naive Bayes para realizar probabilidad de que se dé un sucedo (que haya agua) habiendo
predicciones en variables categóricas. sucedido otro que influye en el anterior (que la prueba diga que
 Comprobar el funcionamiento de la función Nave sí hay agua), se define con la siguiente fórmula: [2]
Bayes en el programa R.

II. MARCO CONCEPTUAL


A. Naive Bayes Por tanto, para resolver el problema, por un lado, habría que
calcular la probabilidad de que hubiese agua sabiendo que la
Se trata de una técnica de clasificación y predicción supervisada
prueba ha detectado agua (P(Agua|Prueba+)); y por otro lado,
que construye modelos que predicen la probabilidad de posibles
debemos calcular la probabilidad de que no hubiese agua
resultados. [1]
sabiendo que la prueba no ha detectado agua
(P(NoAgua|Prueba-)).
Complejidad
También se debe tener en cuenta que la probabilidad de que la
 La formulación ingenua de Bayes reduce drásticamente la prueba salga positiva, es la suma de las probabilidades de todos
complejidad del clasificador bayesiano, ya que en este caso los casos posibles donde pueda salir la prueba positiva. Se debe
solo se requiere la probabilidad previa (un vector hacer igual con P(Prueba-):
dimensional) de la clase, y las n probabilidades
condicionales de cada atributo dada la clase (matrices 𝑃(𝑃𝑟𝑢𝑒𝑏𝑎+) = 𝑃(𝑃𝑟𝑢𝑒𝑏𝑎 + |𝐴𝑔𝑢𝑎) · 𝑃(𝐴𝑔𝑢𝑎) + 𝑃(𝑃𝑟𝑢𝑒𝑏𝑎
bidimensionales) [1] + |𝑁𝑜𝐴𝑔𝑢𝑎) · 𝑃(𝑁𝑜𝐴𝑔𝑢𝑎).
 El requisito de espacio se reduce de exponencial a lineal en 𝑃(𝑃𝑟𝑢𝑒𝑏𝑎+) = 0,9 · 0,6 + 0,1 · 0,4 = 0,58
el número de atributos [1]
 El cálculo de la parte posterior se simplifica enormemente, 𝑃(𝑃𝑟𝑢𝑒𝑏𝑎−) = 𝑃(𝑃𝑟𝑢𝑒𝑏𝑎 − |𝐴𝑔𝑢𝑎) · 𝑃(𝐴𝑔𝑢𝑎) + 𝑃(𝑃𝑟𝑢𝑒𝑏𝑎
− |𝑁𝑜𝐴𝑔𝑢𝑎) · 𝑃(𝑁𝑜𝐴𝑔𝑢𝑎).
ya que para calcularlo (no normalizado) solo se requieren 𝑃(𝑃𝑟𝑢𝑒𝑏𝑎−) = 0,1 · 0,6 + 0,9 · 0,4 = 0,42
n multiplicaciones. [1]
𝑃(𝐴𝑔𝑢𝑎|𝑃𝑟𝑢𝑒𝑏𝑎+) = (𝑃(𝑃𝑟𝑢𝑒𝑏𝑎 + |𝐴𝑔𝑢𝑎) · 𝑃(𝐴𝑔𝑢𝑎) ) / 𝑃(𝑃𝑟𝑢𝑒𝑏𝑎+)
Teorema de Bayes = (0,9 · 0,6) / 0,58 = 𝟎, 𝟗𝟑
Está basada en el Teorema de Bayes, también conocido como 𝑃(𝑁𝑜𝐴𝑔𝑢𝑎|𝑃𝑟𝑢𝑒𝑏𝑎−)
= ( 𝑃(𝑃𝑟𝑢𝑒𝑏𝑎 − |𝑁𝑜𝐴𝑔𝑢𝑎)
teorema de la probabilidad condicionada. Veamos un ejemplo · 𝑃(𝑁𝑜𝐴𝑔𝑢𝑎) ) / 𝑃(𝑃𝑟𝑢𝑒𝑏𝑎−) = (0,9 · 0,4) / 0,42
antes de expresar sus fórmulas para un mejor entendimiento del = 0,8
mismo:
Debemos quedamos con el resultado que refleje más
probabilidad. En este caso, es más probable que haya agua.
Nota: P(Prueba+|Agua)=0,9, como se dice en el enunciado. Es
decir, en los casos que se ha visto que finalmente había agua, la
prueba ha acertado en el 90% de esos casos.

III. DESCRIPCIÓN METODOLÓGICA PARA


REALIZAR PREDICCIONES EN VARIABLES
CATEGÓRICAS
A continuación se presentara un ejemplo de predicciones Paso 2
Como segundo paso creamos las probabilidades con los
usando el modelo de Naive Bayes.
“DATOS HISTÓRICOS” para ello cargamos la librería
A. Ejemplo library(e1071) que es una librería que tiene funciones para el
análisis de clase latente, transformada de Fourier de corta
Predecir Clientes con Naive Bayes
duración, clustering difuso, máquinas de vectores de soporte,
Una empresa quiere llamar a sus clientes para ofrecerles un cálculo de ruta más corta, agrupamiento en bolsas, clasificador
nuevo producto, pero quiere contactar únicamente a los clientes de Bayes ingenuo entre otras.
con mayor probabilidad de compra, para ahorrar en el costo por Posteriormente se aplica la siguiente función para calcular las
llamada. probabilidades de nuestros datos históricos:
Si se tienen DATOS HISTÓRICOS (de campañas anteriores o
pruebas pilotos) de clientes que SI aceptaron y clientes que NO Probabilidades <- naiveBayes(Compra ~., data=data[-1]) #
aceptaron comprar un producto cuando fueron contactados, y crea tabla Probabilidades
también se tienen registros de NUEVOS CLIENTES a los que
se le quiere calcular la probabilidad de compra, teniendo algo # Crea Probabilidades con Datos_Historicos y asigna
como: [3] predicción a Nuevos_Clientes
library(e1071) # librerias de naiveBayes
DATOS HISTÓRICOS Probabilidades <- naiveBayes(Compra ~., data=data[-1]) #
crea tabla Probabilidades

NUEVOS CLIENTES

Paso 1
Como primer paso importamos los “DATOS HISTÓRICOS”
en el programa R.

#Importación del conjunto de datos


fname="C:\\Users\\Usuario\\Escritorio\\Datos Historicos.csv"
data=read.table(fname,sep=";",dec=",",header=TRUE)
data
Nota: El símbolo de equivalencia o tilde seguido de un punto
(~.) indica que la variable Compra está definida por todas
variables de la tabla Datos_Historicos.
Paso 3
Creamos la tabla de los “NUEVOS CLIENTES” con las
siguientes funciones:
Idcliente =c(111,222,333)
EstadoCivil =c("soltero","casado","soltero")
Profesion =c("empresario","desempleado","empleado")
Universitario =c("no","si","no")
TieneVehiculo=c("si","no","no")
Nuevos_Clientes =
data.frame(Idcliente,EstadoCivil,Profesion,Universitario,Tiene
Vehiculo)

Paso 4
Realizamos la predicción para nuestros nuevos clientes:
Prediccion <- predict (Probabilidades ,Nuevos_Clientes); #
crea prediccion a datos nuevos
Prediccion
predict(Probabilidades, Nuevos_Clientes, type = "raw")

predict(Probabilidades, Nuevos_Clientes, type = "class")

Por ultimo agregamos los datos de predicción que nos salieron


a nuestra de los nuevos clientes

IV. CONCLUSIONES
 Se determinó la función para realizar la función de
Naive Bayes para realizar predicciones a las variables
categóricas.
 Se comprobó con éxito el funcionamiento de la
función Naive Bayes en el programa R.

V. REFERENCIAS

[1] L. E. Sucar, «Probabilistic Graphical Models, Springer 2,»


Capitulo 4, 2015.
[2] B. Sucar, «Multi-label Classification,» de Clasificador
Naïve Bayes, 2014, pp. 14-12.
[3] E. Santana, «Predecir Clientes con Bayes Ingenuo,»
DataMinig con R, 2014.

You might also like