Blog personal de Luis Córdoba Fallas.

jueves, 16 de junio de 2011 4 comentarios

WEKA

Introducción

La minería de datos encierra un grupo de técnicas para la solución de múltiples problemas en distintos campos, en la actualidad existen muchas herramientas enfocadas a la minería de datos que utilizan este sin número de técnicas con el objetivo de obtener conocimiento nuevo desde  las bases de datos.

Con el paso del tiempo han surgido más y más herramientas para la explotación de datos con el fin de abarcar un mercado que ha tenido un enorme auge en los últimos años, brindando soluciones sobre las fuertes demandas de las empresas, han surgido herramientas de índole comercial como Cart, SPSS Clementine, Kxen, SAS Enterprise Miner, Tiberius, por otro lado han surgido herramientas para la aplicación de minería de acceso gratuito, o licencia libre dentro de este otro grupo se pueden mencionar MiningMart, Orange, TariyKDD, ARMiner y WEKA, que es la herramienta de minería que se seleccionó para desarrollar esta investigación se pretende mostrar las características básicas de esta herramienta, así mismo su estructura y su aplicabilidad funcional, adicionalmente se incluye un pequeño y resumido cuadro comparativo entre esta y otras herramientas para poder ver su similitud.  

1.    ¿Qué es Weka?

Weka es una herramienta de tipo software para el aprendizaje automático y minería de datos diseñado a base de Java y desarrollado en la universidad de Waikato en Nueva Zelanda en el año 1993, esta herramienta por su nombre en inglés (Waikato Environment for Knowledge Analysis) además es una herramienta de distribución de licencia GNU-GLP o software libre

Weka contiene una colección de algoritmos para realizar análisis de datos y modelado predictivo, también tiene herramientas para la visualización de estos datos, además provee una interfaz gráfica que unifica las herramientas para que estén a una mejor  disposición.

1.1 Breve Historia.

Inicialmente en el año 1193 la universidad de Waikato ubicada en Nueva Zelanda se dio a la tarea de desarrollar la primera implementación para analizar datos procedentes de la agricultura y con esto se dio lo que fue la primer versión  de WEKA, esta fue desarrollada en TCL/TK y lenguaje C, cuatro años más tarde en 1997 se decide escribir todo el código original en java, además se le incluyeron implementaciones de algoritmos de modelado.

En el año 2005 esta herramienta muy flexible y fácil  de utilizar, recibe el galardón “Data Mining and Knowledge Discovery Service”, por parte de la ACM (Asociación for Computing Machinery) que es  la Sociedad Científica Para el Desarrollo de la Computación Educacional.

2.    Características

Esta es una herramienta muy versátil que soporta muchas tareas estándar de la minería de datos en especial tareas de procesamiento de datos, regresión, clasificación, clusterin entre otras, así mismo permite la visualización y la selección de los datos.

Todas las técnicas en WEKA están basadas en la sunción de datos que están disponibles en un fichero plano o una relación, en donde cada registro de datos esta descrito por un número fijo de atributos nominales o numéricos.

Permite el acceso a otras instancias de bases de datos por medio de SQL, gracias al JDBC, además puede procesar un resultado generado a base de una consulta hecha a una base de datos.

3.    Interfaz de Usuario
Esta herramienta consta inicialmente de un selector de interfaz, y consta de una consola en donde se permite tener acceso a las 4 interfaces básicas que conforman la herramienta, a continuación se detalla un poco de cómo están conformadas estas interfaces.

3.1 Simple CLI: Esta es la abreviatura de (Simple Command Line Interface) básicamente se trata de una consola la cual permite tener acceso a todas las funciones pero sujeta a la línea de comandos, todas son invocadas por medio de Java, puede realizar cualquier operación soportada por weka pero de manera directa, algunos de los comandos básicos soportados son los siguientes.
·         java <nombre-de-la-clase><argumentos>: invoca el método principal de la clase con los argumentos especificados.
·         break: detiene cualquier tarea que se encuentre en curso.
·         Kill: Elimina la tarea que se encuentre en curso no, es muy aconsejable su uso y se recomienda solo cuando una tarea no puede ser detenida por break
·         Cls: Borra todo el contenido de la pantalla de la consola
·         Exit: Comando de salida de la aplicación
·         Help: proporciona una breve descripción de cada mando.

