sábado, 16 de febrero de 2008

Conectar Weka con MySQL



A mi me costo un poco.. y conectando los puntos hacia atrás, como diría Steve Jobs, me parece fácil... pero por si alguien le interesa, no esta de más explicarlo.
De entrada necesitamos tener instalado Weka y MySQL. Si no tenéis la base de datos, os recomiendo un software gratuito que te instala PHP, Apache y MySQL funcionando perfectamente en windows, se llama WAMP.
Ahora vamos a la página de MySQL y bajamos el driver jdbc connector. Nos viene un zip con un archivo jar dentro que es el que ponemos en el mismo directorio que el programa Weka. Allí encontraremos un fichero que se llama Runweka.ini que habrá que editar. Se encuentra en ese fichero una linea (para el final) haciendo referencia al classpath (ruta con las clases necesarias de un programa java) y allí copiamos el nombre de nuestro jar como sigue:

cp=%CLASSPATH%;mysql-connector-java-5.1.5-bin.jar


Después ya podemos arrancar Weka y seleccionar "Open DB...". Tenemos varios parámetros aquí. La URL de Base de Datos hemos de poner la dirección de acceso a nuestro MySQL. También nos pide usuario y password y que consulta queremos hacer. La consulta es un SELECT cualquiera. Adjunto imagen de como me quedo a mi, teniendo en MySQL una base de datos llamada banco, con un usuario banco y dentro de esa DB una tabla que se llamaba "clientes".



A partir de ahí, el único problema que tuve fue con los tipos de datos. No utilicéis tipo INT para los numéricos, sino DECIMAL. Por lo demás, como una seda.

lunes, 11 de febrero de 2008

Herramienta de Data Mining: WEKA


He realizado la actividad final del módulo en base a una herramienta open source de la suite de Business Intelligence de Pentaho, Weka.

Al principio parece una herramienta "simplona"... una foto de un dulce pajarillo y cuatro botones, parece que no pueden dar mucho de si... pero nada más lejos de la realidad.

Weka se denomina a si mismo un conjunto de librerías para tareas de minería de datos. Las librerías pueden ser llamadas desde la interficie de weka o desde tus propias clases Java. Weka contiene herramientas para diferentes tareas básicas:
  • Preprocess: Multitud de herramientas para el preprocesamiento de los datos (como por ejemplo discretización de variables).
  • Classify: Algoritmos de clasificación, distribuidos por paquetes, como por ejemplo ID3 o C4.5
  • Cluster: Diferentes algoritmos de segmentación como el simple k-means.
  • Associate: Algoritmos para encontrar relaciones de asociación entre variables (Apriori entre otros).
  • Select atributtes: Aquí, una vez cargados los datos, Weka es capaz de buscar por nosotros las mejores variables del modelo.
  • Visualize: Herramienta de visualización de datos en los ejes cartesianos, con muchas posibilidades.
Al principio tuve varios problemas de conexión con la Base de datos... después de utilización... pero poco a poco he podido comprender parte de su potencial y me ha parecido una herramienta magnífica. Iré explicando!!

jueves, 7 de febrero de 2008

Actividad final del módulo


Estamos al final del módulo de Data mining y se nos ha planteado una actividad final que me está pareciendo muy interesante... y a la vez me esta dando mucho trabajo!!

Os dejo el enunciado... y dentro de unos días hablaremos de mi solución planteada.

El escenario es, que somos unos analistas CRM de una entidad financiera, donde la tasa de abandono ronda el 18%. El banco quiere abordar el problema desde dos puntos de vista:

  1. Conocer cual es el perfil de los clientes que abandonan la entidad y como ese perfil evoluciona a lo largo del tiempo, desde que entran en la entidad como clientes, hasta que abandonan.
  1. Predecir a corto plazo la propensión de abandono de los clientes, con el fin de poder realizar acciones comerciales y de retención sobre los más propensos.
Tenemos mucho que aprender todavía... no?

domingo, 27 de enero de 2008

Fases de un proyecto de Minería de datos



