domingo, 1 de junio de 2008

Federación de datos


La federación de datos es la técnica de integración de datos que permite acceder a diferentes entornos de origen de datos con una visión común, como si en la práctica fuese una sola base de datos.
Un elemento clave por tanto es el catálogo de datos común, que se mantiene para poder localizar los datos entre las diferentes fuentes.

La mayor ventaja de la federación de datos es que el acceso es sobre datos reales, eliminando la necesidad de tener recursos para mantener copias de datos. Otra ventaja es la solución en si, poder acceder a múltiples fuentes de datos como si fueran una sola.
La desventaja principal es que no es óptima cuando hablamos de grandes volúmenes de datos o donde el rendimiento sea crítico.

La federación de datos es muy usada como solución a corto plazo, para remediar las necesidades de información en casos de compra o unión de nuevas empresas.

Enterprise Information Integration


La EII es una tecnología de Integración de datos que proporciona una visión común y consistente de un conjunto de datos no homogéneos. El objetivo de esta tecnología es permitir a las aplicaciones el acceso a datos dispersos como si estuviesen todos residiendo en una base de datos común.

Cuándo interactuamos con los productos EII realizando consultas como cualquier BD, estos recogen los resultados individuales de cada uno de los subcomponentes de las consultas, los combinan adeucuadamente y devuelven el resultado a la aplicación que lanzó la consulta. Es por eso que el punto fuerte que puede diferenciar un producto comercial de otro es la optimización de consultas distribuidas. Varia mucho si en nuestros entornos queremos hacer lecturas o lecturas y escrituras. Para estas últimas es fundamental el soporte a la transaccionalidad y por su complejidad no todos los productos EII soportn acceso completo en escritura.

Las características más importantes de los productos que implementan tecnologias EII son:
  • Transparencia en el acceso a datos.
  • Integración de datos de diferentes fuentes.
  • Posibilidad de federar cualquier fuente de datos.
  • Acceso en lectura y escritura a las diferentes fuentes de datos.
  • Rendimiento
En una arquitectura EII podemos destacar los siguientes elementos:
  • Catálogo de metadatos.
  • Wrappers (librerias de acceso a fuentes de datos particulares).
  • Motor de federación.

sábado, 31 de mayo de 2008

Integración de datos


Pufffffffff.... dos meses sin escribir, no hay quien lo aguante. Bueno, he necesitado este parón para poder tirar adelante el proyecto que tenia entre manos, que por suerte ha acabado bien.
Eso si, el máster sigue, impepinable cada semana, sin descanso.
El módulo en el que estoy ahora y que es el que mayor interés tenía a priori, es el de Integración de datos.
El temario comprende los siguientes temas:
  1. Introducción a la integración de datos
  2. Calidad de datos
  3. Técnicas de integración de datos
  4. Las principales tecnologías de integración de datos: sus características y escenarios de uso.
  5. Desarrollo de la estrategia de integración de datos en la empresa.

Intentaré ser más constante. Saludos ;-)

jueves, 27 de marzo de 2008

Datawarehouse para dummies


Sin ánimo de ofender... pero hoy me encontrado en la aventura de explicar que era un DWH.. en una conversación informal, con gente técnica, pero profana en la materia.
No me han venido a la cabeza grandes explicaciones sobre el data warehouse, la verdad.

"Pues... como te diría yo... un data warehouse es una BD orientada al análisis.. lo normal seria orientar la BD de manera operacional, con un diseño de tablas que refleja una realidad concreta y mantenible, optimizado para su acceso y modificación. Un DWH se estructura en hechos de estudio, y a su alrededor encontramos todo lo necesario para poderlo analizar el hecho en profundidad. Los datos se cargan con una periodicidad concreta de las BD operacionales... pero se estructuran por hechos. También los datos se encuentran en el formato más adecuado para las consultas. Por ejemplo, en un BD operacional tendrías un campo "Fecha de nacimiento"... en un DWH podrías tener un campo edad."

Bueno... pues así queda una definición de data warehouse para dummies.

