A blog about data, information and IT, by Mario Alberich

Mar 31
2014

Crossfilter, múltiples vistas sincronizadas de datos

El análisis exploratorio que tiene lugar durante la primera toma de contacto con un conjunto de datos tiene un objetivo muy concreto: familiarizarnos con su estructura. Por un lado la distribución de algunas variables clave, por el otro los valores extremos, y también las relaciones entre pares de variables. Esta familiarización permite aplicar el sentido común y la intuición a la verificación del análisis.  No es un momento para las conclusiones, sino para la toma de contacto.

Vistas coordinadas


Al representar gráficamente la distribución de valores en gráficos, podemos identificar patrones. Ahora bien, ¿cómo cambian esos patrones si cambiamos la selección de los datos? ¿De qué forma se altera el gráfico de barras y el gráfico de dispersión si elimino los valores más altos de una variable? Interacciones del tipo Linking and brushing en las vistas múltiples coordinadas permite a un usuario/analista disponer de detalles más reveladores sobre el comportamiento de los datos.

Este proceso no está falto de complejidad. Para que la interacción tenga sentido, es necesario que el sistema responda rápidamente. Necesitamos que un dataset de varios miles de registros tenga una representación y filtrado ágil. Y si eso lo queremos implementar vía javascript en el navegador web, el reto es aún mayor.

Crossfilter


La biblioteca Crossfilter permite gestionar esta carga inicial de datos para luego aplicar filtros y agrupaciones de datos (utilizando MapReduce) de una forma ágil.  Según los autores de la biblioteca, las interacciones pueden ejecutarse en tiempos inferiores a 30 milisegundos, incluso con datasets de más de un millón de registros.

Es posible consultar la referencia de la API para más detalles. También podéis ver el siguiente video explicativo de las ideas y soluciones que puede proporcionar crossfilter:

Es posible imaginarse un matrimonio muy bien avenido entre Crossfilter y D3, aunque eso lo podemos dejar para otro artículo.

Tags

gestión documental 10     Recuperación información 11     Linux 7     Usabilidad 5     open source 3     Tagging 12     lógica borrosa 2     fuentes de información 12     Google 6     off-topic 6     spam 2     grafos 6     Web social 11     modelización 12     Productividad 11     buscadores 2     utilidades 17     Profesionales 9     SEO 5     estándares 3     veracidad 3     relevancia 2     lingüística 2     PLN 2     lenguajes documentales 2     apis-mashups 3     reseñas 7     Flash 7     Gráficos estadísticos 13     Publicidad 3     Innovación 5     muestreo estadístico 9     PHP 14     internet 2     testeo 12     desarrollo 3     visualizacion 36     javascript 16     datos abiertos 9     elecciones 2     simulación 5     html5 7     phing 9     ssh 2     seguridad 3     indicadores 2     demografía 3     media 2     algoritmos 7     shell 4     mysql 2     backup 2     big data 6     twitter 2     d3js 11     revealjs 2     metodología 6     data-journalism 6     smartcities 2     NYT 2     privacidad 3     benchmarking 4     recopilaciones 21     magento 5     formacion 2     github 2     HHVM 3     psicología 2     angularjs 3     grep 2     nodejs 5     promises 2     mapreduce 3     crossfilter 2     exploración de datos 2     machine learning 2    

© 2007 and beyond Mario Alberich, licensed under CC-BY-SA unless stated otherwise.