Ayuda
Ir al contenido

Dialnet


Optimización y procesamiento inteligente de grandes volúmenes de datos categóricos

  • Autores: Jaime Salvador Meneses
  • Directores de la Tesis: José García Rodríguez (dir. tes.)
  • Lectura: En la Universitat d'Alacant / Universidad de Alicante ( España ) en 2019
  • Idioma: español
  • Tribunal Calificador de la Tesis: José María Cecilia Canales (presid.), David Tomás Díaz (secret.), Horacio E. Pérez Sánchez (voc.)
  • Programa de doctorado: Programa de Doctorado en Informática por la Universidad de Alicante
  • Materias:
  • Enlaces
    • Tesis en acceso abierto en: RUA
  • Resumen
    • 1. INTRODUCCION En los últimos años se han desarrollado un buen número de algoritmos para trabajar con información categórica, sin embargo el rendimiento de esos algoritmos tiene dos factores importantes a considerar: - La técnica de procesamiento (el algoritmo).

      - La representación de la información.

      Muchos de los algoritmos de aprendizaje automático son enormemente sensibles al modo en que la información que van a procesar es almacenada en memoria: local o distribuida.

      Existen técnicas que permiten reducir el tamaño del conjunto de entrenamiento para lo cual eliminan observaciones (redundantes o que no aportan información en el modelo) tratando de mantener la precisión del algoritmo original, sin embargo, dado que se eliminan observaciones, la precisión del algoritmo se ve afectada por la eliminación de información.

      Otras técnicas seleccionan las variables más representativas que con- centran la información más relevante en un subconjunto de las variables originales sin afectar considerablemente la capacidad predictiva de los modelos.

      Existen alternativas a la eliminación de información, las cuales tratan de «comprimir» la información original con la finalidad de evitar la eliminación de observaciones para de esta forma mantener la precisión del algoritmo seleccionado.

      La reducción de la cantidad de memoria utilizada para representar el conjunto de datos reduce claramente el número de operaciones de lectura/escritura necesarias para leer la información así como el número de operaciones requeridas para procesarla. Muchos de los frameworks utilizados para aplicar algoritmos de inteligencia artificial representan la información de la forma tradicional, lo cual fuerza a iterar sobre todos los elementos del conjunto original para obtener el resultado deseado.

      Si se aplica la eliminación de observaciones, se reduce los requerimientos de memoria y también se reduce y la capacidad predictiva del modelo. La situación ideal consiste en reducir los requerimientos de memoria sin reducir la capacidad predictiva del modelo.

      En esta tesis se llevó a cabo una investigación teórica y práctica analizando el problema de la reducción de los requerimientos de memoria manteniendo la capacidad predictiva de los algoritmos de inteligencia artificial. La investigación está orientada al tratamiento de datos categóricos los cuales son susceptibles de ser comprimidos/codificados dado su número reducido de posibles valores.

      La investigación está orientada al estudio de la representación, procesamiento y aplicación de técnicas de aprendizaje automático sobre grandes conjuntos de datos de naturaleza nominal o categórica: Una variable categórica es una variable que puede ser medida utilizando solo un número limitado de valores o categorías [112] Con la propuesta de compresión de información categórica, se propone una modificación al algoritmo de clasificación k-vecinos para trabajar con información categórica comprimida manteniendo la precisión de la clasificación dado que se utiliza el total del conjunto de datos de entrenamiento.

      1.2. MOTIVACION Este documento es el resultado de los estudios llevados a cabo dentro del programa de doctorado DOCTORADO en Informática resultado del convenio entre la Universidad Central del Ecuador y la Universidad de Alicante.

      El artículo 280 de la Constitución de la República del Ecuador define al Plan Nacional de Desarrollo, denominado Plan Nacional del Buen Vivir, como el instrumento al que se sujetarán las políticas, programas y proyectos públicos; la programación y ejecución del presupuesto del Estado; y la inversión y la asignación de los recursos públicos.

      El Plan Nacional del Buen Vivir define políticas y acciones que permitirán alcanzar los objetivos propuestos. Entre estos, el objetivo 4 plantea fortalecer las capacidades y potencialidades de la ciudadanía. Entre las políticas y lineamientos estratégicos plantea: (4.6) h. Impulsar políticas, estrategias, planes, programas o proyectos para la investigación, el desarrollo y la innovación (I+D+i) de tecnologías de información y comunicación (TIC) (Tomado del Plan Nacional del Buen Vivir, http://www.buenvivir.gob.ec/versiones- plan-nacional).

      En los últimos años se ha dado un incremento en la inversión con fines de investigación, desarrollo e innovación (I+D+i). Para fortalecer las capacidades de los profesionales ecuatorianos y para la investigación, el gobierno ha llevado a cabo una serie de proyectos destinados a promover la investigación, por ejemplo podemos mencionar al proyecto Prometeo como uno de los más emblemáticos.

      La motivación de este trabajo en el área social, constituye el aportar en el cumplimiento del objetivo propuesto en las políticas públicas del país proponiendo el desarrollo de nuevas tecnologías para el tratamiento y extracción de conocimiento a partir de fuentes de datos públicas.

      La motivación a nivel profesional nace de la participación y colaboración en el proyecto REDATAM llevado a cabo por la Comisión Económica para América Latina y el Caribe (CEPAL) cuyo objetivo es proporcionar una herramienta para el proceso de información censal de naturaleza categórica (en la mayoría de los casos). El proyecto está orientado al almacenamiento de información híbrida (categórica y numérica), sin embargo el procesamiento se limita a procesos estadísticos y no a extraer «conocimiento» a partir de los datos.

      Una fuente importante de información pública la constituyen los censos de vivienda y población, los cuales están a disposición del público a través de criterios predefinidos impidiendo la manipulación para la generación de análisis y resultados particulares. El análisis realizado sobre este tipo de información se centra en estadísticas de los datos, pero se omite (en cierto modo) la relación existente entre la información, que se pierde al pasar a un modelo relacional cuando la naturaleza de la información es jerárquica. Existen alternativas para le gestión de información jerárquica, sin embargo, su uso está dominado por el área socio-demográfico y no por el área técnica.

      La motivación en el área técnica constituye proporcionar alternativas para el manejo y procesamiento de la información orientadas a la aplicación de técnicas inteligentes con la finalidad de extraer conocimiento a partir de la información de libre acceso.

      1.2 Objetivos El principal objetivo de esta investigación es aplicar técnicas de aprendizaje automático a información de naturaleza categórica a través de la reducción en los requerimientos de almacenamiento y la optimización del procesamiento.

      Como segundo objetivo, directamente relacionado con el primero, se propone mejorar los sistemas de almacenamiento de información categórica con la finalidad de reducir los requerimientos de almacenamiento (principalmente memoria) tomando en cuenta las opciones existentes propuestas en la investigación.

      Finalmente, como tercer objetivo, se propone optimizar el método de clasificación k NN para trabajar con datos comprimidos aplicando el sistema de almacenamiento propuesto para representar conjuntos de datos de entrenamiento (training datasets). La selección de la técnica de aprendiza- je automático (k-vecinos) tiene como objetivo la aplicación en problemas relacionados con datos perdidos o no presentes en los datasets de entrenamiento (imputación de datos). La validez del método propuesto será verificada con conjuntos de datos de acceso libre.

      2. DESARROLLO TEORICO En los últimos años, el término Big Data se ha vuelto muy popular debido a la gran cantidad de información disponible en diferentes ámbitos: redes sociales, Internet, telefonía móvil, etc. El volumen de datos crece rápidamente y la tecnología para manipular esos grandes volúmenes de información es clave cuando se trata de extraer información relevante. De hecho, se han producido declaraciones controvertidas sobre Big Data tratando de entenderlo como “El tamaño es lo único que importa” [71].

      Debido al gran volumen de datos, se vuelve difícil realizar un análisis efectivo utilizado las técnicas tradicionales [65]. La principal dificultad se debe a que el volumen de datos crece aceleradamente en comparación a los recursos computacionales.

      La necesidad de extraer “conocimiento” ha requerido la aplicación de diferentes técnicas de aprendizaje automático, para extraer resultados y finalmente ser analizados en función de las características de los grandes volúmenes de datos (volumen, variedad y velocidad - 3V’s) [107]. Recientemente, las características de Big Data ha evolucionado de las 3V’s hasta lo que se conoce como 6V’s: volumen, variedad, velocidad, valor, veracidad y variabilidad [4].

      2.1 Big Data En los últimos años han aparecido varias alternativas para el procesa- miento de grandes volúmenes de datos y su almacenamiento. Estas alternativas están relacionadas con datos estructurados (numéricos y alfanuméricos) y con datos no estructurados (texto, imágenes y videos). En el primer caso, se necesita algún tipo de Sistema de Base Datos, y en el segundo, un sistema de archivos más sofisticado. Como ejemplo del primero podemos mencionar Apache HBase y en el segundo caso podemos nombrar Hadoop Distributed File System (HDFS).

      La complejidad de los datos demanda la creación de nuevas arquitecturas que optimicen el tiempo de procesamiento y los recursos necesarios para extraer conocimiento útil a partir de los datos [104]. Existen muchos estudios que se orientan al procesamiento y extracción de información re- levante a partir de Big Data para generar conocimiento [51].

      El imparable crecimiento de información heterogénea disponible en la red ha generado la necesidad de extraer dicha información y procesarla de una manera eficiente. Sin embargo, las técnicas tradicionales de procesamiento están orientadas al procesamiento de la información en clústers. Debido a estos inconvenientes, muchos estudios se centran en la búsqueda de metodologías que permitan reducir el costo computacional.

      2.1.1 Características El término Big Data se refiere, literalmente, a "volumen de datos". El teorema HACE (Huge, Autonomous, Complex and Evolving) sugiere que las características principales de Big Data son [28]: - Enorme con fuentes de datos variadas y diversas .

      - Fuentes autónomas con control de circulación y dispersión.

      - Asociaciones complejas y en evolución.

      Dimensión Asociada a la primera característica (alto volumen de datos), la repre sentación de los datos está asociada a dimensiones diversas y heterogéneas [114].

      Muchos expertos en Big Data consideran el problema de la alta dimensionalidad como un factor importante a considerar. De hecho, el procesa- miento de datos con una dimensión alta es una tarea complicada y se ha convertido en un área de interés [19].

      Las técnicas más modernas para el manejo de datos de alta dimensión se basan en la reducción de dimensión las cuales transforman un espacio de dimensión alta en un espacio de menor dimensión tratando de minimizar la pérdida de información [105].

      Otra alternativa consiste en reducir el número de observaciones a través de un muestreo con la finalidad de reducir el volumen de datos a un tamaño adecuado, como paso previo al procesamiento [114] 2.1.2 Pre-procesamiento Debido a la amplia variedad de fuentes de datos, la información varía debido a factores como ruido, redundancia, consistencia, etc. Para facilitar una análisis efectivo de los datos, generalmente se propone una fase de pre-procesamiento de estos con la finalidad de reducir los requerimientos de almacenamiento [20]. Entre las técnicas de pre-procesamiento podemos mencionar: - Integración Consiste en combinar datos provenientes de diferentes fuentes con la finalidad de proporcionar una vista uniforme [73]. Históricamente, la integración de datos se lo ha asociado con Data warehousing el cual incluye un proceso denominado ETL (Extract–Transform–Load) [20].

      - Limpieza Consiste en identificar datos con errores o incompletos para modificarlos o eliminarlos con la finalidad de mejorar la calidad de los datos. La limpieza de datos involucra algunos pasos, entre los que podemos mencionar: determinar los tipos de errores, identificación de errores, corrección de errores [75].

      - Eliminación de redundancia Los datos redundantes corresponden a datos repetidos o que no aportan información. La eliminación de datos redundantes tiene un impacto directo sobre los requerimientos de almacenamiento [20].

      En muchos conjuntos de datos, la eliminación de datos repetidos per- mite reducir el tamaño global de los datos, en cierto modo constituye la forma más básica de compresión [20].

      La incorporación de compresión de los datos conlleva una disminución en los requerimientos de almacenamiento, sin embargo la información debe ser descomprimida previo a ser procesada, ésto puede generar un costo computacional adicional.

      Existe información muy susceptible de ser comprimida. En el caso de información no estructurada podemos mencionar las imágenes y videos. Para estos casos existen técnicas de compresión/descompresión amplia- mente adoptadas tales como el estándar H.264/AVC para compresión de video [110] y el estándar JPEG 2000 para imágenes [106].

      En el caso de información estructurada podemos mencionar Run-length- encoding (RLE), Offset-list encoding (OLE) [30] para datos categóricos y Floating-Point Compression Algorithm [74] para el caso de valores numéricos.

      También existen algoritmos de compresión de propósito general como GZIP, sin embargo requieren de un procesamiento exhaustivo y la descom- presión completa de la información, como paso previo a su utilización [21].

      2.1.3 Desafíos El almacenamiento y la transferencia de datos son cuestiones tecno- lógicas que representan retos a largo plazo que requieren investigación y nuevos paradigmas [63]. El crecimiento constante en el volumen de información generada lleva a plantearse retos en algunas áreas [20]: - Representación de los datos - Eliminación de redundancias - Compresión de datos La cantidad de datos se va incrementando a un ritmo mayor del que lo hacen los nuevos mecanismos de almacenamiento.

      El principal problema relacionado con el procesamiento de los datos reside en la selección de las técnicas adecuadas para seleccionar, clasificar y agrupar la información. La tecnología utilizada depende del tipo de información, una buena solución tecnológica permite obtener resultados de mejor calidad, reducir el coste computacional (recursos) y reducir los tiempos de procesamiento.

      2.2 Aprendizaje automático El principal objetivo del aprendizaje automático es crear sistemas que sean capaces de aprender o extraer conocimiento a partir de datos y utilizar ese conocimiento para predecir situaciones futuras, estados o tendencias [72].

      Las técnicas de aprendizaje automático pueden ser agrupadas en las siguientes categorías: - Algoritmos de clasificación. Un sistema puede aprender de un conjunto de datos de muestra (datos etiquetados), a partir del cual se construye un conjunto de reglas de clasificación llamado modelo. Estas reglas son utilizadas para clasificar información nueva [81]. También se lo conoce con el nombre de aprendizaje supervisado.

      - Algoritmos de agrupación (clustering). Consiste en la formación de grupos (llamados clusters) de instancias que comparten características comunes sin ningún conocimiento previo [81]. También se lo conoce con el nombre de aprendizaje no supervisado.

      - Algoritmos de recomendación. Consiste en predecir patrones de preferencias y el uso de esas preferencias para hacer recomendaciones a los usuarios [85]. También se lo conoce con el nombre de filtrado colaborativa–collaborative filtering.

      Algoritmos de reducción de dimensionalidad. Consiste en la reducción del número de variables (atributos) de un conjunto de datos sin afectar la capacidad predictiva del modelo [44].

      2.2.1 Nearest Neighbor (NN) Los algoritmos de aprendizaje automático basados en instancias se han convertido en las técnicas más utilizadas en aprendizaje automático y reconocimiento de patrones. Entre estas técnicas, el clasificador Nearest Neigh- bor (NN) es uno de los métodos supervisados más populares debido a su simplicidad [36].

      El algoritmo de clasificación nearest neighbor asigna a una observación no clasificada la categoría (clase) de un conjunto de datos (el más cercano) previamente clasificados [5].

      La versión más simple del clasificador requiere el almacenamiento de todos los datos previamente clasificados o conocidos (dataset de entrena- miento) y la comparación (uno a uno) de cada observación nueva a clasificar con cada observación del dataset de entrenamiento. Para reducir el tiempo de procesamiento y los requerimientos de almacenamiento, se han propuesto varias técnicas con la finalidad de reducir el tamaño de los datos almacenados en memoria [5].

      Existen algunos criterios que se deben considerar cuando se aplica un algoritmo de reducción del conjunto de entrenamiento [24]: - Reducción del almacenamiento: Uno de los objetivos principales de los algoritmos de reducción del conjunto de entrenamiento es la reducción en los requerimientos de almacenamiento - Aumento de la velocidad de procesamiento: La reducción en el número de observaciones almacenadas conlleva a una reducción del tiempo de procesamiento necesario para realizar la búsqueda.

      - Precisión de generalización: El algoritmo debe tener la capacidad de reducir el número de observaciones del datatset de entrenamiento sin disminuir considerablemente la precisión.

      A continuación se presenta algunos de las variaciones del algoritmo k NN que reducen el dataset de entrada [12]: - Condensed k NN: El método Condensed Nearest Neighbor (CNN) mantiene el enfo- que básico del método NN, sin embargo utiliza un subconjunto del conjunto de entrenamiento, este subconjunto clasifica correctamente todas las observaciones del conjunto original [42].

      - Reduced kNN: Elimina patrones los cuales no afectan los resultados del conjunto de entrenamiento [12] [77] [39].

      - Clustered kNN: El conjunto de entrenamiento se divide por cada categoría (clase) para luego aplicar un algoritmo de clúster (k-means) y se seleccionan los centros de cada cluster como el nuevo conjunto de entrenamiento, cada cluster se pondera en base al número de instancias presente e cada uno de los grupos [116].

      - K-D Tree kNN: Un K-D Tree (K-Dimensional Tree) es un árbol binario de búsqueda donde los datos en cada nodo del árbol representan un punto en el espacio K-dimensional. Cada nodo no terminal divide al espacio en dos subespacios denominados half-subscapes. Los puntos a la izquierda en el espacio están en el sub-árbol de la izquierda mientras que los puntos a la derecha del espacio están en el sub-árbol de la derecha. Los algoritmos NN que utilizan árboles K-D realizan la búsqueda de las observaciones cercanas recorriendo el árbol [108].

      Como se puede observar, los algoritmos de reducción del conjunto de almacenamiento eliminan observaciones con la finalidad de disminuir la cantidad de almacenamiento requerida, aumentar la velocidad de procesa- miento y mantener una precisión similar a la obtenida al trabajar con el conjunto de entrenamiento original.

      2.3. Infraestructura para procesamiento de Big Data con Aprendizaje Automático En esta sección se presenta una revisión de los conceptos asociados a aprendizaje automático y Big Data de manera combinada. La primera parte presenta una clasificación de las técnicas de aprendizaje automático para después resumir algunas plataformas orientadas a la implementación de los algoritmos.

      La escalabilidad es un aspecto importante a considerar en un método de aprendizaje. Esta capacidad se define como la capacidad de un sistema para adaptarse a las crecientes demandas en términos de procesamiento de la información. Para soportar este proceso en grandes volúmenes de datos, las plataformas incorporan diferentes formas de escalamiento [103]: - Escalamiento horizontal (Scale Out), implica la distribución del proceso en varios nodos (computadoras).

      - Escalamiento vertical (Scale Up), implica agregar más recursos de hardware a un solo nodo (computadora) 2.3.1. Librerías para Aprendizaje Automático En esta sección se presenta la descripción de varias librerías que implementan algunos de los algoritmos incluidos en la clasificación anterior. Se propone el uso de estas plataformas utilizando como criterio la integración con nuevos sistemas sin considerar herramientas para usuarios finales.

      - Apache Mahout proporciona implementaciones para muchos de los algoritmos de aprendizaje automático más populares. Contiene la implementación de algoritmos de clustering, clasificación y muchos otros. Para habilitar clustering, utiliza Apache Hadoop [6]. Muchos de los algoritmos de este framework se ejecutan sobre la plataforma Hadoop vía el framework MapReduce [8]. Adicionalmente proporciona un conjunto de algoritmos que pueden ser ejecutados localmente (sin utilizar un DFS) [19].

      - MLlib es parte del proyecto Apache Spark el cual implementa varios algoritmos de aprendizaje automático. Entre los grupos de algoritmos que implementa podemos encontrar algoritmos de clasificación, regresión, clustering y reducción de dimensionalidad [76]. El proyecto Spark es un proyecto de código libre creado por la University of California, Berkeley [4]. esta librería está escrita en Scala e incluye un conjunto de APIs para otros lenguajes como Java y Python [8].

      - FlinkML es la librería de aprendizaje automático del proyecto Flink . Su objetivo es proporcionar algoritmos escalables de aprendizaje automático. Proporciona herramientas para ayudar al diseño de sistemas de aprendizaje automático [6]. El proyecto Flink fue creado por tres universidades alemanas y se utiliza para procesar datos en tiempo real y en batch utilizando un procesamiento en memoria.

      - SMILE Statistical Machine Intel ligence and Learning Engine es una li- brería de aprendizaje automático que proporciona una amplia variedad de algoritmos entre los que se puede mencionar algoritmos para clasificación, regresión, búsquedas de vecinos cercanos (nearest neighbors), selección de variables, entre otras. Está completamente basado en Java y puede ejecutarse en cualquier lenguaje que sea compatible con Java Virtual Machine (JVM).

      El lenguaje más utilizado en las plataformas revisadas es Java, lo que muestra una tendencia a la hora de implementar sistemas que integran técnicas de aprendizaje automático. Las técnicas de escalado se combinan con otras para obtener plataformas con mejor rendimiento.

      2.3.2. Plataformas para procesamiento de Big Data Big Data se define como una colección grande y compleja de datos, que son difíciles de procesar por un sistema de base de datos relacional. El tamaño típico de los datos, en este tipo de problemas, es del orden de tera o peta bytes y están en constante crecimiento [60].

      Hay muchas plataformas para trabajar con Big Data, entre las más populares podemos mencionar Hadoop, Spark (dos proyectos de código abierto de la Fundación Apache) y MapReduce.

      - MapReduce [26] es un modelo de programación orientado al proceso de grandes volúmenes de datos [49]. Los problemas tratados con MapReduce deben ser problemas que se puedan separar en pequeñas tareas para ser procesadas en paralelo [67]. Este modelo de programación es adoptado por varias implementaciones específicas (plataformas) como Apache Hadoop y Spark.

      - Apache Hadoop es un proyecto de código abierto patrocinado por la Apache Software Fundation. Permite el procesamiento distribuido de grandes volúmenes de datos en un cluster [56]. Consta de tres componen- tes fundamentales [53]: HDFS (componente de almacenamiento), YARN (componente de planificación de recursos) y MapReduce.

      - Apache Spark es un sistema de computación en clúster basado en el concepto MapReduce. Spark soporta computación interactiva y su principal objetivo es proporcionar un alto rendimiento manteniendo los recursos y los cálculos en memoria [72].

      - H2O es un marco de trabajo de código abierto que proporciona bibliotecas para el procesamiento paralelo, el análisis de información y el aprendizaje automático junto con herramientas de evaluación y procesamiento de datos [72].

      - Apache Storm es un sistema de código abierto para computación distribuida en tiempo real. Una aplicación creada con Storm está diseñada como una topología DAG (Directed Acyclic Graph).

      - Apache Flink es una plataforma de código abierto para streaming y procesamiento por lotes.

      Todas las plataformas soportan todas las variedades de almacenamiento. Sin embargo, en implementaciones grandes, el almacenamiento local (o pseudo-cluster) no es una opción a considerar.

      2.3.3. Aprendizaje automático y Big Data: lenguaje–escalado–almacenamiento En esta sección se propone una clasificación de los trabajos de investigación que utilizan plataformas Big Data para aplicar técnicas de aprendizaje automático basadas en tres criterios: lenguaje (lenguaje de programación soportado), escalamiento (escalabilidad) y almacenamiento (tipo de almacenamiento soportado).

      La combinación de estos tres factores permite la correcta selección de una plataforma para integrar técnicas de aprendizaje automático con Big Data. El escalamiento está relacionada con el tipo de almacenamiento. En el caso de usar escalamiento horizontal, se debe usar un sistema de archivos distribuido.

      - Lenguaje de programación: El lenguaje de programación soportado es un aspecto importante a la hora de seleccionar una plataforma. Teniendo en cuenta que este trabajo está orientado a plataformas que no son de usuario final (herramientas como Weka14 , RapidMiner15 , etc. no son consideradas), se consideran los siguientes lenguajes de programación: Java, Scala, Python, R.

      El lenguaje más común en este tipo de implementaciones es Java. Sin embargo, en el transcurso del tiempo aparecieron capas de software que abstraen el acceso a ciertas tecnologías. Con estas nuevas tecnologías es posible utilizar las plataformas descritas en este documento con diferentes lenguajes de programación.

      - Escalado: El escalamiento se centra en la posibilidad de incluir más nodos de proceso (escalado horizontal) o incluir el procesamiento paralelo dentro del mismo nodo (escalado vertical) mediante el uso de tarjetas gráficas. En este documento se considera el escalamiento horizontal, vertical, clústers y GPU.

      Todas las plataformas escalan horizontalmente utilizando un DFS (Distributed File System) que en la mayoría de los casos corresponde a Hadoop. Sin embargo, las plataformas que trabajan con datos en memoria se están volviendo más populares (por ejemplo Spark).

      - Almacenamiento: Dependiendo de la cantidad de información y de la estrategia utilizada para procesar la información, es posible decidir el tipo de almacenamiento: local, DFS, en memoria. Cada tipo implica la implementación de la infraestructura de hardware a utilizar. Por ejemplo, en el caso de una implementación de clúster, es necesario contar con los equipos adecuados que constituirán los nodos del clúster.

      Para una prueba de conceptos es aceptable utilizar un pseudo-cluster que simula un entorno de clúster en una sola máquina.

      Todas las plataformas descritas previamente son escalables, es posible iniciar con una arquitectura o sistema de archivos local (también conocida como pseudo-clúster) a manera de prueba y progresivamente escalar a arquitecturas más complejas como un clúster lo que conlleva al uso de un sistema de archivos distribuidos (DFS).

      El lenguaje de programación no debería ser un factor importante debido a que hoy en día existen interfaces de programación que permiten hacer uso de las plataformas mencionadas en una gran variedad de lenguajes de programación.

      3. CONCLUSIONES En este trabajo, se presenta en primer lugar un método de compresión de información categórica basada en el procesamiento de datos a nivel de bits. El método propuesto necesita conocer el número de posibles categorías que posee un conjunto de datos (dataset) y el tamaño del bloque a utilizar para la compresión, el cual puede ser 8, 16, 32 o 64 bits. En una primera instancia, se propone la compresión de datasets completos representados por columnas. El método propone comprimir cada columna (atributo) uti- lizando un determinado número de bits, con lo cual cada columna puede utilizar un número de bits y tamaño de bloque diferente.

      Una de las ventajas del método de compresión propuesto es que el dataset resultante del proceso de compresión no necesita ser descomprimido para ser utilizado. El dataset puede ser descomprimido en tiempo real (on- the-fly) para su procesamiento. Con esto se reduce considerablemente la cantidad de memoria necesaria para representar la información debido a que lo que se almacena es el dataset comprimido y no su versión original.

      Para validar la flexibilidad del método de compresión propuesto, se describieron algunos algoritmos para realizar operaciones algebraicas sobre vectores, las mismas que son el soporte para implementar algoritmos más complejos como los algoritmos de aprendizaje automático.

      Se demostró que el método de compresión propuesto reduce considerablemente el tamaño de los datasets cuando tienen un número bajo de categorías, incluso la representación comprimida requiere menos memoria que la representación vectorial tradicional más pequeña (vector con ele- mentos de tipo byte).

      Adicionalmente, se propuso una modificación del algoritmo de clasificación k NN para trabajar con datos comprimidos. El algoritmo basa su funcionamiento en adaptar una implementación tradicional del algoritmo k NN utilizando un framework que implementa algoritmos de aprendizaje automático (framework SMILE) y adaptar el procesamiento de los datos a su versión comprimida.

      La variación del método de clasificación propuesto incorpora una nueva etapa en el proceso de clasificación: la etapa de compresión. La etapa de compresión puede ser ejecutada una sola vez junto con la etapa de pre-procesamiento de los datos, y el resultado de esta etapa puede ser al- macenado en un medio físico permanente para eliminar la necesidad de comprimir reiteradamente los datos previos a la ejecución de la clasificación.

      Se incorporó descompresión en tiempo real en el proceso de búsqueda de los k-vecinos y se incorporó el cálculo de las distancias entre observaciones (métrica) para trabajar con datos comprimidos. Se propuso el algoritmo para las métricas Euclidiana (datos numéricos), Hamming (datos categóricos) y HEOM (datos híbridos).

      Debido a que el método k NN propuesto no utiliza un muestreo de los datos para reducir el tamaño del conjunto de entrenamiento, en su lugar utiliza la versión comprimida de los datos, mantiene la precisión original del algoritmo pero con una reducción considerable de los requerimientos de memoria.


Fundación Dialnet

Dialnet Plus

  • Más información sobre Dialnet Plus

Opciones de compartir

Opciones de entorno