Universidad de Cuenca. José López Molina.Predicción Molina.Predicción de Ancho de Banda.
1
Predicción de Ancho de Banda Utilizando Redes Neuronales José López Molina
[email protected] [email protected]
Resumen —Utilizando
herramientas de las redes neuronales podemos trabajar con series de tiempo y de estas hacer predicciones a corto o largo plazo según los datos que tengamos, se usara un muy conocido software que lleva el no nomb mbre re de WEKA WEKA para para comp compar arar ar los los resu result ltad ados os de la predicción con un programa de java utilizando las librerías librerías del software Neuroph Studio.
Capa Capa de sali salida da:: Neur Neuron onas as cuyo cuyoss valo valore ress de sali salida da se corresponden con las salidas de toda la red. La propagaci propagación ón hacia hacia atrás atrás (también (también conocido como retro retro propagación del error o regla delta generalizada), es un algoritmo utilizado en el entrenamiento de estas redes, por ello, el perceptrón multicapa también es conocido como red de retr retroo prop propag agac ació iónn (no (no conf confun undi dirr con con la red red de cont contra ra propagación).
I.INTRODUCCIÓN Cualquier variable que conste de datos reunidos, registrados u ob obse serv rvad ados os sobr sobree incr increm emen ento toss suce sucesi sivo voss de tiem tiempo po se denomina serie de tiempo. Análisis de series de tiempo es el proceso de usar técnicas estadísticas para modelar y explicar una serie en función del tiempo de puntos de datos. Previsión de series temporales es el proceso de usar un modelo para generar predicciones (previsio (previsiones) nes) de hechos hechos futuros futuros basados en hechos hechos pasados pasados conocidos. Ejemplos de las aplicaciones de series de tiempo incluyen: planificación de la capacidad, la reposición de inventarios, pronósticos de ventas y los futuros niveles de dotación de personal, etc.
Figura1. Perceptron Multicapa. Suport Vector Machine
Son redes redes super supervis visada adass de aprend aprendiza izaje je con modelo modeloss de aprendizaje asociados a algoritmos que analizan los datos y reconocer patrones, utilizados para la clasificación y el análisis de regresión . La SVM básica toma un conjunto de datos de entrada y predice, para cada entrada dada, cuál de las dos II. MARCO TEÓRICO clas clases es po posi sibl bles es form formaa la sali salida da,, po porr lo qu quee es un no no- probabilístico binario binario clasificador lineal lineal . Dado un conjunto de ejem ej empl plos os de entr en tren enam amie ient nto, o, cada ca da un unoo marc marcad adoo como como Perceptrón Multicapa perteneciente a una de dos categorías, un algoritmo de entrenami amient entoo de SVM con constr struye uye un modelo modelo que asigna asigna El perceptrón multicapa es una red neuronal artificial (RNA) entren form formad adaa po porr múlt múltip iple less capa capas, s, esto esto le perm permit itee reso resolv lver er nuevos ejemplos en una categoría u otra. problemas que no son linealmente separables, lo cual es la SMO pertenecen a una familia de generalizadas clasificadores principal limitación del perceptrón del perceptrón (tam (tambi bién én llam llamad adoo lineales y pueden ser interpretados como una extensión de la perceptrón simple). simple). perceptrón. Una propiedad especial es que se minimizan simu simult ltán ánea eame ment ntee la empí empíri rica ca erro errorr de clas clasif ific icac ació iónn y Las capas pueden clasificarse en tres tipos: maximi maximiza zarr el margen margen geo geomét métric rica, a, por lo que tambié tambiénn se Capa Capa de entrad entrada: a: Con Consti stitui tuida da por aqu aquell ellas as neu neuron ronas as que conocen como máximo clasificadores de margen. introducen los patrones de entrada en la red. En estas neuronas no se produce procesamiento. El modelo producido por la clasificación en vector (como se Capas ocultas: Formada por aquellas neuronas cuyas entradas describió describió anterior anteriorment mente) e) sólo depende de un subconjunt subconjuntoo de provienen de capas anteriores y cuyas cuyas salidas pasan a neuronas los datos de entrenamiento, ya que la función de costos para la de capas posteriores. construcción del modelo no se preocupa por los puntos de form formac ació iónn qu quee se encu encuen entr tran an más más allá allá del del marg margen en.. Análogamente, el modelo producido por RVS depende sólo en
Universidad de Cuenca. José López Molina.Predicción de Ancho de Banda. un subconjunto de los datos de entrenamiento, ya que la función de coste para la construcción del modelo ignora los datos de entrenamiento cerca de la predicción del modelo (dentro de un umbral). III.
Figura 2. Creación de la base de datos. Con esto se crea una base de datos con la tabla atributos que tiene los parametros fecha, Datain y Dataout. Ademas de esto se importo el archivo CSV quedando de la forma que muestra la figura 2.
PROCEDIMIENTO
Los datos con los que se va a realizar la ejecución de los programas fue facilitado por el DDI (Departamento de Desarrollo Informático de la Universidad de Cuenca), los datos pertenecen al switch que brinda el servicio de internet inalámbrico al centro de cómputo de la facultad de Ingeniería, éstos datos son adquiridos con un programa llamado Cacti que almacena la información de ancho de banda de subida como de bajada de datos de este switch cada 5 minutos todos los días, con esto, Cacti saca un promedio diario y guarda ésta información en un archivo con formato RRD. Este sistema está vigente en la universidad de cuenca para cada switch de la universidad desde el 2011 por lo tanto los datos que se obtuvieron corresponden desde abril de ese año hasta la fecha actual (14 de Junio del 2013). El documento con formato RRD se pudo extraer al formato XSLS (Excel) con ayuda del programa RRD Editor en Linux y de allí al formato CSV (Excel con datos delimitados por comas) para poder trabajar con una base de datos MySQL. En algunos casos, al importar las tablas de CSV hacia MySQL, se pueden dar problemas de configuración regional, esto se soluciona dando la exacta separación entre datos (coma), signo decimal (punto) para las variables de tipo double y para las fechas dependiendo en el programa que se ejecute la predicción por ejemplo yyy/MM/DD para las fechas en WEKA. El siguiente paso en éste procedimiento es la normalización de los datos, para el programa que se deberá desarrollar en java ésto es necesario y se deberá hacer el procedimiento inverso para recuperar el dato a la salida, en el caso de ejecutar en WEKA no es necesario ya que éste programa lo realiza automáticamente. A.
2
Construcción de la base de datos.
El procedimiento para crear la base de datos se hizo en MySQL Workbench en una nueva pestaña se escribieron las siguientes sentencias.
Figura 3. Tabla atributos de la base de datos B.
Procedimiento en WEKA
Con la base de datos ya lista podemos importarla desde WEKA en la aplicación explorer.
Figura 4. Cara principal de Weka Para poder conectar con la base de datos, se deberá extraer y colocar en la raíz de Weka, el conector MySQL y el driver de la librería de allí en la ventana de la aplicación explorer de Weka señalar el botón OpenDB y con esto saldrá una ventana del gestor de la base de datos, en este paso se pondrá la sentencia para comunicar la base de datos con el nombre de la misma, en éste caso la base de datos se llama bdrouter, además se incluirá el usuario y la contraseña como se muestra en la figura 4 .
Universidad de Cuenca. José López Molina.Predicción de Ancho de Banda.
Figura 6. Package manager de Weka
Figura 5. Interfaz del gestor de base de datos en Weka El siguiente paso es recuperar la información de la base de datos, en éste caso la base de datos tiene una sola tabla donde están los atributos del router así que se recuperará toda la base de datos. En la interfaz del gestor de base de datos, en el espacio destinado para las sentencias de consulta llamado Query se escribe la sentencia en este caso; select * from atributos; Que nos indica que vamos a extraer toda la información de la tabla atributos. Señalamos el botón OK y Weka tiene ya listos los datos para trabajar. Una buena forma de trabajar con las series temporales en Weka es la aplicación Forecast, antes de continuar con el procedimiento de la serie temporal se va a describir la instalación de ésta aplicación; En primer lugar, en la cara principal de Weka tenemos una pestaña con el nombre de Tools, en ésta se despliega una lista de herramientas de las cuales se va a señalar Package manager donde saldrá una ventana que nos dará a escoger cual es la librería que queremos instalar, seleccionamos la librería timeseriesForecasting e instalamos la misma. La figura 3 muestra cómo se deben ver las interfaces. El siguiente paso en el procedimiento es ejecutar la aplicación Forecast, ésta aplicación es exclusiva para series de tiempo, se va a elegir cual es la secuencia de los datos ya sea por día por mes o por año o incluso por hora y elegir la cantidad de días a predecir un dato en Parameters, el dato se va a seleccionar en el check box en Target Selection, el algoritmo a ejecutar se va a elegir en la pestaña Advanced Configuration, aquí se puede seleccionar diferentes algoritmos como lineal, perceptrón multicapa o suport vector machine. Cada uno de estos nos da resultados diferentes esto se debe a que cada algoritmo trabaja de diferente manera, los datos de entrada y las predicciones además de mostrarse de forma numérica se podrán mostrar gráficamente como muestra la Figura1 del anexo1, la predicción de 12 días como ejemplo, los datos que llevan un * son los datos predichos para cada día.
3
C.
Procedimiento en JAVA
De la misma manera en que se importó la base de datos a Weka, se importará ésta misma base de datos a java con la librería mysql-connector-java, se tomará para este caso por separado los parámetros Datain y Dataout que son la velocidad de bajada y subida de datos respectivamente con el objetivo de instanciar dos redes neuronales y predecir estos datos por separado. La red neuronal a usar será el Perceptrón multicapa, el procedimiento para usar esta red se describe a continuación. El primer paso es normalizar los datos esto es hacer comparables resultados que no lo son directamente, sacando el máximo en los datos al igual que el mínimo y cada dato a ser normalizado debe pasar por la siguiente fórmula matemática:
Ya que el Perceptrón multicapa es una red supervisada debemos tener datos de entrada y salida para esto lo que haremos es en primera instancia tomar 20 primeros datos y el dato 21 será el dato de salida, esto estará en la primera línea del training set, para la segunda línea se tomará desde el segundo dato hasta el 21 como entrada y el dato 22 como salida, así sucesivamente hasta acabar el vector de datos normalizados o hasta completar el porcentaje de datos que se dé para el entrenamiento. Con este procedimiento tenemos completo el training set y lo que falta es mandar a entrenar a la red con un número de iteraciones, pesos y todos los parámetros iniciales que solicita la red neuronal. Una vez entrenada la red podemos calcular (predecir) un dato de entrada o salida de la siguiente manera. Sabiendo la última fecha en la que se obtuvieron los datos podemos poner una fecha a predecir y restar para saber cuántos días vamos a predecir, o solamente indicando cuantos
Universidad de Cuenca. José López Molina.Predicción de Ancho de Banda. días se va a predecir, conociendo este dato para el ejemplo que se está desarrollando se hará una regresión de tiempo para tomar los últimos 20 datos del entrenamiento para predecir un día mas y, este dato predicho formará parte del vector de datos normalizados para ser parte los datos de entrada de la predicción del segundo día, así sucesivamente hasta que se complete el número de días que salió de la resta del ultimo dia en el que se obtuvieron los datos con el día al que se va a hacer la predicción. El programa que se desarrolló en java tiene las siguientes características. Podemos seleccionar cual es la predicción que se va a hacer, ya sea datos de entrada o datos de salida, con esto conectamos la base de datos para definir cuál es el parámetro que va a introducir el programa en el training set para entrenar la red, podemos señalar de qué forma introduciremos los días de predicción ya sea con el número de días o con la fecha final a predecir, de cualquiera de las dos formas el resultado es el mismo en la predicción, además podemos trazar una gráfica de ancho de banda con respecto al tiempo la Figura 2 del anexo1 se muestra el Frame principal del programa con las características ya descritas. IV. A NÁLISIS DE RESULTADOS La Figura 4 del anexo1 se muestra la frecuencia en la que los valores se repiten y cuáles son los mínimos y máximos de cada uno de los parámetros, con esto se puede ya tener una primera impresión de cuál será el resultado de la predicción. Se notara en la figura 4 que los valores pequeños son los tienen mas frecuencia, esto nos da una idea de que la predicción estará oscilando por los valores intermedios o pequeños. Con la aplicación forecast de Weka se va a ejecutar los 3 algoritmos mencionados (Algoritmo Lineal, Perceptron Multicapa y SMO) tanto para valores de entrada como salida. Las figuras 5, 6 y 7 del anexo1 dan a conocer las predicciones que tienen para cada caso de algoritmo aplicado en la salida de datos a través del switch Al igual que estas Figuras, las Figuras 8, 9 y 10 muestran el ancho de banda de entrada con la aplicación de diferentes algoritmos de regresión. Las figuras 11 y 12 en el apéndice 1, muestran las gráficas de los resultados obtenidos en el programa desarrollado en java después de hacer varios intentos y encontrar los parámetros más adecuados. De estas gráficas y los resultados obtenidos se concluye que la regresión lineal se asemeja mucho a SMO y que ciertos valores del perceptrón multicapa descordinan totalmente de la media de la gráfica, y comparando con las gráficas del programa en java que la figura 11 (datain con perceptron multicapa) se asemeja mucho a las figuras 10 y 8 del anexo1. Asi mismo la figura 12 (dataout con perceptron multicapa) tiene mucho en común con las figuras 7 y 5 con lo cual demostramos que las dos librerías neuroph y weka cumplen su objetivo y es muy similar en ambos casos.
4
V. CONCLUSIONES Un problema grande encontrado fue el no poder transformar el formato RRD a una tabla de Excel y, después de varios intentos y pruebas se transformó con un programa llamado RRD editor en Linux que solucionó éste problema. Este formato a su vez debía ser transformado en un formato que pudiera ser importado por MySQL, para esto se tuvo que cambiar las configuraciones regionales del sistema de tal modo que cada dato quedara separado por una coma y los decimales señalados por puntos, con esto la base de datos fue armada satisfactoriamente. El proceso de introducir los datos al training set y a su vez ser entrenado no tuvo inconvenientes mayores al igual que recuperar y representar los datos de manera gráfica, pero hubieron algunas trabas como tomar un porcentaje de datos para el entrenamiento, esto se dificulto por la siguiente razón: Cuando entrenamos con un porcentaje bajo, las predicciones a la larga tienden a volverse lineales o repetitivas dicho de una mejor manera y esto no estaba bien ya que no concordaba con los valores pasados, otra dificultad fue que los valores calculados diferían mucho en cada muestra, esto se solucionó con la repetición de muchas veces de la función calcular del perceptrón multicapa, con esto se estabilizaba por asi decirlo y nos daba una predicción parecida a la anterior. En la interpretación de los datos se notó que muchos valores rodeaban la línea más baja de la gráfica de ancho de banda vs tiempo y esto era debido a que los valores más frecuentes de ancho de banda están por estos rangos y de allí que las predicciones tienden a sacar valores pequeños. De allí en mas no hubo más problemas en el desarrollo del programa y se tuvo gran experiencia con las redes neuronales. REFERENCIAS
[1] [2] [3] [4]
https://en.wikipedia.org/wiki/Support_vector_machine http://es.wikipedia.org/wiki/Perceptr%C3%B3n_multicap http://www.support-vector-machines.org/ http://es.scribd.com/doc/42157002/MODELO-DEPREDICCION-DE-SERIES-DE-TIEMPO-CONAPLICACIONES-EN-DECISIONES-FINANCIERASPARA-LA-COMPRA-VENTA-DE-ACCIONES