A continuación  se detalla un ejemplo básico que muestra la sintaxis utilizada en la línea de comando de Weka.

En este ejemplo se ilustra como seria la cadena de comando para crear un modelo entrenando un árbol de decisión, con el algoritmo weka.classifiers.trees.J48

Estructura Básica

java -Xmx[MEGABYTES_DE_MEM_PARA_LA_TAREA]M -cp [PATH_A_weka.jar] [ALGORITMO_DE_APRENDIZAJE+PARÁMETROS] -t [FICHERO_ENTRENAMIENTO] -d [FICHERO_DONDE_SE_GUARDA_EL_MODELO]

Aplicación Práctica

java -Xmx1024M -cp /opt/weka-3-4-9/weka.jar weka.classifiers.trees.J48 -C 0.25 -M 2 -t rweka.arff -d rweka.model

En el ejemplo se invoca la clase principal “Java”, luego se le asigna el espacio en memoria para realizar la tarea, en este caso es de 1024 Mb, así mismo se declara la ruta para la clase weka.jar y se define el algoritmo de aprendizaje a usar que como lo habíamos mencionado seria weka.classifiers.trees.J48, por último se incluye el dato del fichero de entrenamiento que es rweka.arff y el nombre de fichero donde se guarda el modelo, para este ejemplo seria rweka.model

Si quisiéramos con el modelo generado realizar una clasificación, se utilizaría la siguiente estructura.

java -Xmx[MEGABYTES_DE_MEM_PARA_LA_TAREA]M -cp [PATH_A_weka.jar] [ALGORITMO_DE_APRENDIZAJE] -l [FICHERO_CON_EL_MODELO] -T [FICHERO_A_CLASIFICAR] -p 0

Utilizando los mismos datos del ejemplo anterior, nombre del fichero de datos rweka.arff y nombre de modelo rweka.model, la estructura quedaría de la siguiente manera.

java -Xmx1024M -cp /opt/weka-3-4-9/weka.jar weka.classifiers.trees.J48 -l rweka.model -T rweka.arff -p 0

3.2 Experimenter: El modo experimentador y es muy útil para aplicar uno o varios tipos experimentos pero a gran escala, por ejemplo se puede hacer clasificación sobre un gran conjunto grande de datos, para luego proceder a realizar análisis estadístico y por ultimo obtener índices de estadística.

3.3 Explorer: Se puede decir que es la interfaz de usuario que permite más accesibilidad a los componentes principales de todo el bando de trabajo de modo gráfico, contiene el acceso a todas las funciones de manera muy sencilla, este está dividido en varios paneles.
ü  Preprocess. Aquí  están incluidas todas las herramientas y filtros para cargar y manipular los datos que se pretende utilizar.
ü  Classification. Provee acceso a todas las técnicas de clasificación y regresión incluidas en weka
ü  Cluster. En este se integran varios métodos de agrupamiento.
ü  Associate. Incluye las técnicas utilizadas para reglas de asociación.
ü  Select Attributes.  Contiene las opciones de acceso a las diversas técnicas usadas para la reducción de la cantidad o el numero de atributos
ü  Visualize. Esta sección permite hacer estudios de comportamiento, usando las técnicas de visualización incluidas en Weka.

3.4 KnowledgeFlow: Esta interfaz es flexible a generar  proyectos de minería de datos mediante la generación de Flujos de Información.

4.    Ventajas

ü  Es un software de fácil  acceso por los usuarios ya que está disponible libremente bajo licencia pública GNU.
ü  Contiene una gran gama de técnicas para modelado y procesamiento de datos
ü  Posee una interfaz de usuario muy sencilla que permite su uso hasta por usuarios sin experiencia
ü  Funciona en la mayoría de las plataformas actúalas ya que es una implementación en java

