Predicción de delitos y análisis en tiempo real del municipio de Zapopan con Twitter y Google

7
Predicci´on de delitos y an´ alisis en tiempo real del municipio de Zapopan con Twitter y Google Datat´ on 2014 Equipo MSCGM exico Luis M. Rom´ an Garc´ ıa ITAM Omar Trejo Navarro ITAM Junio de 2014 1. Objetivo Caracterizar la distribuci´ on de delitos en el municipio de Zapopan, y crear un sistema 1 que analice el stream de Twitter en tiempo real para encontrar sucesos clave y, utilizando un sistema de Google, brindar informaci´ on relevante. 2. Predicci´on de delitos Para estimar la densidad de delitos en Zapo- pan utilizamos una t´ ecnica no param´ etrica si- milar a un histograma. Segmentamos el territo- rio que cubre Zapopan en celdas uniformes de 200m × 200m (aproximadamente equivalente a 1 Este proyecto se realiz´ o utilizando R y el c´ odigo se en- cuentra en https://github.com/Datata/Dataton. una manzana ) para hacer el an´ alisis por zonas de extensi´ on equivalente y utilizamos las geore- ferencias de la base de datos Delitos.csv para contar el n´ umero de delitos por celda. 2.1. Metodolog´ ıa Se integraron varias bases de datos 2 , donde ca- da una agrega varias variables que son utilizadas para predecir delitos. Sabiendo el tipo de lugares y servicios que hay en cada celda y si han habido o no delitos se en- treno el algoritmo Stochastic Gradient Boosting 3 para predecir futuras ocurrencias de delitos. 2 Tianguis.csv, Eventos.csv, Servicios.csv y Delitos.csv. Todas provistas en la p´ agina de la convo- catoria http://dataton.datos.gob.mx/. 3 Algunas de las ventajas se pueden consultar en [1]. 1

description

Ganadores del concurso nacional Datatón 2014 organizado por la Presidencia de la República.Este documento es una explicación básica del proyecto, y se enfoca en la prevención de delitos mediante la caracterización de áreas geográficas con variables socio-económicas y provee un sistema de reacción inmediata ante sucesos utilizando Twitter y Google.

Transcript of Predicción de delitos y análisis en tiempo real del municipio de Zapopan con Twitter y Google

Page 1: Predicción de delitos y análisis en tiempo real del municipio de Zapopan con Twitter y Google

Prediccion de delitos y analisis en tiempo real del

municipio de Zapopan con Twitter y Google

Dataton 2014

Equipo MSCGM

Mexico

Luis M. Roman GarcıaITAM

Omar Trejo NavarroITAM

Junio de 2014

1. Objetivo

Caracterizar la distribucion de delitos en elmunicipio de Zapopan, y crear un sistema1 queanalice el stream de Twitter en tiempo real paraencontrar sucesos clave y, utilizando un sistemade Google, brindar informacion relevante.

2. Prediccion de delitos

Para estimar la densidad de delitos en Zapo-pan utilizamos una tecnica no parametrica si-milar a un histograma. Segmentamos el territo-rio que cubre Zapopan en celdas uniformes de200m × 200m (aproximadamente equivalente a

1Este proyecto se realizo utilizando R y el codigo se en-cuentra en https://github.com/Datata/Dataton.

una manzana) para hacer el analisis por zonasde extension equivalente y utilizamos las geore-ferencias de la base de datos Delitos.csv paracontar el numero de delitos por celda.

2.1. Metodologıa

Se integraron varias bases de datos2, donde ca-da una agrega varias variables que son utilizadaspara predecir delitos.

Sabiendo el tipo de lugares y servicios que hayen cada celda y si han habido o no delitos se en-treno el algoritmo Stochastic Gradient Boosting3

para predecir futuras ocurrencias de delitos.

2Tianguis.csv, Eventos.csv, Servicios.csv yDelitos.csv. Todas provistas en la pagina de la convo-catoria http://dataton.datos.gob.mx/.

3Algunas de las ventajas se pueden consultar en [1].

1

Page 2: Predicción de delitos y análisis en tiempo real del municipio de Zapopan con Twitter y Google

Se utilizo el 70 % de los datos para entrena-miento del algoritmo y 30 % para la validacion.Se utilizaron 7, 501 muestras bootstrap para es-timar el error de prediccion. Se corrieron 83, 600arboles variando el grado de complejidad en-tre .1 y .01, y la profundidad de los cortes en{1, 3, 5, 7}. La maxima precision se alcanzo con700 arboles, 7 cortes y .1 de complejidad.

Figura 1: Distribucion de lugares y servicios.

Figura 2: Distribucion de crimen en Zapopan.

2.2. Resultados

La base de datos utilizada contiene delitos en90 % de las celdas. Nuestro modelo consigue unaclasificacion correcta cerca del 97 % de los ca-sos (considerablemente mayor a 90 %), lo cual esmuy bueno.

Medida Valor

Precision 96.96 %IC de 95 % (96.21 %, 97.60 %)

Valor-p < 2e− 16Sensitividad 0.9845

Especificidad 0.8277

Tabla 1: Resultados del modelo optimo.

ReferenciaPrediccion Hubo delito No hubo delito

Hubo delito 2226 41No hubo delito 35 197

Tabla 2: Matriz de confusion del modelo optimo.

Figura 3: Presicion vs. numero de arboles.

2

Page 3: Predicción de delitos y análisis en tiempo real del municipio de Zapopan con Twitter y Google

Figura 4: Tasa de error de prediccion.

2.3. Analisis resultados

Como muestran los resultados, es posible asig-nar de manera precisa una medida de probabili-dad de incidencia delictiva a cada segmento delterritorio. Esto nos permite identificar las carac-terısticas que comparten las regiones con bajay alta incidencia delictiva. El siguiente paso escruzar este analisis con datos obtenidos de re-des sociales para optimizar el proceso detecciony prevencion del crimen.

3. Analisis en tiempo real conTwitter y Google

Utilizando la API REST de Twitter4 y la APIDirections de Google5 logramos capturar tweetsque informan sobre sucesos que ocurren en tiem-po real, como robos, asesinatos, disparos, peleas,asaltos, entre otros, y generamos una respuestacon informacion relevante, en este caso el hos-pital mas cercano, el tiempo que se tomara en

4Documentacion en dev.twitter.com5Documentacion en developers.google.com/

maps/documentation/directions/

llegar (tomando en cuenta el trafico) y las ins-trucciones para hacerlo.

Existen varios herramientas para generar in-formacion util en situaciones de crisis. Los masnotorios son Google Crisis Response6 y iSAR+7.De este ultimo se puede consultar un analisiscompleto en [2]. El sistema que hemos disenadoen este proyecto se puede adaptar como un com-ponente de sistemas como los que se acaban demencionar.

3.1. Metodologıa

La estructura general del algoritmo se muestraen Fig. 58. A continuacion explicaremos cada unode los nodos del diagrama.

Figura 5: Estructura general del algoritmo.

Inicio

Leer inputs

Buscar enTwitter

Mantenertweets geo-referenciados

Mostrargraficas

Seleccionartweets a

los cualesresponder

Encontrarhospital

mascercano

Calcularruta enGoogle

Respondercon ruta

¿Quedantweets por

respon-der?

Fin

no

6Mas informacion en https://www.google.org/crisisresponse/.

7Mas informacion en http://isar.i112.eu/8Si se quiere analizar a un nivel de precision mucho

mas profundo se puede consultar el codigo en https://github.com/Datata/Dataton. El codigo esta biendocumentado.

3

Page 4: Predicción de delitos y análisis en tiempo real del municipio de Zapopan con Twitter y Google

El primer nodo representa el incio del algo-ritmo. En el segundo nodo se leen los inputs.Leer inputs se refiere a leer el archivo de palabrasclave (las palabras que se buscaran en Twitter),el centro de la zona geografica que se quiere ana-lizar (coordenadas: longitud y latitud) y el radiode la zona geografica que se quiere analizar (enkilometros), el numero maximo de tweets que sequiere encontrar, y desde cuando buscar tweets(solo hoy, desde ayer, desde anteayer, etcetera).

En el tercer nodo se realiz la llamada al APIde Twitter con el siguiente codigo:

1 tweets <- suppressWarnings(2 searchTwitter(key,3 geocode = geozone,4 since = since.date,5 n = number.tweets))

Utilizamos suppressWarnings() para noimprimir a pantalla cuando se encuentran menostweets de los que se buscaban como maximo. Lafuncion searchTwitter() es parte de un pa-quete de R llamado twitteR que sirve para comu-nicarse con el API REST. Los parametros key,geozone, since.date y number.tweets,son la palabra clave que se esta buscando enese momento, la zona geografica donde quere-mos buscar, desde cuando queremos tweets y elnumero maximo de tweets que queremos, respec-tivamente.

En el cuarto nodo lo que se hace es buscardentro de todos los tweets recopilados aquellosque no contiene coordenadas (esto pasa porqueal momento de buscar la API regresa aquellostweets con geo-referncias o aquellos cuyas cuen-tas se pueden rastrear de forma inversa al lugarde la busqueda), y los elimina porque aunque se-pamos que la persona vive en esa zona, no sabe-

mos el lugar exacto de donde se origina el tweet.

En el quinto nodo se muestra la graficacon los resultadosAquı podemos mostrar muchasotras estadısticas, como cantidad de tweets porpersona, pero no son relevantes para este proyec-to por lo que las omitimos.. Un ejemplo de comose ve esta grafica se encuentra en la Fig. 6.

Figura 6: Resultados de tweets recientes en Za-popan con densidad estimada (lineas rojas).

En el sexto nodo se selecciona el algoritmoque identificara aquellos tweets que querramosanalizar y a los cuales generaremos una respues-ta. En este caso el algoritmo es solamente buscarque contengan una de las palabras clave. Estepaso se puede hacer mucho mas robusto experi-mentando con otros algoritmos.

En el septimo nodo buscamos el hospital mascerano al origen de algun tweet y lo hacemos uti-lizando la metrica Euclidiana. Tambien aquı sepuede experimentar con diferentes metricas si

4

Page 5: Predicción de delitos y análisis en tiempo real del municipio de Zapopan con Twitter y Google

queremos resultados con la maxima presicion po-sible. El codigo para este paso es el siguiente:

1 entities$dist.to.location <-2 (as.numeric(location$Lng) -3 entities$Lng) ˆ 2 +4 (as.numeric(location$Lat) -5 entities$Lat) ˆ 26 min.dist.idx <- which.min(7 entities$dist.to.location)8 nearest.entity <- data.frame(9 Lng = entities$Lng[

10 min.dist.idx],11 Lat = entities$Lat[12 min.dist.idx])

Primero calculamos la distancia entreel origen del tweet y todos los hospitales(entities$dist.to.location$). Despuesbuscamos la mınima de estas distancias y guar-damos el ındice (min.dis.idx). Finalmente,obtenemos las coordenadas del hospital mascercano (nearest.entity).

En el octavo nodo usamos las coordenadasdel hospital mas cercano para encontrar la mejorruta con la API Directions de Google. El codigopara hacerlo es el siguiente:

1 url <- paste("maps.google.com/2 maps/api/directions/json?",3 "origin=", from.coord,4 "&destination=", to.coord,5 "&language=", language.code,6 sep = "")7 route <- fromJSON(paste(8 readLines(url),9 collapse = ""))

Esto obtiene una respuesta a traves del API deGoogle en formato JSON9 y lo transforma a una

9JavaScript Object Notation.

lista de R que podemos usar para extraer la in-formacion relevante. De aquı obtenemos la rutaoptima de un punto al otro10, el tiempo apro-ximado que tomara en llegar la persona si fuesemanejando (lo podemos modificar a que sea ca-minando) y la distancia en kilometros.

Finalmente, en el noveno nodo se imprimela informacion obtenida a pantalla junto con eltweet que genero ese analisis, como se muestra enFig. 7. Despues, en el decimo nodo revisamossi ya terminamos de analizar todos los tweets quehabıamos seleccionado en el sexto nodo; si no he-mos terminado iteramos. Por ultimo, el decimoprimer nodo representa el fin del algoritmo.

3.2. Observaciones

Las observaciones que se presentan a continua-cion se enfocan al municipio de Zapopan. Lo pri-mero que nos sorprendio es el hecho de que efec-tivamente hay personas que reportan incidentesgraves como homicidos o robos con armas defuego (Ej. Homicidio en jimenez y valdez ), locual implica que nuestro proyecto tiene un im-pacto potencial enorme. Por otro lado, tambiennos dimos cuenta que mucha gente manda tweetsque contienen palabras clave, pero las utilizan encontextos muy diferentes (Ej. La mato con esecomentario), lo cual representa ruıdo en el siste-ma y es un reto importante.

Con una inspeccion mas profunda nos dimoscuenta que alrededor de 5 % de los tweets sonavisos reales de sucesos de gravedad que acabande ocurrir. Esto implica que para mejorar sus-tancialmente el algoritmo, y poder automatizarlode manera importante, es necesario disenar otros

10Se puede crear una imagen con la ruta optima y man-darla como archivo adjunto en la respuesta.

5

Page 6: Predicción de delitos y análisis en tiempo real del municipio de Zapopan con Twitter y Google

Figura 7: Resultado con instrucciones para el hospital mas cercano.

componentes del algoritmo que detecten cuan-do una frase realmente implica algo que necesitaatencion y cuando no11.

Dicho lo anterior, una vez que se ha identifi-cado un tweet relevante, se genera una respuestacon la informacion en menos de cinco segundos,y se puede mandar inmediatamente, lo cual esun tiempo de respuesta excelente.

3.3. Generalizacion e impacto

Estos resultados son facilmente generalizables.En menos de dos minutos, si se tienen datos delos hospitales en una base de datos, se puedeutilizar el sistema para analizar cualquier zonadel paıs (y del mundo) con tan solo cambiar los

11Esto recae en el area de Natural Language Processing,una rama de Inteligencia Artificial.

parametros iniciales del algoritmo.

Figura 8: Resultados de tweets recientes en laCiudad de Mexico con densidad estimada (lineasrojas).

6

Page 7: Predicción de delitos y análisis en tiempo real del municipio de Zapopan con Twitter y Google

Los resultados tardan en producirse alrededorde cinco segundos por cada tweet que se quieraanalizar. Se muestran resultados de la Ciudad deMexico para mostrar la aplicabilidad del sistemaen otras zonas geograficas.

Ademas de mandar la informacion al usua-rio, se se podrıa avisar al hospital del hecho atraves de un correo electronico monitoreado oun mensaje directo en Twitter a una cuenta pa-ra monitoreo de sucesos, y, ademas, podemos irmas alla y enviar patrullas o bomberos a luga-res donde estan ocurriendo estos acontecimientos(suponiendo que se cuenta con las coordenadasde las estaciones de policia o de bomberos pa-ra encontrar la mas cercana y alguna manerade contactarlos virtualmente para hacerles saberque deben acudir a asistir). Esto reducirıa drasti-camente los tiempos de respuesta a sucesos quenecesitan de accion inmediata.

Si iteramos este proceso, tenemos una for-ma automatizada de analizar muchos tipos defenomenos sociales, economicos, naturales, y decualquier otro tipo sobre el cual la gente publi-que en sus cuentas de Twitter, al mismo tiempoque podemos aprovecharla para responder coninformacion o ayuda relevante que podrıa salvarvidas.

Referencias

[1] Brian Kriegler & Richard Berk, Small areaestimation of the homeless in Los Ange-les: An application of cost-sensitive stochas-tic gradient boosting, The Annals of AppliedStatistics, Institude of Mathematical Statis-tics, Vol. 4, No. 3, 2010, pp. 1234-1255.

[2] Marco Manso & Barbara Manso, The roleof social media in crisis: A European holis-tic approach to the adoption of online andmobile communications in crisis responseand search and rescue efforts, 17th ICCRTS,Operationalizing C2 Agility, iSAR+.

7