miércoles, 26 de marzo de 2008

Nuevo módulo: Modelado de datos


Iniciamos un nuevo módulo del máster. Os presento aquí el temario:
  1. Datos, conocimiento e información
  2. Bases de datos
  3. Diseño lógico de bases de datos
  4. La implementación del diseño lógico: El diseño físico
  5. Introducción a los sistemas de inteligencia de negocio (Business Intelligence)

miércoles, 12 de marzo de 2008

Carrefour responde


Seguimos con nuestro experimento de supermercados y la atención al cliente.
Carrefour nos ha enviado una respuesta a mis "plegarias":

Estimado Sr:
Gracias por hacernos llegar sus comentarios a través de www.cuentaseloacarrefour.com
Le agradecemos que se haya tomado la molestia de poner en nuestro conocimiento su sugerencia . En Carrefour estamos siempre encantados de escuchar las propuestas de nuestros clientes para ir implantando nuevos servicios que se adecúen a sus necesidades.
Lamentablemente no es posible en todas las ocasiones satisfacer a todos nuestros clientes al mismo tiempo. Tendremos en cuenta todos sus comentarios a la hora de introducir mejoras en el hipermercado en el futuro.

Atentamente, Centro de Atención al Cliente Centros Comerciales Carrefour
www.cuentaseloacarrefour.com



Y a lo que tuve que contestar alguna cosa, claro:

Estimado Sr. Cuentaselo a Carrefour,
No acabo de entender que me quieren decir con su correo electrónico. Parece ser que mi propuesta no ha llegado a nadie, ya que si hubiese sugerido poner mandarinas en la pescadería podrían haberme contestado lo mismo.
Me gustaría saber si han tenido en cuenta mi email, quien ha leído mi propuesta y si ha llegado a una persona que puede valorar si es una buena idea o no.
Es una pena que publiciten tanto que quieren acercarse a los clientes y no sean capaces de valorar las propuestas de los mismos.

Atentamente,


Y de nuevo la respuesta de Carrefour:

Estimado Sr:
Gracias por contactar con nosotros a través de www.cuentaseloacarrefour.com.
En relación a su consulta le informamos de que lamentamos en esta ocasión no poder hacernos cargo de su petición, esperamos seguir contando con su confianza para que nos brinde la oportunidad de satisfacerle en ulteriores oportunidades.

Así mismo, le recordamos que hasta el día 23 de Abril puede participar en la promoción " Una madre brillante " a través del siguiente enlace:
http://www.elclubcarrefour.carrefour.es/clubcarrefour/anillo/
Esperando haber sido de ayuda, aprovechamos la ocasión para saludarle,

Atentamente,

Centro de Atención al Cliente
Centros Comerciales Carrefour
www.cuentaseloacarrefour.com

¿Creéis que me han tomado el pelo? Realmente hay alguien al otro lado? Me parece que no toman ninguna nota de nada, y eso que se han molestado en comprar un dominio (cuentaseloacarrefour.com) y todo para simular que te escuchan... eso si, te cuelan la promoción "una madre brillante" rápidamente.

¿Vale la pena seguir insistiendo? No tengo muchas esperanzas!

jueves, 6 de marzo de 2008

in-database-data mining


Entendemos por in-database-data mining a los servicios ligados al gestor de base de datos. Es el propio motor relacional el encargado de implementar los servicios de modelización, validación y aplicación.
Tiene por tanto una mayor escalabilidad y rendimiento. La arquitectura de estas aplicaciones suele tener dos niveles: servidor de datos y entorno de usuario.

Ventajas:
  • Alto rendimiento y escalabilidad. Los gestores de base de datos hoy en día son verdaderos súper servidores y con gran futuro. Tienen compañías muy fuertes y consolidadas detrás.
  • Gestión de los modelos en la propia BD. Tiene solo una importancia relativa. Comodidad.
  • Fácil integración con los procesos. Depende el modelo de fuentes de datos seguido por la empresa puede ser un punto fuerte. Ayuda al camino para el éxito pero no es determinante.
  • Interfaz basado en estándares. Buena ventaja. Siempre los estándares aportan fiabilidad y robustez. Creo que a largo plazo es lo que puede dar más confianza.
  • Permite separar mejor los entornos de modelización y aplicación. La separación por niveles es positiva siempre, aunque frente a los entornos integrados es peor ya que estos incorporan tres niveles.