5.     Desventajas

ü  No incluye algoritmos para el modelado de secuencias
ü  Al utilizar métodos de combinación de modelos, los resultados tienden a complicarse, perdiendo comprensibilidad.

6.     Campos de Aplicación

Weka posee un grupo de técnicas que se pueden aplicar con éxito a múltiples capos, tales como el Marketing, manufactura, salud, energía, finanzas, medicina, entre otros, para su aplicación se debe de tener en cuenta el tipo de tarea que se desea realizar. Con base a la tarea se puede implementar en para dar la solución necesaria en cada uno de estos campos, a continuación se muestran una serie de tareas incluidas en Weka.

ü  Métodos de clasificación basados en redes neuronales
ü  Manipulación de métodos numéricos sobre datos (Funciones estadísticas)
ü  Métodos de clasificación basados en máquinas de soporte vectorial
ü  Metaclasificadores
ü  Métodos de implementación de árboles de decisión
ü  Implementación de clusterin
ü  Métodos de estimación de probabilidades
ü  Clases para implementar clasificadores bayes

7.    Cuadro Comparativo

Actualmente además de weka existen en el mercado un gran número de herramientas para la explotación de la minería de datos, algunas con mejores características en algunos aspectos, pero casi todas son diseñadas con la misma finalidad, a continuación se muestra un cuadro comparativo.

Cuadro comparativo – Herramientas de minería de datos.
Característica
Clementine
SAS Enterprise Miner
Tariykdd
Weka
Licencia libre
No
No
Si
Si
Requiere conocimientos avanzados
No
No
No
No
Acceso a SQL
Si
No
Si
Si
Multiplataforma
NO
Si
Si
Si
Requiere bases de datos especializadas
NO
---
No
NO
Métodos de máquinas de soporte vectorial
Si
Si
No
si
Métodos bayesianos
Si
---
No
si
Puede combinar modelos
Si
Si
No
Si (no resulta muy eficiente)
Modelos de clasificación
Si
Si
Si
si
Implementa arboles de decisión
Si
Si
Si
si
Modelos de regresión
Si
Si
No
Si
Clusterin y agrupamiento
Si
Si
No
Si
Interfaz amigable
Si
Si
Si
Si
Permite visualización de datos
Si
Si
Si
Si
      
Conclusión

Se puede concluir diciendo que las herramientas mencionadas anteriormente tienen una misma finalidad,  suplir las necesidades del mercado actual que es: la búsqueda de nuevo conocimiento en base a la información con que se cuenta.
Se pudo lograr ver las características de Weka y se puede decir que es una solución muy completa que incorpora potentes características para la explotación de datos, con características muy similares a otras herramientas  de venta comercial y con la ventaja sobre estos de que es una herramienta de acceso libre y completamente gratuito.


Ing. Luis Córdoba Fallas
sábado, 5 de febrero de 2011 1 comentarios

Tendencias de la Minería de Datos

Como  ya se ha visto, la minería de datos y todo el conjunto de técnicas implícitas en esta, engloban un conjunto de soluciones para la extracción de conocimiento implícito en las bases de datos, con el pasar del tiempo y la evolución y modernización de los procesos de información, esta ha sufrido una serie de adaptaciones con el fin de crecer paralelamente con todas las demás disciplinas en donde esta se aplica, así mismo  la aplicación de esta se ha visto aprovechada cada vez en más áreas, ampliando así los  campos en donde esta es aplicada.
Con la presente investigación se pretende  ampliar de manera breve el panorama sobre las tendencias actuales sobre el uso o aplicación de la minería de datos, en numerosos y novedosos campos además del impacto o aporte que estas brindan en su accionar, además de la evolución de estas a partir de la necesidad de ser aplicada en diversos campos.

      Nuevas Tendencias

