Evaluación de modelos para la predicción de la Bolsa Humberto Hernandez Ansorena Departamento de Ingeniería Telemática Universidad Carlos III de Madrid Madrid, España Rico Hario Abilowo Hardjono Departamento de Ingeniería Telemática Universidad Carlos III de Madrid Madrid, España [email protected] [email protected] 1. INTRODUCCION La minería de datos consiste en aplicar una serie de técnicas a un conjunto de datos con el objetivo de llegar a tener un conocimiento sobre estos, gracias a los conocimientos sobre estos datos podemos llegar prever lo que puede ocurrir, y así tomar las medidas oportunas. Además de la predicción la minería de datos se utiliza para construir sistemas computacionales que sean capaces de aprender, esto se hace dotando al sistema de una serie de algoritmos y técnicas que imiten la cualidad humana del aprendizaje, obteniendo una serie de conocimientos de experiencia anteriores. Muchas empresas crean bases de datos especialmente diseñadas para procesos de minería de datos, un ejemplo son los supermercados. Los supermercados utilizan la minería de datos con el objetivo de conocer los hábitos de compra de sus clientes, lo ilustraremos con el siguiente ejemplo, un estudio de los supermercados detecto que los viernes había un gran numero de clientes que adquirían a la vez pañales y cerveza, esto se debía a que los viernes venían muchos padres jóvenes al supermercado, cuya perspectiva del fin de semana era quedarse cuidando a sus hijos, viendo la televisión y tomándose unas cervezas. El supermercado tras conocer lo que ocurría el viernes, decidió emplear una estrategia para conseguir incrementar el número de venta de cervezas. La estrategia consistía en colocar las cervezas justo al lado de los pañales. De esta manera ponemos al alcance de cada cliente lo que necesita en cada momento consiguiendo así que su actividad sea efectiva. Todo proyecto de minería de datos debe seguir una serie de pasos, los pasos a seguir son el filtrado de los datos, selección de variables, extracción de conocimientos, interpretación y evaluación de los resultados obtenidos. El filtrado de los datos se utiliza debido a que muchas veces el formato de los mismos no es el ideal, por lo que la mayoría de las ocasiones no es posible aplicar ninguno de los algoritmos de minería sobre los datos en bruto, el proceso de filtrado se realiza de tal forma que se eliminan aquellos datos que son incorrectos, no validos, desconocidos, según las necesidades de los algoritmos que vayamos a emplear, como consecuencia de este filtrado se obtienen muestras o se reducen el numero de valores posibles, la reducción de estos valores se hace por medio de redondeo o clustering. La selección de variables se realiza justo después de que los datos hayan sido procesado, una vez que los datos han sido procesados la cantidad de información obtenida sigue siendo muy elevada, para reducir dicha cantidad de datos se seleccionan aquellos que tengan una determinada característica eligiendo así los atributos o variables mas determinantes de dicho conjunto de datos, esta elección de variables se debe hacer de tal manera que no afecta a los conocimientos obtenidos del proceso de minería. Tenemos dos métodos de selección de características. El primero de los dos métodos se basa en la elección de los mejores atributos del problema, y el otro consiste en buscar variables independientes mediante test de sensibilidad, algoritmos de distancia o heuristicos. La extracción de los conocimientos se realiza mediante el empleo de una técnica de minería, observando así algunos patrones de comportamiento en las variables del problema, o posibles relaciones entre dichas variables. Finalmente pasamos a la interpretación y la evaluación de los resultados, una vez obtenido el modelo, pasamos a conocer si dicho modelo es o no valido, comprobando si las conclusiones obtenidas son validas y satisfactorias. Si obtenemos más de un modelo, debemos compararlos y tomar aquel modelo que se ajuste más a nuestro problema. En el caso de que ninguno de los modelos obtenidos cumpla nuestras expectativas, deberemos realizar cambios en los pasos anteriores para así generar nuevos modelos. 2. TECNICAS DE MINERIA DE DATOS. La minería de datos emplea diferentes técnicas, según el resultado que queramos obtener de nuestro conjunto de datos. Las técnicas empleadas son tres, las cuales describiremos a continuación. Técnicas descriptivas: Las técnicas descriptivas nos proporcionan información sobre las posibles relaciones entre los diferentes datos y sus correspondientes características. Aplicando esta técnica obtenemos información del tipo. Los clientes que compran pañales en supermercado son propensos a comprar cervezas. La combinación de tabaco y alcohol son un factor importante en tiempo de vida de una persona. Los clientes que poseen una bicicleta tienen unas características muy diferentes del resto de clientes. Técnicas predictivas: Las técnicas predictivas se aplican a un conjunto de datos con el objetivo de obtener conocimientos de futuro, las posibles preguntas que se podrían responder utilizando este tipo de conocimientos serian las siguientes. En el caso de un supermercado conocer cuales serian las ventas del año próximo. En el caso de una empresa de seguro conocer el tipo de seguro que podría contratar el cliente X. Clasificación: La clasificación se puede ver como un esclarecimiento de una dependencia, el atributo dependiente nos puede ayudar a determinar ciertas reglas. Por ejemplo en el caso de una clínica los atributos edad, numero de miopías y astigmatismo han determinado aquellos pacientes que han superado la cirugía ocular sin problemas, gracias a esto se ha obtenido una regla que clasifican los casos en positivos o negativos a partir de dichos atributos. Agrupamiento/Segmentación: El agrupamiento (clustering) consiste en detectar grupos de individuos, estos grupos de individuos se diferencian de la clasificación en que no se conoce su número, ni la clase a la que pertenecen. El agrupamiento crea así grupos o racimos (cluster) de datos que se diferencian del resto. Tendencia/Regresión: Tiene como objetivo predecir que ocurrirá en el futro con una determinada variable, para ello se apoyará en otra variable, generalmente el tiempo. 3. WEKA Para el proceso de datos utilizaremos la herramienta de código libre Weka (Waikato Enviroment for Knowledge Análisis). Weka es un conjunto de librerías Java que permiten la extracción y aprendizaje de conocimientos a partir de bases de datos. Weka proporciona una amplia variedad de algoritmos/técnicas para realizar un modelado y que dependen de la naturaleza de los datos de entrada. En nuestro caso, el conjunto de datos presenta una serie de atributos de tipo numérico. Algoritmos de datos numéricos empleados: • Regresión lineal Técnicas de modelado: • M5' Las técnicas de modelado se emplean en la comprensión de sistemas, es decir se obtiene una representación del sistema que le permita imitar su comportamiento. Para ello el modelado emplea agrupamiento, árboles de decisión, y análisis de secuencias/asociaciones. • KStar • RPTree Conocimientos obtenidos gracias a la aplicación de las técnicas: Asociaciones: Una asociación entre dos atributos ocurre cuando la frecuencia de que ambos estén relacionados conjuntamente es relativamente alta. Un ejemplo es el supermercado, donde se comprueba si los pañales y los potitos de bebe se compran conjuntamente. Dependencias: Una dependencia se da cuando un atributo de un conjunto de datos determina valor de otro atributo. A veces este tipo de dependencias no nos aportan ninguna información por lo que no son nada interesantes. Un ejemplo es el siguiente caso, una persona ingresa en maternidad por consiguiente ya sabemos que esa persona es una mujer. A continuación detallaremos el funcionamiento de los algoritmos anteriormente indicados, permitiéndonos así una mejor compresión de los resultados que proporcionan cada uno de ellos: Regresión lineal: Es el esquema de aprendizaje para datos numéricos más sencillo, donde los parámetros solo controlan cómo se seleccionan los atributos que deben ser incluidos en la función lineal. Modela los datos usando una línea recta. Se caracteriza, por tanto, por la utilización de dos variables, una aleatoria, y (llamada variable respuesta), que es función lineal de otra variable aleatoria, x (llamada variable predictora), formándose la ecuación y = a + bx. En esta ecuación la variación de y se asume que es constante, y a y b son los coeficientes de regresión que especifican la intersección con el eje de ordenadas, y la pendiente de la recta, respectivamente. M5' Este algoritmo hace uso de un modelo de regresión lineal conocido como model tree. Se trata de un árbol de decisión usado en predicción numérica que estima el valor de la clase de la instancia cuando se alcanza una de sus hojas. En un principio se construye usando un algoritmo inductivo de árbol de decisión. Posteriormente cuando el model tree es usado para predecir el valor de una instancia el árbol es recorrido hacia abajo hasta llegar a una hoja, para ello se usan los valores de los atributos de la instancia que permiten tomar las decisiones de enrutado en cada nodo. La hoja contendrá un modelo lineal basado en alguno/s de los valores de los atributos de la instancia a partir de los cuales se puede obtener el valor predicho de la misma. Cabe destacar que M5’ puede reemplazar un valor de atributo no determinado, dicho hueco por la media global o la moda del conjunto de datos de entrenamiento antes de que se construyera el árbol. A su vez, permite diferentes tipos de salida: árbol modelo, árbol de decisión sin modelos lineales en las hojas y regresión lineal. Año: Es la variable que determina el año en el cual se ha tomado el correspondiente dato. Esta variable oscila entre 1996 y 2000. Mes: Determina el mes en el cual se toma le dato de la bolsa, su valor esta comprendido entre 1 y 12. Dia: El atributo dia nos muestra el dia dentro del correspondiente mes, en el cual se han hecho las mediciones. Salto-dia: En nuestro fichero de datos las muestras no se han tomado diariamente, por lo que a veces hay unos intervalos de varios dias entre cada muestra, para ello se emplea el atributo salto-dia para indicar si la muestra tomada es consecutiva con la anterior. Salto-Mes: Este atributo funciona de la misma manera que el anterior con la diferencia que este nos indica si el mes en el que se ha tomado la muestra es consecutivo con el anterior. Abre: El atributo abre nos da el valor con el cual ha abierto la bolsa ese dia. Max: Este atributo nos indica el máximo alcanzado en la bolsa de New York durante ese dia. KStar Es un clasificador basado en instancias, esto significa que la clasificación de una instancia está basada en la clasificación de instancias de entrenamiento similares, determinadas por alguna función de similitud. Se diferencia de otros aprendizajes basados en lo mismo en que usa una función de distancia basada en entropía. RPTree Es un método de aprendizaje rápido mediante árboles de decisión. Construye un árbol de decisión usando la información de varianza y lo poda usando como criterio la reducción del error. Solamente clasifica valores para atributos numéricos una vez. Los valores que faltan se obtienen partiendo las correspondientes instancias. 4. ESTUDIO DE LA BOLSA DE NEW YORK Esta práctica tiene como objetivo el análisis de la bolsa de New York con la finalidad de poder predecir posibles acontecimientos. Para el análisis contamos con un conjunto de datos los cuales se encuentran almacenados en un fichero, la aplicación que vamos a emplear para el análisis de los datos es Weka, la cual posee una serie de algoritmos que nos ayudaran en nuestras predicciones. El fichero de datos sobre el cual vamos a realizar el análisis consta de una gran cantidad de datos, estos datos recogen una serie de atributos de la bolsa durante los años 1996 y 2000, estos atributos se muestran a continuación. Min: Este atributo nos indica el mínimo alcanzado en la bolsa de New York durante ese dia. Cierra: Determina al final del dia el valor con el cual se ha cerrado la bolsa. Media-2-dias: Nos indica cual ha sido la media durante los dos últimos dias anteriores al actual. Media-3-dias: Nos indica cual ha sido la media durante los tres dias anteriores al actual. Baja: El atributo baja es una variable booleana, la cual nos indica si la bolsa ha cerrado con una bajada con respecto a la apertura. A continuación mostraremos una parte de nuestro fichero bolsa.arff, el cual esta dividido en dos partes, atributos y datos. Los atributos del fichero bolsa. @attribute anio real @attribute mes real @attribute dia real @attribute salto-dia {si, no} @attribute salto-mes {si, no} @attribute abre real @attribute max real @attribute min real @attribute cierra real @attribute media-2-dias real @attribute media-3-dias real @attribute baja {si, no} . Año . Max . Mes . Min . Dia . Cierra Los datos que contiene el fichero bolsa. . Salto-dia . Media-2-dias . Salto-mes . Media-3-dias . Abre . Baja @data 2000,12,28,no,no,1328,1335,1325,1334,1334,1334,no 2000,12,27,no,no,1315,1332,1310,1328,1334,1334,no 2000,12,26,no,no,1305,1315,1301,1315,1331,1331,no 2000,12,22,si,no,1274,1305,1274,1305,1322,1326,no 2000,12,21,no,no,1264,1285,1254,1274,1310,1316,no 2000,12,20,no,no,1305,1305,1261,1264,1290,1298,si 2000,12,19,no,no,1322,1346,1305,1305,1269,1281,si 2000,12,18,no,no,1312,1332,1312,1322,1284,1281,no Después de haber aplicado el algoritmo, hemos obtenido un error de predicción del 1,5255 por ciento. Los resultados obtenidos son buenos resultados, ya que hemos utilizado regresión lineal la cual se basa en resultados anteriores. El error cometido a la hora de estimar la media del valor de cierre en la bolsa es de 3,9532 5. PREDICCIONES DE LA BOLSA IBK –k 1 –w 0 Con los datos mostrados anteriormente y utilizando algunos de los algoritmos de la aplicación Weka podemos llegar a predecir los valores de apertura y cierre de la bolsa del dia siguiente, de igual manera se puede predecir la subida que experimentara la bolsa el siguiente mes. Time taken to build model: 0 seconds === Evaluation on test split === Para la predicción de apertura y cierre de la bolsa del dia siguiente hemos seleccionada los siguiente atributos, que posteriormente serán analizados. === Summary === Año Abre Correlation coefficient 0.9987 Mes Cierra Mean absolute error 10.4558 Dia Max Root mean squared error Min Para hallar las predicciones hemos escogido primeramente el método LeastMedSq (-S 4 -G 0) el cual se basa en una regresión lineal y en redes de neuronas, este método nos da información de lo que puede ocurrir en el futuro de una determinada variable, para ello se apoyara en otra variable generalmente el tiempo. Relative absolute error 15.0293 4.0348 % Root relative squared error 5.1375 % Total Number of Instances 430 Este algoritmo se basa en los K vecinos más próximos. RESULTADOS OBTENIDOS: KStar Cierre de la bolsa: Time taken to build model: 0 seconds Linear Regression Model === Evaluation on test split === cierra = === Summary === -1.7622 * anio + -0.1737 * mes + -0.0645 * dia + -0.4638 * abre + 0.8688 * max + 0.6003 * min + 3515.8294 Correlation coefficient 0.9992 Mean absolute error 8.1948 Root mean squared error Relative absolute error 11.4229 3.1623 % Time taken to build model: 11.09 seconds Root relative squared error 3.9047 % === Evaluation on test split === === Summary === Total Number of Instances 430 Correlation coefficient Mean absolute error Root mean squared error Relative absolute error Root relative squared error Total Number of Instances M5P 0.9998 3.9532 5.8129 1.5255 % 1.987 % 430 M5 pruned model tree: (using smoothed linear models) LM1 (1262/1.892%) LM num: 1 -0.0609 * dia + cierra = -0.6472 * abre + -0.6469 * abre 0.9541 * max + + 0.9504 * max 0.6914 * min + + 0.6935 * min 486.7263 + 1.8329 Time taken to build model: 2.16 seconds Time taken to build model: 0.02 seconds === Evaluation on test split === === Summary === === Evaluation on test split === === Summary === Correlation coefficient 0.9998 Mean absolute error 3.7597 Root mean squared error Relative absolute error 5.4218 1.4508 % Correlation coefficient 0.9998 Mean absolute error 3.7262 Root mean squared error 5.389 Root relative squared error 1.8533 % Relative absolute error 1.4379 % Total Number of Instances 430 Root relative squared error 1.8421 % Total Number of Instances 430 Apertura de la bolsa: Linear Regression Model REPTree Time taken to build model: 0.02 seconds abre = === Evaluation on test split === === Summary === -0.1503 * anio + -0.0627 * mes + Correlation coefficient 0.9993 -0.04 * dia + Mean absolute error 8.2478 0.9325 * max + Root mean squared error Relative absolute error 11.0928 0.5599 * min + 3.1828 % -0.4949 * cierra + Root relative squared error 3.7918 % Total Number of Instances 430 LinearRegresion 301.6547 Time taken to build model: 13.2 seconds Linear Regression Model cierra = === Evaluation on test split === === Summary === -0.2426 * anio + -0.0779 * mes + Correlation coefficient 0.9998 Mean absolute error 3.926 Root mean squared error LM1 (1262/1.946%) 5.5019 Relative absolute error 1.5139 % Root relative squared error 1.8816 % Total Number of Instances 430 LM num: 1 abre = 1.0236 * max + 0.6572 * min Al aplicar el algoritmo para predecir el atributo de apertura de la bolsa hemos obtenido un error de predicción de 1,5139%. El error cometido ala hora de estimar el valor medio con el que abre la bolsa es de 3,926 - 0.6847 * cierra + 1.7668 Time taken to build model: 2.22 seconds === Evaluation on test split === IBK –k 1 -w 0 === Summary === Time taken to build model: 0 seconds Correlation coefficient 0.9998 === Evaluation on test split === Mean absolute error 3.8415 === Summary === Root mean squared error Relative absolute error 5.4124 1.4813 % Correlation coefficient 0.9987 Root relative squared error 1.851 % Mean absolute error 10.4337 Total Number of Instances 430 Root mean squared error 14.6868 Relative absolute error 4.0233 % Root relative squared error Total Number of Instances 5.0228 % 430 REPTree Time taken to build model: 0.03 seconds === Evaluation on test split === KStar === Summary === Time taken to build model: 0 seconds Correlation coefficient 0.9992 === Evaluation on test split === Mean absolute error 8.8777 === Summary === Root mean squared error Relative absolute error 11.8121 3.4233 % Correlation coefficient 0.9994 Root relative squared error 4.0397 % Mean absolute error 7.6485 Total Number of Instances 430 Root mean squared error Relative absolute error 10.3123 LinearRegresion: 2.9493 % Root relative squared error 3.5268 % Total Number of Instances 430 M5P Linear Regression Model abre = M5 pruned model tree: -0.2757 * anio + (using smoothed linear models) -0.0855 * mes + -0.0395 * dia + Método de predicción 1.0294 * max + 0.657 * min + Tiempo en generar el modelo(seg) Root mean squared error Relative absolute error -0.6889 * cierra + LeastMedsq 13,2 5,5019 1,5139 % 552.2924 LinearRegresion 0,02 5,3993 1,4729 % Time taken to build model: 0.02 seconds === Evaluation on test split === IBK 0 14,6868 4,0233 % Kstar 0 10,3123 2,9493 % MP5 2,22 5,4124 1,4813 % REPTree 0,03 11,8121 3,4233 % === Summary === Correlation coefficient 0.9998 Mean absolute error 3.8196 Root mean squared error Relative absolute error 6. CONCLUSION: Hemos realizado un estudio de los diferentes algoritmos de Weka para predecir cual será el cierre con respecto la apertura de la bolsa en un determinado día, con los algoritmos aplicados hemos conseguido errores inferiores al 15%, el algoritmo que menos errores nos ha dado es el Linear Regresion con una tasa de error de predicción inferior al 5.4% con un tiempo de ejecución bastante bajo. 5.3993 1.4729 % Root relative squared error 1.8466 % Total Number of Instances 430 7. REFERENCIAS: A continuación mostramos los resultados obtenidos al aplicar cada uno de los algoritmos en formato de tabla. Esta tabla representa al atributo cierra de la bolsa. Método de predicción Tiempo en generar el modelo(seg) Root mean squared error Relative absolute error Apuntes y trabajos de la asignatura “Inteligencia en redes de comunicaciones”. http://www.dsic.upv.es/~cferri/weka/CursDoctoratweka.pdf http://isa.umh.es/doct/ia/P1/P1.pdf LeastMedsq 11,09 5,8125 1,5255% Base de datos (dataset) LinearRegresion 0,02 5,389 1,4379% IBK 0 15,0293 4,0348% Kstar 0 11,4229 3,1623% MP5 2,16 5,4218 1,4508% REPTree 0,02 11,0928 3,1828% A continuación mostramos los resultados obtenidos al aplicar cada uno de los algoritmos en formato de tabla. Esta tabla representa al atributo abre de la bolsa. http://scalab.uc3m.es/~dborrajo/cursos/ejercicios-aa.html