Inconvenientes:
  • Puede aumentar la carga. Seria un problema muy serio que provocaría la ralentización de todos los entornos operaciones. Se podría superar montado una BD exclusiva.
  • Más orientados al desarrollador de BD que al analista. Es un error común en todos los gestores de BD, que piensan que los proyectos empiezan por ellos y todo el mundo gira en torno a la BD. El analista tiene un punto de vista mucho más equidistante que el desarrollador y puede aportar mayor independencia.
  • La información debe cargarse en la BD. Un paso más que como siempre puede traer complicaciones y problemas. No creo que tenga mucha importancia.
  • Enfoque reciente. El mercado a los inicios de una herramienta, da muchos tumbos… y es un peligro. Lo que hoy parece asentado, mañana es superado por otro. Siempre es más recomendable esperar.
  • Detección compleja de problemas. Al estar integrado con la BD, siempre hay “puntos negros”, que no permiten tener todo el control de los procesos y puede llegar a desesperar.

Entre los principales fabricantes destacan IBM DB2 Data Warehouse edition, Oracle Data Mining, Microsoft SQL Server Analysis Services y Teradata TeraMiner.

domingo, 2 de marzo de 2008

Atención al cliente en los supermercados


He pensado en hacer unas pruebas de como está la atención al cliente en el sector online de los supermercados. Si yo quiero hacer una sugerencia... ¿Tengo los medios? ¿Me hacen caso? ¿Transmiten mi sugerencia más allá de la primera persona que lee el email?
Pues todo eso lo vamos a poner en práctica y al final veremos que pasa.

He recopilado los más importantes supermercados españoles, a mi parecer claro:
  • Caprabo
  • Hipercor
  • Alcampo
  • Eroski
  • Carrefour
  • Dia
  • Mercadona
A todos y siempre ha través de medios electrónicos (email o formulario web) he realizado la siguiente sugerencia:

Hola,
Me gustaría que cuando acudo a mi supermercado XXX, antes de entrar y a través de mi tarjeta Cliente, me imprimiese la lista de la compra basándose en mi historial de compras. Si, seguro que el 85% de las veces compro lo mismo... porque no me lo decís vosotros?

Si queréis hablar mas de la idea, no dudéis en poneros en contacto conmigo. Por favor, hacer llegar este correo electrónico a alguien que pueda estudiar mi propuesta.


Pues esta sugerencia, que tiene tela creo yo, la he enviado a todos esos supermercados... y ya he tenido los primeros problemas. Alcampo y Carrefour fallan sus formularios web... así que estoy reintentándolo. De Hipercor, Dia y Eroski no tengo respuesta... pero todavía es pronto.

De Caprabo, me han pedido mi número de tarjeta cliente que he facilitado, y me han contestado muy amablemente:
" Con relación a su e-mail, le informamos que hemos procedido a transmitir su sugerencia al departamento de Marketing para que pueda estudiar la viabilidad de la misma. Una vez más queremos agradecerle la confianza que ha depositado en Caprabo."

De Mercadona, también he tenido respuesta. De entrada un email automático dando las gracias por el contacto (que ya es de agradecer) y al poco rato (muy poco, como para sospechar) un email con el siguiente contenido:

"Para poder concretar su sugerencia, puede ponerse en contacto con el Servicio de Atención al Cliente de MERCADONA a través del teléfono gratuito 900.500.103., activo de 8'00 a 22'00 de lunes a sábado."

A lo que he contestado, que de ningún modo, que yo quería hacer mi sugerencia de manera online. Y sigo a la espera.