La minería de datos con el pasar del tiempo y conforme a los cambios tecnológicos ha sufrido para bien una serie de cambios notables, en donde se ha buscado ajustar las distintas técnicas hacia las nuevas estrategias de mercado, como los modelos de compra en línea además de diversos usos y aplicaciones enfocados hacia el desarrollo de la web. De aquí ha surgido una gran importancia sobre la aplicación de la MD en datos no estructurados, como texto, páginas de internet, etc.

Por otro lado se ha puesto en evidencia la necesidad de, mejorar los tiempos de respuesta en la búsqueda de información o explotación de la MD, además de la exigencia de procesos que funcionen prácticamente en línea, por ejemplo detección de fraude por medio de dispositivos electrónicos o tarjetas de crédito. 

Dentro de estas tendencias, también se destaca el uso de la MD en nuevas disciplinas  y en algunos casos se han mejorado o explotado nuevos algoritmos, para mejorar su uso en campos de acción ya existentes, se pueden citar y describir brevemente algunas de las siguientes.

      Aplicación en sistemas Web.

Se han implementados diversas metodologías de MD para su uso sobre páginas web y este en la actualidad es uno de los campos más explorados, ya que con la unificación de servicios por medio de la web, se hace más fuerte la necesidad de implementar medios de explotación de datos más eficientes y que puedan lograr mejores resultados para el desarrollo de la misma, un ejemplo muy claro ligado a la educación, es la aplicación de la MD en Sistemas E-learning, con el fin de   obtener reglas predictivas que permitan hacer mejoras a los cursos que mediante este tipo de sistemas se imparten.
Una implementación muy simple y común se puede encontrar en los navegadores web, en donde se incluyen métodos bayesianos de aprendizaje automático, principalmente utilizados para detección de correo no deseado y el análisis de correo electrónico.

      Aplicación a procesos sociales.

Este es otro novedoso campo dentro de las tendencias de aplicación de la MD, en donde se utilizan técnicas de estadística clásica y técnicas de inteligencia artificial, para buscar patrones dentro de la información almacenada por los sistemas de información de procesos sociales (Prospección de datos) y se implementan por Ejemplo: en casos como el estudio de la incapacidad permanente y estudios para la prevención de Violencia de Género realizados por el grupo de “Investigación y Aplicaciones en IA de la Universidad de Málaga, España” con este estudio se pretende obtener información útil para valorar la situación social de una persona y desarrollar sistemas de ayuda a la valoración de dichas situaciones.
Este tipo de implementaciones de la MD ayudan a dar una mejora en la implementación de los procesos sociales.

      MD para Asociación en Contextos Semánticos.

En este tipo de implementación se trabaja con minería de textos, sobre documentos no estructurados, con la finalidad de obtener conocimiento semántico de coherencia. La idea es encontrar asociaciones y patrones secuenciales, que a su vez son aprendidos por una red neuronal, que luego encontrara asociaciones entre patrones del mismo concepto de manera más automatizada.

     Análisis de Datos Sensoriales con MD.

Esta es una implementación enfocada a la industria alimenticia, en donde se aplican técnicas de regresión, con la finalidad de relacionar descripciones sensoriales humanas con las preferencias de los consumidores para determinar cuáles son las mejores decisiones a la hora poner en marcha   la producción de un producto específico, todo esto con el objetivo de acaparar un mejor mercado de consumidores.

     Aplicación en Inteligencia de negocios (Business Intelligence).

En este campo se han mejorado las técnicas de aplicación para el desarrollo de los mismos, se han hecho implementaciones de redes neuronales para la predicción de ventas basadas en tendencias anteriores, asociaciones para detección de patrones de consumo de un artículo o servicio, además de clasificación para encontrar en una selección de afiliados a los clientes potencialmente más destacados, determinar el impacto de un artículo sobre un determinado mercado, todo este tipo de aplicaciones tienen como finalidad mejorar mediante los resultados obtenidos, la toma de decisiones. Llegar a un mejor entendimiento del negocio, sacando el máximo provecho de los datos existentes.

      Reconocimiento de Imágenes en huellas dactilares con MD.