Dentro de un proyecto de Data Mining podemos diferenciar las siguientes fases:
  1. Identificación y definición del objetivo de negocio a resolver. Muy importante. La minería de datos no es un fin en si mismo, sin objetivos de negocio no hay proyecto.
  2. Identificación de las fuentes de datos para soportar la resolución de los objetivos y análisis preliminar de la calidad de los datos. Si no tenemos unos datos con la calidad requerida y el formato necesario, nuestro proyecto será un fracaso. Creo que muchas veces se subestima este punto...
  3. Preparación y acondicionamiento de los datos. Una fase crucial, que ocupa un tanto por ciento importante del tiempo del proyecto. Con preparación y acondicionamiento estamos hablando de las estructuras que alimentaran la construcción del modelo. Por ejemplo, si queremos hacer una segmentación de clientes, para ello necesito preparar los datos en formato tabla de clientes, donde cada registro es un cliente con los atributos de modelización en columnas.
  4. Modelización de datos. Aplicando las técnicas de minería de datos, obtenemos el mejor modelo predictivo posible para nuestros objetivos.
  5. Análisis de resultados. Una vez obtenido el modelo, se debe proceder a su validación comprobando que las conclusiones que arroja son válidas y suficientemente satisfactorias. En el caso de haber obtenido varios modelos mediante el uso de distintas técnicas, se deben comparar los modelos en busca de aquel que se ajuste mejor al problema. Si ninguno de los modelos alcanza los resultados esperados, debe alterarse alguno de los pasos anteriores para generar nuevos modelos.
  6. Conclusiones. ¿Se han cumplido las expectativas y los objetivos?
  7. Puesta en producción. No nos podemos quedar con unos simples informes de consultoría o una serie de recomendaciones. Si cogemos los modelos generados y los ponemos en producción de forma efectiva estaremos aprovechando el principal beneficio del Data Mining.

domingo, 20 de enero de 2008

Técnicas de Minería de datos


  • Clustering. Consiste en definir grupos lo más parecido posible y a su vez lo más distinto posible a otros grupos (o clusters). Ejemplo: clientes más rentables, clientes menos rentables.

  • Segmentación. Consiste en la división de la totalidad de los datos, segun determinados criterios. Ejemplo: Dividir los clientes en función de su antiguedad.

  • Clasificación. Consiste en definir una serie de clases, donde poder agrupar los diferentes clientes. Ejemplo: definida unas variables de entrada se produce una determinada salida que clasifica al cliente en un grupo o en otro. Por ejemplo, si la edad esta entre 20 y 40, esta casado y tiene cuenta de ahorro, entonces contrata hipoteca en un 78% de posibilidades.

  • Predicción. Consiste en intentar conocer resultados futuros a partir de modelizar los datos actuales. Ejemplo: Creamos un modelo de variables para saber si el cliente compra o no compra. Aplicamos el modelo a un futuro cliente, y ya podemos predecir si comprará o no.

No se trata de escoger una técnica o otra... mi mucho menos. Cada cosa para lo que está concebida. La minería de datos es, prácticamente, el único proceso analítico que genera nueva información en la capa de acceso. Toda esta información debe ser reintroducida en el entorno para su posterior análisis.

jueves, 17 de enero de 2008

Minería de datos


Muy interesante este apartado del temario... que creo dará para unos cuantos posts. De entrada me quedo con una definición:
Se denomina Minería de datos al conjunto de metodologías, técnicas de modelización matemática y mecanismos de visualización, cuyo objetivo es la extracción de tendencias, patrones y comportamientos subyacentes en grandes volúmenes de datos, y no detectables mediante técnicas de consulta convencionales, con el fin de soportar la toma de decisiones de negocio

Me quedaría con la frase de que un gran numero de analistas y responsables de DWH piensan que hacen minería de datos simplemente porque sus sistemas son muy grandes en cuanto a datos y soportan consultas muy pesadas.

lunes, 7 de enero de 2008

Esquema en estrella


El esquema en estrella es la representación más importante del modelo dimensional. En el modelo dimensional encontramos hechos y dimensiones.
Todo objeto de análisis es un hecho. Este hecho se representa en el modelo dimensional en forma de tabla de hechos o fact table. Los hechos son analizados a su vez, a través de las dimensiones o componentes (tantas como dimensiones participen en la descripción del hecho), que se representan en el modelo dimensional a partir de las tablas de dimensiones.

Si realizamos este esquema mental (tabla de hechos en el centro y tablas de dimensiones alrededor), todo parece dibujar una forma de estrella, origen del nombre.

Los hechos tienen columnas de datos denominadas métricas y las dimensiones tienen columnas que representan los niveles de jerarquías.

Un ejemplo: Tenemos un hecho archifamoso: ventas. Y sus dimensiones: Tiempo, localización y producto. Alguna métrica de ventas seria número de unidades vendidas y valor de la venta. En cuanto a los niveles de jerarquía de las dimensiones encontraríamos día, semana y mes (para el tiempo), almacén, población, provincia (para la localización), producto, familia, departamento (para los productos). Creo que así queda más claro:




Para acabar, decir que las métricas son indicadores que nos permiten cuantificar los hechos y siempre hay que intentar buscar estas métricas que sean aditivas. Una métrica es aditiva cuando es sumarizable por todas sus dimensiones. Otro ejemplo: Una fabrica tiene 50 unidades en el almacén en Enero. En Febrero tiene 30 y en Marzo 10. Esta métrica no es sumarizable, ya que 50+30+10 no da el inventario final del trimestre. Esto suele pasar bastante con la dimensión TIEMPO.