No se como se resolverá todo esto... pero parece interesante, verdad? Seguiré explicando!!

martes, 19 de febrero de 2008

Data Mining en tiempo real


Realmente creo, que una de las mayores aplicaciones de la minería de datos en tiempo real es el mundo online. Hay que ofrecer al cliente, en décimas de segundo, un anuncio, una promoción, etc.. en base a lo que esta consultando o comprando. Dos ejemplos muy famosos:

  • La publicidad contextual de Google. En una página que quieres que tenga este tipo de publicidad, solamente tienes que insertar una llamada a un código de google, pasando muy pocos parámetros, entre ellos tu ID de usuario del servicio.... y en cuestión de 1 o 2 segundos realiza consultas que incluyen:
    • Análisis del idioma de la página, para realizar la publicidad en el mismo idioma.
    • Recorre el texto de toda la página en busca de palabras clave, que son las que los anunciantes han comprado para salir. Aquí hace análisis de cuantas veces ha salido el anunciante, si para la próxima vez saldrá otro, si ha llegado al cupo etc...
    • Diferentes parámetros que el cliente de la página ha indicado, como por ejemplo, que los anuncios nunca pueden ser de este anunciante o de este otro, o que la temática no puede ser una determinada.
  • Las ventas cruzadas de Amazon. Amazon siempre ha sido un referente en Internet a la hora de vender productos. Desde hace mucho tiempo, contextualiza la experiencia del usuario con diferentes técnicas:
    • Venta cruzada. Siempre cuando estas viendo la ficha de un libro te recomienda otro haciendo un pack de precio, con el histórico de libros que otros usuarios se han llevado juntos en el pasado.
    • Oferta personalizada. Si tu has estado viendo un libro de una determinada temática o en el pasado has adquirido un tipo de libro, todos los anuncios que te ofrece la página están personalizados para tus gustos, siendo así inmensamente más efectivos.

En el mundo off-line, ahora mismo recuerdo por ejemplo, los vales descuento o promociones de los supermercados Caprabo. Cuando realizas una compra, pasas tu tarjeta cliente (hace muchos años que la tienen), y en ese mismo momento, una pequeña impresora que tienen, imprime los descuentos y promociones basándose en tu historial de compras y en la propia compra realizada en ese momento.

Analizando un poco lo dicho, veamos que implica todo ello:

  • Implicaciones tecnológicas. A la vista está, que hace falta mayor logística para dar cabida al DM en tiempo real. Si el Caprabo ya no podía imprimir con anterioridad los cupones, si no que tuvo que poner impresoras en todas las cajas de cada supermercado. De igual forma tanto google como Amazon, tienen unas súper-máquinas, que indexan contenido en cuestión de décimas de segundo. Está claro que este sistema requiere una estructura mucho más compleja y cara.
  • Rendimiento: Inmediatez para todo. Necesitamos que el sistema analice lo que pasa en ese momento (página web, compra) y nos diga que es lo que más interesa promocionar a la empresa.
  • Impacto con otras aplicaciones: El hecho de realizar DM en tiempo real, hace que posteriormente haya que realizar un análisis de la efectividad del mismo, para poder ir ajustando algunos parámetros, por tanto todas estas aplicaciones requieren un buen trabajo de análisis posterior para que tengan efectividad y se puede hacer un análisis del retorno de la inversión.
  • Requerimientos: De entrada necesitamos un historial de clientes y transacciones con unos identificadores (usuarios web, tarjetas cliente). A partir de ahí realizar un primer análisis de minería de datos y ver que variables nos interesan para estos casos. Quizás tengamos que variar nuestros sistemas para recoger nuevas variables o hacerlo de diferente manera. Es evidente que todo esto requiere el apoyo de una gran BD rapidísima, con acceso directo desde todos los puntos de cliente. Como hemos visto, el sistema también requiere dinamizar la salida de la información. Si antes podíamos dar vales y promociones “estáticas”, ahora hemos de buscar alternativas, como el hecho de poner impresoras o paginas que se construyen en ese mismo instante.

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.