Se han realizado implementaciones de MD para el reconocimiento de huellas dactilares, mediante clasificación, en donde por medio de  los patrones de la huella se permite clasificarla y asignarla a un conjunto o clase, que se traduce en una sección de la base de datos a ser revisada, por último la correspondencia entre huellas se basa en encontrar la similitud entre dos patrones de características cuyos componentes están representados por los puntos que caracterizan a cada huella.
Su aplicación más común ha sido la criminalística,  en donde se intenta localizar un sujeto realizando una búsqueda comparativa de los patrones de una muestra, y los patrones de la información contenida en las bases de datos, sin embargo el uso de esta aplicación se ha extendido y en la actualidad también se utilizan para el acceso a los sistemas de información, así mismo para el acceso a sitios físicos dentro de las empresas en donde el acceso de personal es restringido, todo esto está basado en que las huellas dactilares del ser humano son un identificador único, de modo que puede ser utilizado como un tipo de cedula de Identidad.  

     MD en la Medicina.

Este es uno de los campos en donde se le ha dado mucha importancia al uso de la MD, se implementa principalmente para la generación de hipótesis científicas, todo esto basado en historiales clínicos y médicos, un ejemplo muy claro detección de patrones en imágenes médicas, en donde se pueden entrenar sistemas capaces de detectar anomalías, de modo que se puede entrenar un sistema que sea capaz de detectar las imágenes similares a un tumor en una radiografía.
Adicionalmente existen muchas implementaciones para el área de la medicina como la biomedicina, análisis de investigación científica como los estudios del Genoma, en donde los datos son utilizados para extraer información sobre expresión genética, además del uso de MD para el diagnóstico de accidentes cerebro-vasculares en donde se han desarrollado sistemas para dar soporte a él diagnóstico de las causas de accidentes,  también el uso en el control de la distribución de fármacos, como el implantado en cuba (Debesa F, Jiménez G, Pérez J, Ávila J. La estrategia de Fármaco-epidemiología en Cuba) en donde se implementó un sistema de redes neuronales para la implementación en la fármaco-vigilancia, este sistema se implementó a nivel nacional.
      
Conclusiones

Sin lugar a duda las nuevas   tendencias de implementación de la Minería de datos van de la mano con la implementación de sistemas de información en distintas áreas.
De modo que la tendencia de la minería de datos se está desarrollando casi que en cualquier ámbito en donde los sistemas de  generen información que  pueda ser guardada en cualquier tipo de repositorio de datos, o archivos de texto digitales.

También se puede evidenciar que existen diversas implementaciones de las técnicas de minería de datos para cualquier tarea o problema que se plantee, sin embargo es muy evidente que aún falta camino por recorrer en cuanto al desarrollo de este tema, porque como se ha visto, su aplicación en los campos de hoy en día va más allá de simplemente analizar procesos de producción que fue en donde se dieron los inicios de tan potente proceso, y se está proyectando en nuevos campos en donde espera que se pueda desarrollar, para su aprovechamiento.

Es importante destacar la relevancia que se le da hoy en día a la MD, ya que como hemos visto se ha implementado en numerosos campos de ciencia y tecnología, se utiliza para la aplicación de procesos médicos para detección de enfermedades, investigaciones médicas, así como científicas, estudios de mercados, aplicaciones de estudios de comportamientos socioculturales  y un sin número de usos que denotan su gran importancia.


Sin lugar a Duda aunque hay mucho camino por recorrer las tendencias futuras apunta a mejorar las herramientas que actualmente existen para la aplicación de esta, a mejorar y desarrollar nuevos algoritmos para abarcar nuevos campos, a mejorar   en cuanto a escalabilidad se refiere y sin lugar a duda a convertirse en una poderosa herramienta que brinde muchas soluciones a muchos problemas en donde se requiera aplicar.


Ing. Luis Córdoba Fallas
 
;