Prediccion de Ancho de Banda
Prediccion de Ancho de Banda
Prediccion de Ancho de Banda
ResumenUtilizando herramientas de las redes neuronales podemos trabajar con series de tiempo y de estas hacer predicciones a corto o largo plazo segn los datos que tengamos, se usara un muy conocido software que lleva el nombre de WEKA para comparar los resultados de la prediccin con un programa de java utilizando las libreras del software Neuroph Studio.
Capa de salida: Neuronas cuyos valores de salida se corresponden con las salidas de toda la red. La propagacin hacia atrs (tambin conocido como retro propagacin del error o regla delta generalizada), es un algoritmo utilizado en el entrenamiento de estas redes, por ello, el perceptrn multicapa tambin es conocido como red de retro propagacin (no confundir con la red de contra propagacin).
I. INTRODUCCIN Cualquier variable que conste de datos reunidos, registrados u observados sobre incrementos sucesivos de tiempo se denomina serie de tiempo. Anlisis de series de tiempo es el proceso de usar tcnicas estadsticas para modelar y explicar una serie en funcin del tiempo de puntos de datos. Previsin de series temporales es el proceso de usar un modelo para generar predicciones (previsiones) de hechos futuros basados en hechos pasados conocidos. Ejemplos de las aplicaciones de series de tiempo incluyen: planificacin de la capacidad, la reposicin de inventarios, pronsticos de ventas y los futuros niveles de dotacin de personal, etc. II. MARCO TERICO Perceptrn Multicapa El perceptrn multicapa es una red neuronal artificial (RNA) formada por mltiples capas, esto le permite resolver problemas que no son linealmente separables, lo cual es la principal limitacin del perceptrn (tambin llamado perceptrn simple). Las capas pueden clasificarse en tres tipos: Capa de entrada: Constituida por aquellas neuronas que introducen los patrones de entrada en la red. En estas neuronas no se produce procesamiento. Capas ocultas: Formada por aquellas neuronas cuyas entradas provienen de capas anteriores y cuyas salidas pasan a neuronas de capas posteriores.
Figura1. Perceptron Multicapa. Suport Vector Machine Son redes supervisadas de aprendizaje con modelos de aprendizaje asociados a algoritmos que analizan los datos y reconocer patrones, utilizados para la clasificacin y el anlisis de regresin . La SVM bsica toma un conjunto de datos de entrada y predice, para cada entrada dada, cul de las dos clases posibles forma la salida, por lo que es un noprobabilstico binario clasificador lineal . Dado un conjunto de ejemplos de entrenamiento, cada uno marcado como perteneciente a una de dos categoras, un algoritmo de entrenamiento de SVM construye un modelo que asigna nuevos ejemplos en una categora u otra. SMO pertenecen a una familia de generalizadas clasificadores lineales y pueden ser interpretados como una extensin de la perceptrn. Una propiedad especial es que se minimizan simultneamente la emprica error de clasificacin y maximizar el margen geomtrica, por lo que tambin se conocen como mximo clasificadores de margen. El modelo producido por la clasificacin en vector (como se describi anteriormente) slo depende de un subconjunto de los datos de entrenamiento, ya que la funcin de costos para la construccin del modelo no se preocupa por los puntos de formacin que se encuentran ms all del margen. Anlogamente, el modelo producido por RVS depende slo en
Universidad de Cuenca. Jos Lpez Molina.Prediccin de Ancho de Banda. un subconjunto de los datos de entrenamiento, ya que la funcin de coste para la construccin del modelo ignora los datos de entrenamiento cerca de la prediccin del modelo (dentro de un umbral). III. Figura 2. Creacin 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 ejecucin de los programas fue facilitado por el DDI (Departamento de Desarrollo Informtico de la Universidad de Cuenca), los datos pertenecen al switch que brinda el servicio de internet inalmbrico al centro de cmputo de la facultad de Ingeniera, stos datos son adquiridos con un programa llamado Cacti que almacena la informacin de ancho de banda de subida como de bajada de datos de este switch cada 5 minutos todos los das, con esto, Cacti saca un promedio diario y guarda sta informacin 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 ao 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 configuracin regional, esto se soluciona dando la exacta separacin entre datos (coma), signo decimal (punto) para las variables de tipo double y para las fechas dependiendo en el programa que se ejecute la prediccin por ejemplo yyy/MM/DD para las fechas en WEKA. El siguiente paso en ste procedimiento es la normalizacin 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 automticamente. A. Construccin de la base de datos.
Con la base de datos ya lista podemos importarla desde WEKA en la aplicacin explorer.
El procedimiento para crear la base de datos se hizo en MySQL Workbench en una nueva pestaa se escribieron las siguientes sentencias.
Figura 4. Cara principal de Weka Para poder conectar con la base de datos, se deber extraer y colocar en la raz de Weka, el conector MySQL y el driver de la librera de all en la ventana de la aplicacin explorer de Weka sealar el botn 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, adems se incluir el usuario y la contrasea como se muestra en la figura 4 .
Figura 5. Interfaz del gestor de base de datos en Weka El siguiente paso es recuperar la informacin de la base de datos, en ste caso la base de datos tiene una sola tabla donde estn 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 informacin de la tabla atributos. Sealamos el botn OK y Weka tiene ya listos los datos para trabajar. Una buena forma de trabajar con las series temporales en Weka es la aplicacin Forecast, antes de continuar con el procedimiento de la serie temporal se va a describir la instalacin de sta aplicacin; En primer lugar, en la cara principal de Weka tenemos una pestaa con el nombre de Tools, en sta se despliega una lista de herramientas de las cuales se va a sealar Package manager donde saldr una ventana que nos dar a escoger cual es la librera que queremos instalar, seleccionamos la librera timeseriesForecasting e instalamos la misma. La figura 3 muestra cmo se deben ver las interfaces. El siguiente paso en el procedimiento es ejecutar la aplicacin Forecast, sta aplicacin es exclusiva para series de tiempo, se va a elegir cual es la secuencia de los datos ya sea por da por mes o por ao o incluso por hora y elegir la cantidad de das 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 pestaa Advanced Configuration, aqu se puede seleccionar diferentes algoritmos como lineal, perceptrn 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 adems de mostrarse de forma numrica se podrn mostrar grficamente como muestra la Figura1 del anexo1, la prediccin de 12 das como ejemplo, los datos que llevan un * son los datos predichos para cada da. C.
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 librera mysql-connector-java, se tomar para este caso por separado los parmetros 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 Perceptrn multicapa, el procedimiento para usar esta red se describe a continuacin. El primer paso es normalizar los datos esto es hacer comparables resultados que no lo son directamente, sacando el mximo en los datos al igual que el mnimo y cada dato a ser normalizado debe pasar por la siguiente frmula matemtica:
Ya que el Perceptrn 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 lnea del training set, para la segunda lnea 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 nmero de iteraciones, pesos y todos los parmetros 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 cuntos das vamos a predecir, o solamente indicando cuantos
Universidad de Cuenca. Jos Lpez Molina.Prediccin de Ancho de Banda. das se va a predecir, conociendo este dato para el ejemplo que se est desarrollando se har una regresin de tiempo para tomar los ltimos 20 datos del entrenamiento para predecir un da mas y, este dato predicho formar parte del vector de datos normalizados para ser parte los datos de entrada de la prediccin del segundo da, as sucesivamente hasta que se complete el nmero de das que sali de la resta del ultimo dia en el que se obtuvieron los datos con el da al que se va a hacer la prediccin. El programa que se desarroll en java tiene las siguientes caractersticas. Podemos seleccionar cual es la prediccin que se va a hacer, ya sea datos de entrada o datos de salida, con esto conectamos la base de datos para definir cul es el parmetro que va a introducir el programa en el training set para entrenar la red, podemos sealar de qu forma introduciremos los das de prediccin ya sea con el nmero de das o con la fecha final a predecir, de cualquiera de las dos formas el resultado es el mismo en la prediccin, adems podemos trazar una grfica de ancho de banda con respecto al tiempo la Figura 2 del anexo1 se muestra el Frame principal del programa con las caractersticas ya descritas. IV. ANLISIS DE RESULTADOS
V.
CONCLUSIONES
La Figura 4 del anexo1 se muestra la frecuencia en la que los valores se repiten y cules son los mnimos y mximos de cada uno de los parmetros, con esto se puede ya tener una primera impresin de cul ser el resultado de la prediccin. Se notara en la figura 4 que los valores pequeos son los tienen mas frecuencia, esto nos da una idea de que la prediccin estar oscilando por los valores intermedios o pequeos. Con la aplicacin 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 travs del switch Al igual que estas Figuras, las Figuras 8, 9 y 10 muestran el ancho de banda de entrada con la aplicacin de diferentes algoritmos de regresin. Las figuras 11 y 12 en el apndice 1, muestran las grficas de los resultados obtenidos en el programa desarrollado en java despus de hacer varios intentos y encontrar los parmetros ms adecuados. De estas grficas y los resultados obtenidos se concluye que la regresin lineal se asemeja mucho a SMO y que ciertos valores del perceptrn multicapa descordinan totalmente de la media de la grfica, y comparando con las grficas 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 comn con las figuras 7 y 5 con lo cual demostramos que las dos libreras neuroph y weka cumplen su objetivo y es muy similar en ambos casos.
Un problema grande encontrado fue el no poder transformar el formato RRD a una tabla de Excel y, despus de varios intentos y pruebas se transform con un programa llamado RRD editor en Linux que solucion ste problema. Este formato a su vez deba 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 sealados 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 grfica, pero hubieron algunas trabas como tomar un porcentaje de datos para el entrenamiento, esto se dificulto por la siguiente razn: 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 diferan mucho en cada muestra, esto se solucion con la repeticin de muchas veces de la funcin calcular del perceptrn multicapa, con esto se estabilizaba por asi decirlo y nos daba una prediccin parecida a la anterior. En la interpretacin de los datos se not que muchos valores rodeaban la lnea ms baja de la grfica de ancho de banda vs tiempo y esto era debido a que los valores ms frecuentes de ancho de banda estn por estos rangos y de all que las predicciones tienden a sacar valores pequeos. De all en mas no hubo ms problemas en el desarrollo del programa y se tuvo gran experiencia con las redes neuronales.
REFERENCIAS