Evaluación de modelos para la predicción de la Bolsa

Anuncio
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
Descargar