63
Esteban Moro Alejandro Llorente Análisis y Modelos

Big Data: Análisis y Modelos

Embed Size (px)

DESCRIPTION

Esteban Moro introduce el tratamiento de datos georeferenciados para crear aplicaciones a partir de la API pública de BBVA

Citation preview

  • 1. Esteban Moro Alejandro Llorente Anlisis y Modelos

2. INNOVA CHALLENGE Taller 8 Octubre Mapas Actividad Estructura/Lugares Anlisis Modelos App Contenido Visualizacin Anlisis y Datos El roadmap del participante Datos Anlisis Desarrollo 3. INNOVA CHALLENGE Taller 8 Octubre Introduccin a datos georeferenciados Acceso a datos georeferenciados Ejemplo: desarrollo de un motor de recomendacin geolocalizado Resumen 4. Introduccin a datos georeferenciados 5. INNOVA CHALLENGE Taller 8 Octubre Introduccin a datos geoespaciales Informacin: Persona, evento , suceso, infraes tructura, Geografa: Coordenadas GPS, zona, muni cipio 6. INNOVA CHALLENGE Taller 8 Octubre Geospatial BigData Social Media Sensors Satellite Images Maps Activity (Transport) Bigdata Geoespacial 7. INNOVA CHALLENGE Taller 8 Octubre Con datos geoespaciales podemos: Medir ocupacin de zonas Identificar movimientos / flujos entre zonas Describir la actividad por zonas Y con ello podemos construir aplicaciones en Anlisis geo-social Geomarketing Distribucin ptima de recursos Deteccin de fraude Deteccin de eventos Aplicaciones del big data geoespacial 8. INNOVA CHALLENGE Taller 8 Octubre Uso de sensores pervasivos (mviles, social media) para modelizar movimiento y comunicacin de la gente en las ciudades. Anlsis geo-social 9. INNOVA CHALLENGE Taller 8 Octubre !! Estudio de geolocalizacin en Madrid ! 34! Localizacin:!!Puerta!del!Sol! ! Nmero!de!checkins!totales:!2651!(30.5!al!da)! Nmero!de!usuarios!nicos!en!la!zona:!1231! ! ! ! ! ! ! ! ! ! ! ! ! ! ! ! ! ! ! ! ! ! ! ! ! ! hora count 0 100 200 300 400 500 600 700 0 5 10 15 20 25 factor(tipo) arts_entertainment food nightlife shops dia count 0 500 1000 1500 lunes martes mircoles jueves viernes sbado domingo factor(tipo) arts_entertainment food nightlife shops timedays count 0 50 100 150 abr11 may11 jun11 factor(tipo0) arts_entertainment food nightlife shops 1 2 3 4 5 6 7 8 9 10 place fnac starbuckscoffee mercadodesanmiguel elcorteingls mercadodesanantn yelmocinesideal3d vips mcdonald's cafdeoriente salajoyeslava n_checkins 316 269 251 136 113 87 84 78 77 71 1 2 3 4 5 6 7 8 9 10 user amazel666 runway4 edaindil maestrodarius ivo_campos despop edumaiza dalogu8 desdealbert0 mmetafetan n_checkins 121 73 40 39 35 33 33 32 32 30 Describir las zonas urbanas por su uso social/come rcial Analisis geo-social 10. INNOVA CHALLENGE Taller 8 Octubre Usar las coordenadas del merchant /IP pago con tarjeta para detectar fraude Deteccin de fraude 11. INNOVA CHALLENGE Taller 8 Octubre Bares Tiendas Geomarketing 12. INNOVA CHALLENGE Taller 8 Octubre Bares Tiendas Identificar la situacin ptima para una nueva tienda Reducir costes en la gestin de efectivo Distribucin ptima de recursos 13. INNOVA CHALLENGE Taller 8 Octubre Detectar comportamiento no usual utilizando sensores urbanos (pervasivos) Deteccin de eventos 14. Acceso a datos georeferenciados 15. INNOVA CHALLENGE Taller 8 Octubre Map Infrastructure/place s Activity Datos georeferenciados 16. INNOVA CHALLENGE Taller 8 Octubre Tipos de datos Mapas Demogrficos/Econmicos Otros Google POIs Prediccin metereolgica Actividad Twitter BBVA API 17. INNOVA CHALLENGE Taller 8 Octubre Mapas :: Google Maps Google Maps tiene muchos servicios webs con restricciones y protocolos diferentes. Permite definir rutas, marcadores, Ejemplo: obtencin de un mapa esttico. Sin necesidad de autenticacin. URL Base: http://maps.google.com/maps/api/staticmap Parmetros: center: 40.4153,-3.6875 size: 640x640 maptype: mobile format: png32 sensor: true 18. INNOVA CHALLENGE Taller 8 Octubre Mapas :: OpenStreetMap Proyecto libre y colaborativo para crear mapas libres y editables. Dispone de APIs para guardar informacin sobre puntos, rutas, etc. Existen aplicaciones construidas sobre OSM con diferentes propsitos. Ejemplo: obtencin de una ruta entre dos puntos. MapQuest. URL Base: http://open.mapquestapi.com/guidance/v1/ Parmetros: Key: authentication key From: latitud y longitud del origen en JSON. To: latitud y longitud del destino en JSON. 19. INNOVA CHALLENGE Taller 8 Octubre Formato de informacin geogrfica Regiones y elementos definidos como polgonos. Atributos asociados a cada elemento. Cdigo ISO de regin, poblacin, http://www.naturalearthdata.com/downloads/ pyshp: http://code.google.com/p/pyshp/ maptools: http://cran.r-project.org/web/packages/maptools Mapas :: shapefiles 20. INNOVA CHALLENGE Taller 8 Octubre Edicin y visualizacin de Shapefiles: http://www.qgis.org Mapas :: shapefiles 21. INNOVA CHALLENGE Taller 8 Octubre Nomecalles (CAM): shapefiles, puntos de inters (museos, teatros, servicios de salud), metro (bocas, estaciones) http://www.madrid.org/nomecalles/DescargaBDTCorte.icm Delimitaciones a nivel de municipio, barrios, codigos postales, distritos, etc. Mapas :: datos cartogrficos de Madrid 22. INNOVA CHALLENGE Taller 8 Octubre Plan territorial metropolitano de Barcelona Generalitat de Catalunya Enlace Mapas :: datos cartogrficos de Barcelona 23. INNOVA CHALLENGE Taller 8 Octubre Datos abiertos gencat Cartografca de Catalua Enlace Mapas :: datos cartogrficos de Barcelona 24. INNOVA CHALLENGE Taller 8 Octubre Plan territorial metropolitano de Barcelona Generalitat de Catalunya Enlace En esta web tambin hay datos sobre movilidad, economa, poblacin, etc. por los diferentes barrios de Barcelona. En Madrid no hay nada a ese nivel de detalle. Solucin: Utilizar otras fuentes de datos para estimarlas (ms adelante). Mapas :: datos cartogrficos de Barcelona 25. INNOVA CHALLENGE Taller 8 Octubre Datos demogrficos / econmicos :: Espaa Datos demogrficos: Instituto Nacional de Estadstica Padrn por municipio Enlace Datos econmicos: Servicio Pblico de Empleo Estatal. Paro por municipio. Enlace 26. INNOVA CHALLENGE Taller 8 Octubre Datos demogrficos / econmicos :: Madrid A nivel de la ciudad de Madrid Banco de datos del Ayuntamiento de Madrid http://www-2.munimadrid.es/CSE6/jsps/menuBancoDatos.jsp Poblacin por distritos, barrios y secciones A nivel de la comunidad de Madrid Banco de datos de la Comunidad de Madrid http://www.madrid.org/desvan/Inicio.icm?enlace=almudena Poblacin por municipios Datos econmicos por municipio. 27. INNOVA CHALLENGE Taller 8 Octubre Datos demogrficos / econmicos :: Barcelona A nivel de la ciudad de Barcelona Departament dEstadstica http://www.bcn.cat/estadistica/castella/ Poblacin por barrios Paro registrado por barrios A nivel de la comunidad de Catalua Idescat (Institut dEstadstica de Catalunya) http://www.idescat.cat/es/ Poblacin por municipios Datos econmicos por municipio. 28. INNOVA CHALLENGE Taller 8 Octubre Google API Console Otros datos :: Google points of Interest 29. INNOVA CHALLENGE Taller 8 Octubre Google API Console Otros datos :: Google points of Interest 30. INNOVA CHALLENGE Taller 8 Octubre Google API Console Otros datos :: Google points of Interest 31. INNOVA CHALLENGE Taller 8 Octubre Puntos de Inters Puerta del Sol Servicio 1: Places Search Parmetros: location: 40.417, -3.703 radius: 1000 Servicio 2: Places Details Parmetros: reference: cdigo del place Otros datos :: Google points of Interest 32. INNOVA CHALLENGE Taller 8 Octubre GFS: Global Forecast System Datos a travs de protocolo OpeNDAP. Implementacin en Python: pydap Formato de las peticiones: SERVER = http://nomads.ncep.noaa.gov:9090/dods/gfs_hd/ DATE = AAAAMMDD HOUR = HH VAR = variable meteorolgica a capturar (tmp2m, ugrd10m, pressfc, ) LAT = intervalo de latitud [259:263] (pasos de 0.5 desde el Polo Sur) LON = intervalo de longitud [710:714] (pasos de 0.5 hacia el este de Greenwich) QUERY = SERVERgfs_hdDATE/gfs_hd_HOURz.dods?VAR[0:0][LAT][LON] dataset = open_dods(QUERY) Otros datos :: Metereologa 33. INNOVA CHALLENGE Taller 8 Octubre Pgina de Desarrolladores http://dev.twitter.com Actividad :: datos de Twitter API 34. INNOVA CHALLENGE Taller 8 Octubre Pgina de Desarrolladores http://dev.twitter.com Actividad :: datos de Twitter API 35. INNOVA CHALLENGE Taller 8 Octubre Pgina de Desarrolladores http://dev.twitter.com Actividad :: datos de Twitter API 36. INNOVA CHALLENGE Taller 8 Octubre Pgina de Desarrolladores http://dev.twitter.com Consumer Key Consumer Secret Access token Access token secret Actividad :: datos de Twitter API 37. INNOVA CHALLENGE Taller 8 Octubre Consumer Key Consumer Secret Access token Access token secret OAuth Authentication Rest API Stream API Muchas queries parametrizables Lmite de uso 1 query parametrizable Sin lmite de tiempo Actividad :: datos de Twitter API 38. INNOVA CHALLENGE Taller 8 Octubre Stream API Ejemplo: Tweets localizados en la Comunidad de Madrid Servicio API: POST statuses/filter Parmetros: locations: -4.59, 39.90, -3.04, 41.17 Actividad :: datos de Twitter API 39. INNOVA CHALLENGE Taller 8 Octubre Anteriormente, mostramos que en Madrid no hay datos a nivel de zonas administrativas ms pequeas que el municipio. Podemos estimar algunas con Twitter Ejemplo: poblacin por cdigos postales 1. Redondeamos coordenadas de cada tweet geolocalizado al tercer decimal (aprox. celdas 100 metros). 2. Analizamos el cdigo postal ms visitado por usuario y se le asignamos como su lugar de residencia. 3. Visualizamos. Stream API Actividad :: datos de Twitter API 40. INNOVA CHALLENGE Taller 8 Octubre Stream API Actividad :: datos de Twitter API 41. INNOVA CHALLENGE Taller 8 Octubre Stream API Actividad :: datos de Twitter API 42. INNOVA CHALLENGE Taller 8 Octubre https://www.centrodeinnovacionbbva.com/signup Actividad :: datos de la API BBVA 43. INNOVA CHALLENGE Taller 8 Octubre https://developer.bbva.com/panel Actividad :: datos de la API BBVA 44. INNOVA CHALLENGE Taller 8 Octubre https://developer.bbva.com/panel Actividad :: datos de la API BBVA 45. INNOVA CHALLENGE Taller 8 Octubre https://developer.bbva.com/panel Actividad :: datos de la API BBVA 46. INNOVA CHALLENGE Taller 8 Octubre Generando la autenticacin Ejemplo: APP_ID = "iic_formacion_innovachallenge" APP_KEY = "0f1d750a5baea6c7022452d0d2ece01fc5901ad7 str_to_encode="iic_formacion_innovachallenge:0f1d750a5baea6c7022452d0d2ece01fc5901ad7 auth = strToBase64(str_to_encode) Request = HttpRequest(SERVICIO, PARAMETROS, header = {Authorization : auth}) 1. Con la APP_ID y la APP_KEY generamos la autorizacin concatenando ambas con un : en medio y codificando a base64. 2. Esta autorizacin se aade al HEADER de la peticin HTTP con el parmetro Authorization. Actividad :: datos de la API BBVA 47. INNOVA CHALLENGE Taller 8 Octubre Flujos econmicos Puerta del Sol Servicio API: customer_zipcodes Parmetros: date_min:201304 date_max:201304 zipcode:28013 by:cards group_by:month Actividad :: datos de la API BBVA 48. Ejemplo: desarrollo de un motor de recomendacin geolocalizado 49. INNOVA CHALLENGE Taller 8 Octubre Objetivo: recomendarle a un cliente qu zonas son ms adecuadas segn su perfil, su residencia, sus preferencias, etc. Utilizando la informacin de lo que hacen otros usuarios Datos usados: 1. Datos de Twitter. 2. API Innova Challenge CARDS_CUBE. 3. API Innova Challenge CUSTOMER_ZIPCODES. Sistemas de recomendacin :: Introduccin 50. INNOVA CHALLENGE Taller 8 Octubre Utilizar datos de Twitter para 1. Ver qu se est hablando en cada zona de Madrid. 2. Analizar el habla de un usuario para el que queremos recomendar un determinado lugar. 3. Comparar el habla del usuario con las zonas y recomendar el rea que ms se le parece. Sistemas de recomendacin :: lenguaje del usuario 51. INNOVA CHALLENGE Taller 8 Octubre CP 28013: Centro de Madrid Sistemas de recomendacin :: lenguaje del usuario 52. INNOVA CHALLENGE Taller 8 Octubre CP 28009 : Retiro Sistemas de recomendacin :: lenguaje del usuario 53. INNOVA CHALLENGE Taller 8 Octubre Utilizar el servicio CARDS_CUBE de la API de Innova Challenge Sistemas de recomendacin :: perfil demogrfico del usuario 54. INNOVA CHALLENGE Taller 8 Octubre Usando los datos procedentes del servicio CARDS_CUBE Para cada categora de merchant (bares, moda, salud, hogar, etc.) construimos una matriz donde cada elemento representa el nmero de tarjetas diferentes de determinado perfil (dado por sexo y rango de edad) X que han ido a comprar al cdigo postal Y en un merchant de dicha categora. Dnde van a comprar ropa la gente que es cmo yo? A qu restaurantes van la gente parecida a m? Sistemas de recomendacin :: perfil demogrfico del usuario 55. INNOVA CHALLENGE Taller 8 Octubre Ejemplo: hombre entre 36 y 45 aos Moda Bares y restaurantes Sistemas de recomendacin :: perfil demogrfico del usuario 56. INNOVA CHALLENGE Taller 8 Octubre Utilizar el servicio CUSTOMER_ZIPCODES de la API Sistemas de recomendacin :: basados en movilidad geogrfica 57. INNOVA CHALLENGE Taller 8 Octubre Usando los datos procedentes del servicio CUSTOMER_ZIPCODES Para cada categora de merchant (bares, moda, salud, hogar, etc.) construimos una matriz donde cada elemento representa el nmero de tarjetas diferentes de un cdigo postal X han ido a comprar al cdigo postal Y en un merchant de dicha categora. Dnde van a comprar ropa la gente de mi barrio? A qu restaurantes van los que viven cerca de m? Sistemas de recomendacin :: basados en movilidad geogrfica 58. INNOVA CHALLENGE Taller 8 Octubre Moda Bares y restaurantes Ejemplo: cdigo postal 28045 Sistemas de recomendacin :: basados en movilidad geogrfica 59. INNOVA CHALLENGE Taller 8 Octubre Sistema de recomendacin geogrfico y basado en perfiles Sistemas de recomendacin :: combinacin 60. INNOVA CHALLENGE Taller 8 Octubre Moda Bares y restaurantes Ejemplo: hombre entre 36 y 45 aos del cdigo postal 28045. Sistemas de recomendacin :: combinacin 61. De los datos a la aplicacin 62. INNOVA CHALLENGE Taller 8 Octubre De los datos a la aplicacin 1. Una idea. 2. Qu datos necesito para llevar a cabo esa idea? Qu servicios de la API del BBVA necesito? Puedo complementarlo con otras fuentes de informacin? 3. Anlisis: refinamiento de la idea y viabilidad. Extraccin del valor oculto en el anlisis y los modelos. 4. Cmo puede aprovechar un usuario final ese valor? 5. Iterar 2, 3 y 4 hasta que la idea aparezca definida y el valor del usuario est claro. 6. Convertir el valor del anlisis en una aplicacin.