MINERIA DE DATOS: ANÁLISIS DE DATOS ELECTORALES

Documentos relacionados
Redes de Neuronas de Base Radial

Práctica 5: Clasificación con número variable de ejemplos.

Práctica 2: Utilización de WEKA desde la línea de comandos.

Introducción. - Este estudio tiene por objeto analizar la distribución de los alumnos inscritos en los colegios e institutos de la Ciudad de Madrid.

DOCUMENTACIÓN Y ESTADÍSTICA EN RED. Boletín del Atlas de movilidad residencia-trabajo en la Comunidad de Madrid 2017

Fuentes, notas y conceptos del Capítulo 16

ANÁLISIS DE DATOS. Jesús García Herrero

PROYECTO PRESUPUESTO GENERAL AYUNTAMIENTO DE MADRID INVERSIONES FINANCIERAMENTE SOSTENIBLES

Jesús García Herrero TÉCNICAS DE REGRESIÓN NO LINEAL

Reconocimiento de Patrones

Técnicas de Minería de Datos

PREDICCIÓN METEOROLÓGICA

Análisis de Datos. Introducción al aprendizaje supervisado. Profesor: Dr. Wilfrido Gómez Flores

Examen de Septiembre de TACCIII y TAI (Modelo 2)

Fuentes, notas y conceptos del Capítulo 16

Aplicación de Técnicas de Minería de Datos para la Indagación y Estudio de Resultados Electorales

MASTER DE INGENIERÍA BIOMÉDICA. Métodos de ayuda al diagnóstico clínico. Tema 6: Árboles de decisión.

ESTUDIO DE CORRELACIONES DE RESULTADOS FUTBOLÍSTICOS DE REAL MADRID C.de F.

Inteligencia Artificial. Aprendizaje neuronal. Ing. Sup. en Informática, 4º. Curso académico: 2011/2012 Profesores: Ramón Hermoso y Matteo Vasirani

Aprendizaje: Boosting y Adaboost

La Firma Electrónica en el

GUÍA DOCENTE: Sistemas Basados en Conocimiento y Minería de Datos (SBC)

Aprendizaje Automatizado

Object Recognition as Machine Translation: Learning a Lexicon for a Fixed Image Vocabulary

TÉCNICAS DE AGRUPAMIENTO

I Estudio sobre rentabilidad en locales. Noviembre 2017

Contabilidad Municipal de la Ciudad de Madrid

Posibles trabajos HIA

RECONOCIMIENTO DE PAUTAS

Técnicas de aprendizaje sobre series temporales

Práctica 1: Entorno WEKA de aprendizaje automático y data mining.

MINI GUIA DE PROYECTOS - PRESUPUESTOS PARTICIPATIVOS - CUESTIONARIO DE VIABILIDAD - SUBE EL PROYECTO A DECIDE MADRID

5. Cooperación al desarrollo 5.1. Proyectos de Cooperación al Desarrollo subvencionados por áreas geográficas

Previsión de Demanda de Vivienda Nueva hasta 2028

1. Evolución de la población 1.1. Evolución de la Población. Operaciones censales 1.2. Evolución de la Población por Distrito

Inteligencia en Redes de Comunicaciones

Guía para invertir en Madrid en el sector inmobiliario

Análisis de Datos. Validación de clasificadores. Profesor: Dr. Wilfrido Gómez Flores

Métodos de Inteligencia Artificial

ARBOLES DE DECISION. Miguel Cárdenas-Montes. 1 Introducción. Objetivos: Entender como funcionan los algoritmos basados en árboles de decisión.

Redes Neuronales Artificiales

ANALISIS DE CLUSTER CON SPSS: INMACULADA BARRERA

GLOSARIO ESTADÍSTICO. Fuente: Murray R. Spiegel, Estadística, McGraw Hill.

LAS AREAS INDUSTRIALES DEL PLAN GENERAL DE MADRID 3.- LOCALIZACIÓN Y TIPOLOGÍA DE LAS AREAS DE ACTIVIDAD ECONOMICA DE MADRID... 9

BOLETÍN EPIDEMIOLÓGICO de la Comunidad de Madrid

La modernización digital en el Ayuntamiento de Madrid. José Miguel González Aguilera Consejero técnico 25 de abril de 2017

Automatización de la Evaluación del Impacto Social en Proyectos de Inversión Publica

PROYECTO PRESUPUESTO GENERAL AYUNTAMIENTO DE MADRID. Madrid, la ciudad que quieres

REDES NEURONALES ADAPTABLES


Intervalos de confianza con STATGRAPHICS

Clustering. Departamento de Ingeniería Informática y de Sistemas Universidad de La Laguna

Estudio del Mercado Secundario de la Vivienda para Venta en Madrid capital

INVERSIONES EN EQUIPAMIENTOS DEPORTIVOS MUNICIPALES 2016 AYUNTAMIENTO DE MADRID

2.- Tablas de frecuencias

REPASO DE ESTADÍSTICA DESCRIPTIVA

El Algoritmo E-M. José Antonio Camarena Ibarrola

Apuntes de Inteligencia Artificial

Inteligencia en Redes de Comunicaciones - 06 Aprendizaje

Estudio del problema del matrimonio estable en un entorno multiagente

Análisis de Clúster con SPSS. Método de las K-Medias

Tema: Aprendizaje Supervisado.

ANEXO II PARTICIPANTES EN LOS GRUPOS DE TRABAJO Y COMITÉ ORGANIZADOR DE LAS JORNADAS

Consumo de alimentos y factores de riesgo asociados en la Ciudad de Madrid


Pilar Serrano Garijo DGMAS. Ayuntamiento de Madrid

Aprendizaje Automatizado. Árboles de Clasificación

Simulación de Redes Neuronales Artificiales: Una Herramienta para la Docencia en Castellano

Métricas para la validación de Clustering

ESTUDIO SOBRE CONSUMO DE DROGAS EN JOVENES Y ADOLESCENTES

Aprendizaje inductivo

ESTADISTICA Y PROBABILIDAD ESTADÍSTICA

INFORME TAREA N 4 CLUSTERING

Día del deporte municipal

Estadística y sus aplicaciones en Ciencias Sociales 5. Estimación. Facultad de Ciencias Sociales, UdelaR

Determinantes sociales de las enfermedades crónicas y estrategias de abordaje desde la promoción de la salud: La experiencia de Madrid Salud

I Estudio comparativo sobre alquiler turístico vs residencial

CONCLUSIONES. La teoría de Redes Neuronales Artificiales, presenta grandes ventajas con

Prof. Angel Zambrano ENERO 2009 Universidad de Los Andes Escuela de Estadística

PRIMER SEMESTRE. Informe Semestral de la evolución del precio de las viviendas ubicadas en el Distrito 01 de Madrid, Centro MADRID. Centro Distrito 01

Experimentos Introducción

Predicción meteorológica

Análisis de Datos. Combinación de clasificadores. Profesor: Dr. Wilfrido Gómez Flores

Fundamentos y Aplicaciones Prácticas del Descubrimiento de Conocimiento en Bases de Datos. - Sesión 11 -

NEWTON TREES. Árboles de Estimación Estocástica de Probabilidades:

Redes neuronales con funciones de base radial

La contratación electrónica en el Ayuntamiento de Madrid

Raquel del Río Machín Área de Gobierno de Desarrollo Urbano Sostenible Ayuntamiento de Madrid. 27 de septiembre de 2017

Primero se inicializan dos puntos (tantos como clusters queremos) al azar. Estos puntos se denominan centroides del cluster.

NÚMERO DE PUESTOS Y RETRIBUCIONES DE LOS ÓRGANOS DIRECTIVOS DEL AYUNTAMIENTO DE MADRID Y DE SUS ORGANISMOS AUTÓNOMOS.

DEPORTE INFANTIL XXXI Juegos Deportivos Municipales de Karate ZONA - 1 (AREAS 1/2 CONJUNTAS AREAS 3/4 CONJUNTAS) (MADRID, VILLA) KATAS Y KUMITE

1.-DATOS DE LA ASIGNATURA

TECNOLOGÍAS INTELIGENTES PARA EXPLOTACIÓN DE INFORMACIÓN

Contabilidad Municipal de la Ciudad de Madrid

Inteligencia en Redes de Comunicaciones. Aprendizaje. Raquel M. Crespo García Julio Villena Román. {rcrespo,

Mapa de la Psicología Clínica en el Servicio Madrileño de Salud de la Consejería de Sanidad de la Comunidad de Madrid

III. Equilibrio territorial

FICHEROS Y BASES DE DATOS (E44) 3º INGENIERÍA EN INFORMÁTICA. Tema 4. Técnicas de Dispersión. Definición y Manejo.

ANÁLISIS DE CONGLOMERADOS (CLUSTER ANALYSIS)

Introducción. Autoencoders. RBMs. Redes de Convolución. Deep Learning. Eduardo Morales INAOE (INAOE) 1 / 60

Transcripción:

MINERIA DE DATOS: ANÁLISIS DE DATOS ELECTORALES Rubén Gómez-Chacón Camuñas rgomezch@ing.uc3m.es Javier Jimenez Dorado jjdorado@ing.uc3m.es RESUMEN En este artículo vamos a tratar un problema de minería de datos mediante técnicas de aprendizaje supervisado y no supervisado. Se estudia un conjunto de muestras donde están representados los datos electorales de las elecciones de octubre de 2003 a la Asamblea Legislativa de la Comunidad de Madrid. El problema se divide en dos partes bien diferenciadas: Selección de mesas representativas y Análisis de la distribución del voto. Los algoritmos de aprendizaje supervisado que hemos usado han sido los árboles de decisión (decisionstump, j48 y LMT) y perceptrón multicapa. Los algoritmos no supervisados han sido EM (Expectation Maximization) y K-Medias. Al final del artículo hacemos un breve repaso teórico de los mismos. La herramienta utilizada ha sido Weka, un programa de código abierto y que implementa gran variedad de algoritmos de aprendizaje muy útiles en tareas de minería de datos. El proceso de minería de datos será análogo al visto en clase y representado en el gráfico: Categorías y descriptores de materia I.2.6 Learning. I.5.3 Clustering Terminos generales Algoritmos, Experimentacion, Teoria, Verificación. Claves Mineria de datos, aprendizaje, clustering. 1. SELECCIÓN DE MESAS ELECTORALES REPRESENTATIVAS Disponemos de datos reales sobre los resultados electorales correspondientes a las elecciones autonómicas de la Comunidad de Madrid de octubre de 2003. Nuestro objetivo principal es seleccionar una serie de mesas electorales cuyos resultados sean representativos. Esto puede ser muy importante pues señala los puntos clave para realizar sondeos a pie de urna de una forma fiable, reduciendo pues el coste de los mismos, ya que bastará con realizarlos en dichas mesas en las próximas ediciones. Además se podrán simplificar los sondeos previos a la jornada electoral, pues podrán realizarse solamente en las áreas geográficas asociadas a dichos colegios electorales. Por otro lado se intentará extraer otro tipo de conocimiento de los datos que ayude en mayor medida al análisis de los mismos. Este tipo de conocimiento se conoce como conocimiento oculto, pues no es evidente, es desconocido a priori, pero puede sernos muy útil. Figura 1. Proceso de minería de datos 1.1 Preprocesado de los datos El conjunto inicial de datos, de que partimos, se encuentra almacenado en un fichero de texto en el que cada patrón corresponde a una mesa electoral, existiendo un total de 5866 mesas. Cada uno de estos patrones tiene 33 atributos, que especificamos en la siguiente tabla: Tabla 1. Atributos de los patrones 1

En este fichero de datos los municipios y distritos vienen representandos por códigos, cuya correspondencia real podemos ver en la figura de abajo. Figura 4. PP vs IU y PSOE vs. IU Se observa en esta gráfica cierta proporcionalidad entre los votos de PSOE y de IU, lo que implica por tanto proporcionalidad inversa entre PP e IU. Figura 2. Mapa de los distritos de la comunidad de Madrid En primer lugar transformaremos dicho archivo en un fichero.arff, que es el formato usado por Weka. En la primera línea debe aparecer @relation datos_electorales, que especifica el nombre de la relación. En las lineas siguientes se pondrán uno a uno los atributos en la forma: @attribute certificaciones real, si toma un valor numérico y en la forma: @attribute mesa {A,B,C,D,U}, si es una variable nominal y toma valores discretos. Cuando se han puesto todas los atributos se escribe @data y a continuación se pone un patrón por linea con los atributos separados por comas. Debido a la gran cantidad de partidos que concurrian en las elecciones y a que muchos de ellos no obtenian un número significativo de votos, optamos por dejar unicamente los siguientes, de manera que se simplicara el procesado: PSOE, PP, IU, y el resto de partidos fueron agrupados como RESTO. 1.2 Analisis de las relaciones entre variables Mediante la opcion Visualize de Weka podemos ver la relación entre todos los atributos dos a dos, en forma de gráfica, obteniendose resultados interesantes aunque no por ello poco esperados: 1.3 Obtención de mesas representativas usando clustering de la distancia. En primer lugar vamos a determinar las 10 mesas más representativas sin usar Weka. Para ello calculamos el resultado global de las elecciones sumando los votos obtenidos por cada partido: PSOE, PP, IU y RESTO, y los normalizamos con respecto al total de votos emitidos para obtener los porcentajes de voto. El resultado es: PSOE: 0.39689629410055516 : ~39.7% PP: 0.49340225246401037 : ~49.3% IU: 0.08647733813964514 : ~8.6% RESTO: 0.023224115295789334 : ~2.3% De aquí obtenemos la distancia euclídea de cada una de las mesas al resultado final de las elecciones mediante: dis tan cia = i 2 2 ( votos _ psoe votos _ psoe ) ( votos _ pp votos _ pp ) ( votos _ iu votos _ iu ) ) 2 i t + i t + i La distribución de las mesas en función de la distancia al resultado final puede verse en la siguiente gráfica : Figura3. PP vs. PSOE En esta figura se aprecia que el número de votos obtenidos por el PP es inversamente proporcional al obtenido por el PSOE. Figura5. Distribución de las distancias del resultado de cada mesa al resultado de las elecciones. 2

Llegados a este punto podemos tomar algún algoritmo de clustering para quedarnos con las mesas con resultados más parecidos al resultado final. El algoritmo elegido ha sido K- Medias. Cuanto mayor número de grupos elijamos, menor número de muestras aparecerá en cada uno. Si por ejemplo elegimos 20 clusters, el resultado dado por Weka es el siguiente: === Run information === Scheme: weka.clusterers.simplekmeans -N 20 -S 10 Relation: distancia_mesas Instances: 5864 Attributes: 1 distancia Test mode: evaluate on training data === Model and evaluation on training set === kmeans ====== Number of iterations: 135 Within cluster sum of squared errors: 0.9407559163727868 Cluster centroids: Cluster 0 Mean/Mode: 0.5198 Std Devs: 0.0257 Cluster 1 Mean/Mode: 0.1255 Std Devs: 0.0056 Cluster 2 Mean/Mode: 0.1468 Std Devs: 0.0061 Cluster 3 Mean/Mode: 0.1068 Std Devs: 0.0051 Cluster 4 Mean/Mode: 0.406 Std Devs: 0.0131 Cluster 5 Mean/Mode: 0.0596 Std Devs: 0.004 Cluster 6 Mean/Mode: 0.2395 Std Devs: 0.0072 Cluster 7 Mean/Mode: 0.1906 Std Devs: 0.0062 Cluster 8 Mean/Mode: 0.3626 Std Devs: 0.0117 Cluster 9 Mean/Mode: 0.3229 Std Devs: 0.0097 Cluster 10 Mean/Mode: 0.0898 Std Devs: 0.0047 Cluster 11 Mean/Mode: 0.046 Std Devs: 0.0041 Cluster 12 Mean/Mode: 0.0742 Std Devs: 0.0044 Cluster 13 Mean/Mode: 0.0169 Std Devs: 0.0053 Cluster 14 Mean/Mode: 0.2917 Std Devs: 0.0081 Cluster 15 Mean/Mode: 0.4567 Std Devs: 0.0156 Cluster 16 Mean/Mode: 0.032 Std Devs: 0.0041 Cluster 17 Mean/Mode: 0.1686 Std Devs: 0.0065 Cluster 18 Mean/Mode: 0.2137 Std Devs: 0.0072 Cluster 19 Clustered Instances Mean/Mode: 0.2649 Std Devs: 0.0076 0 63 ( 1%) 1 429 ( 7%) 2 362 ( 6%) 3 409 ( 7%) 4 159 ( 3%) 5 380 ( 6%) 6 311 ( 5%) 7 339 ( 6%) 8 236 ( 4%) 9 232 ( 4%) 10 382 ( 7%) 11 304 ( 5%) 12 352 ( 6%) 13 190 ( 3%) 14 262 ( 4%) 15 133 ( 2%) 16 318 ( 5%) 17 350 ( 6%) 18 366 ( 6%) 19 287 ( 5%) En el cluster 13 se situan aquellas mesas con resultado más cercano en distancia euclídea al resultado final. Este cluster agrupa un 3% de las mesas electorales, esto es 190, que bien podría servir para realizar los sondeos. Si queremos seleccionar un número menor de mesas deberemos introducir un mayor número de clusters. Por ejemplo, usando 100 clusters conseguimos seleccionar 22 mesas con una distancia de 0.071 en media y de 0.02 de desviación estandar. Weka, nos permite además representar los centroides de cada cluster y ver las mesas asignadas a cada uno de ellos: Figura 6. Centroides de los 100 clusters usados en k- Medias Si seleccionamos el cluster azul, que se encuentra más abajo en el eje de ordenadas,vemos que las mesas asignadas al mismo son las que buscabamos: 216, 399, 501, 660, 763, 764, 2396, 2625, 2963, 2970, 3092, 3108 3268, 3855, 3938, 3964, 4015, 4646, 4904, 4975, 5626, 5807 3

Que correponden con: nº mesas municipio distrito 1 Alcobendas 1 1 Alcorcón 3 1 Alpedrete 1 1 Camarma de Esteruelas 2 Collado Villalba 1 1 Madrid Tetúan (6) 1 Madrid Fuencarral-El Pardo (8) 4 Madrid Latina (10) 1 Madrid Carabanchel (11) 1 Madrid Moratalaz (14) 1 1.4 Obtención de mesas representativas haciendo clustering directo de las muestras Otra manera de obtener 10 mesas representativas es mediante agrupamiento directo, sin calcular previamente las distancias. Hemos usado los algoritmos EM y k-medias implementados en Weka y como entradas los porcentajes de voto por mesa para PSOE, PP, IU y RESTO. Si queremos obtener un número pequeño de mesas representativas deberemos incrementar el número de clusters, para que haya menos mesas por cluster, lo que con una entrada de dimensión 4 puede alargar el tiempo de procesado bastante. En estos casos hemos pasado a utilizar únicamente PSOE y PP como entradas, pues IU y RESTO son mucho menos significativas. Finalmente, una vez se ha realizado el agrupamiento, no queda más que seleccionar el cluster con centroide más parecido al resultado final de las elecciones y tomar como mesas representativas las que han sido asignadas a dicho cluster. En primer lugar, a modo ilustrativo (salen demasiadas mesas por cluster) mostramos el resultado del algoritmo EM con 6 clusters para los atributos PSOE y PP (sólo es posible representar gráficos bidimensionales): 3 Madrid Ciudad Lineal (15) 1 Madrid San Blas (20) 1 Móstoles 2 1 Móstoles 3 1 Torrejón de Ardoz 4 1 Villavicioa de Odón 1 Tabla 2: 22 Mesas representativas Figura 7. Agrupamiento de 6 conjuntos usando el algoritmo EM (se muestra PSOE frente a PP). Las muestras que más se parecen al resultado de las elecciones se encuentran en el cluster 1 (azul oscuro). Véase como las muestras más atípicas son agrupadas en clusters aparte. Usando kmeans para el mismo número de clusters se reduce el tiempo de ejecución a cambio de dar como resultado regiones con límites más difusos. 4

A pesar de usar 100 clusters el número de mesas agrupadas en el cluster más parecido al resultado final sigue siendo grande. En el primer caso ( figura x) hay 113 mesas (cluster 31 en rojo) y en el segundo caso, cluster 66, hay 186. Usando el algoritmo kmedias y 200 clusters (lleva menos tiempo de ejecución que el EM). Figura 8. Agrupamiento de 6 conjuntos usando el algoritmo K-Medias (se muestra PSOE frente a PP). Aumentando el número de clusters para obtener menos muestras en cada uno: Figura 11. Agrupamiento de 200 conjuntos usando el algoritmo kmeans (entradas = PSOE y PP) El cluster seleccionado es el 13, con 42 muestras. Hemos comprobado que algunas coinciden con las obtenidas en el apartado 1.3. Figura 9. Agrupamiento de 100 conjuntos usando el algoritmo EM (se muestra PSOE frente a PP). Usando como atributos PSOE y PP: Figura 10. Agrupamiento de 100 conjuntos usando el algoritmo EM. 5

2. ANÁLISIS DE LA DISTRIBUCIÓN DEL VOTO Adicionalmente a la obtención de las mesas representativas hemos querido analizar la relación entre los ganadores en cada mesa electoral con el porcentaje de voto valido (votos validos/censo), asi como la opción ganadora en función del distrito. Para ello hemos introducido dos nuevas variables: gana (que toma los valores PSOE, PP y IU) y porcentaje_voto (que es el resultado de dividir los votos válidos entre el censo). 2.1 Distribución del voto en la comunidad de Madrid Mostramos algunas gráficas donde podemos ver las relaciones entre diversas variables con el atributo gana. Podemos comprobar que el PSOE necesita un porcentaje algo mayor en una mesa (en media) para proclamarse ganador en la misma. Además parece que el que gane una u otra opción política puede estar relacionado con el porcentaje de gente que vota en dicha mesa. Esta información puede ser usada por el partido al cual perjudique la abstención para fomentar el voto en aquellas zonas donde sea mayor. Dada la relación entre el porcentaje de voto y el partido que sale ganador en la mesa, hemos intentado construir un sistema automático que nos diga la opción ganadora en cada mesa. Hemos usado, en primer lugar, un árbol de decisión, concretamente el DecisionStump, puesto que sólo tenemos una entrada: el porcentaje de voto. Los árboles de decisión son muy intuitivos y fáciles de comprender, además de poder mapearse directamente a código de programación a través de sentencias ifelse. A continuación mostramos la salida de Weka, al ejecutar este algoritmo: Decision Stump Classifications porcentaje_voto <= 0.6449612785298076 : PSOE porcentaje_voto > 0.6449612785298076 : PP porcentaje_voto is missing : PP Class distributions porcentaje_voto <= 0.6449612785298076 PP PSOE IU 0.37544198007071683 0.6223079395692703 0.0022500803600128574 porcentaje_voto > 0.6449612785298076 PP PSOE IU 0.814021067925899 0.1772611696331275 0.008717762440973484 porcentaje_voto is missing PP PSOE IU 0.581343792633015 0.41336971350613916 0.005286493860845839 Figura 12. Histogramas de datos par a las distribuciones del porcentaje de voto, ganador por mesa, y porcentajes de voto por mesa para PSOE, PP, IU y RESTO. El color azul corresponde con las mesas donde gana el PP, el rojo con las que gana el PSOE y el azul claro con las que gana IU. Obteniendose los siguientes resultados: === Summary === Correctly Classified Instances 4173 71.163 % Incorrectly Classified Instances 1691 28.837 % Kappa statistic 0.4321 Mean absolute error 0.2628 Root mean squared error 0.3627 Relative absolute error 80.2543 % Root relative squared error 89.642 % Total Number of Instances 5864 === Detailed Accuracy By Class === TP Rate FP Rate Precision Recall F-Measure ROC Area Class 0.657 0.209 0.813 0.657 0.727 0.713 PP 0.798 0.342 0.622 0.798 0.699 0.717 PSOE 0 0 0 0 0 0.588 IU === Confusion Matrix === a b c <-- classified as 2239 1170 0 a = PP 490 1934 0 b = PSOE 24 7 0 c = IU Figura 13. Distribución de las mesas ganadoras en función del porcentaje de voto en cada una. 6

Vemos que tomando como entrada solamente el porcentaje de voto somos capaces de alcanzar más de un 71% de acierto. En segundo lugar hemos usado un perceptrón multicapa, con entrada porcentaje_voto y salida gana. Usando una sola capa oculta y los valores que vienen por defecto (tasa de aprendizaje=0.3, momento=0.2, etc.) hemos obtenido algo más de un 72% de acierto. Tanto en el método de DecisionStump como en el del perceptrón multicapa hemos usado cross-validation con 3 grupos como mecanismo de validación. 2.2 Distribución del voto en el municipio de Madrid Nos gustaría obtener un nivel mayor de fiabilidad para nuestro sistema, para ello vamos a centrarnos en un sólo municipio, que será Madrid (correpondiente al código 79), y usaremos un nuevo atributo de entrada a los clasificadores, el distrito. 01 Centro 02 Arganzuela 03 Retiro 04 Salamanca 05 Chamartín 06 Tetuán 07 Chamberí 08 Fuencarral-El Pardo 09 Moncloa-Aravaca 10 Latina 11 Carabanchel 12 Usera 13 Puente de Vallecas 14 Moratalaz 15 Ciudad Lineal 16 Hortaleza 17 Villaverde 18 Villa de Vallecas 19 Vicálvaro 20 San Blas 21 Barajas distrito <= 11: PP (198.0/92.0) distrito > 11: PSOE (170.0/27.0) distrito > 14: PP (142.0/35.0) distrito > 16 distrito <= 19 porcentaje_voto <= 0.653285: PSOE (95.0/5.0) porcentaje_voto > 0.653285 distrito <= 18 distrito <= 17: PSOE (5.0/1.0) distrito > 17: PP (4.0) distrito > 18: PSOE (2.0) distrito > 19 distrito <= 20: PSOE (68.0/22.0) distrito > 20: PP (12.0/2.0) porcentaje_voto > 0.658363 distrito <= 16 distrito <= 13 distrito <= 11: PP (245.0/38.0) distrito > 11 distrito <= 12 porcentaje_voto <= 0.669829: PP (4.0) porcentaje_voto > 0.669829: PSOE (20.0/7.0) distrito > 12: PSOE (59.0/14.0) distrito > 13: PP (289.0/38.0) distrito > 16 distrito <= 19: PSOE (82.0/26.0) distrito > 19: PP (78.0/20.0) Number of Leaves : 20 Size of the tree : 39 En segundo lugar hemos probado con un clasificador de tipo perceptrón multicapa. Hemos usado algunos clasificadores de Weka. En primer lugar, árboles de decisión, J48 y LMT. En el primero alcanzamos un 84.3887 % de acierto y en el segundo un 83.3542 %. En ambos con 3 grupos para la validación cruzada y con las opciones por defecto. Adjuntamos a continuación el árbol del primer algoritmo (j48): J48 pruned tree ------------------ distrito <= 9 porcentaje_voto <= 0.648508 porcentaje_voto <= 0.561006: PSOE (44.0/15.0) porcentaje_voto > 0.561006: PP (310.0/60.0) porcentaje_voto > 0.648508: PP (1000.0/21.0) distrito > 9 porcentaje_voto <= 0.658363 porcentaje_voto <= 0.600756: PSOE (363.0/48.0) porcentaje_voto > 0.600756 distrito <= 16 distrito <= 14 Figura 14. Estructura del perceptrón multicapa, con una capa oculta (en rojo). Todos los parámetros se han dejado a los valores por defecto, al igual que en el caso anterior. El porcentaje de acierto con este método ascendió a un 79.5611 %. 7

3. CONCLUSIONES El análisis realizado para los datos electorales dados puede ser realmente útil, primero para realizar los sondeos en elecciones posteriores sólo alli donde el resultado de los mismos puede tener cierta fiabilidad, resultando en un ahorro de costes. Por otro lado, la relación entre el porcentaje de voto (y en menor medida del distrito) con la opción ganadora en cada mesa puede ser útil para realizar valoraciones a lo largo de la jornada electoral y sobre todo justo al término de la misma, cuando el porcentaje de voto puede ser calculado directamente. Aún así no puede considerarse que los resultados obtenidos sean muy fiables, puesto que solo se han utilizado los resultados de unas elecciones (octubre de 2003), que además fueron anticipadas, debido a los sucesos que siguieron a las elecciones de mayo del mismo año. Un estudio más exhaustivo, usando datos relacionados con diferentes convocatorias electorales podría dar resultados de mayor fiabilidad y muy interesantes. 4. ANEXOS TEÓRICOS En este apartado vamos a revisar algunos conceptos teóricos relacionados con los procedimientos de minería de datos utilizados a lo largo del presente trabajo. 4.1 Anexo 1: Algoritmos de clasificación a. Árboles de decisión Los árboles de decisión son algoritmos de aprendizaje por inducción supervisada que pretenden modelar los datos de ejemplo mediante un árbol. Los nodos intermedios son los atributos de entrada de los ejemplos presentados, las ramas representan valores de dichos atributos y los nodos finales osn los valores de la clase. Para elegir qué atributos y en que orden aparecen en el árbol, se utiliza una función de evaluación llamada ganancia de información (reducción de entropía del conjunto al clasificar usando un determinado atributo). Tienen como ventaja que son fáciles de programar pues se traducen en regla if-else. Los hay que trabajan con atributos nominales únicamente, como el ID3, y que trabajan también con atributos numéricos, como el C4.5 (j48 en Weka). Ejemplo: b. Perceptrón multicapa Es un tipo de red neuronal. Las redes neuronales son una simplificación matemática bastada en el proceso estímulo/respuesta de las neuronas. Son capaces de aprender o modelar la relación existente entre sus entradas y salidas mediante la modificación de los valores de los pesos de las conexiones que unen las entradas con las neuronas y las neuronas entre sí. El modelo más simple de red neuronal es el perceptrón simple, que no tiene capas de neuronas ocultas y que mostramos en la figura. Figura 16. Estructura de perceptrón simple La relación entre entradas y salida viene dada por: siendo F la función de activación. El problema de este tipo de estructura es que sólo sirve para resolver problemas de complejidad lineal (relación lineal entre entradas y salidas), de ahí la necesidad de introducir capas de neuronas ocultas y dar lugar al perceptrón multicapa, como el que hemos usado. El problema de entrenar las neuronas de las capas ocultas para actualizar los pesos de sus conexiones se resuelve con el algoritmo de BackPropagation (retropropagación). c. Entrenamiento y validación Para que evaluar el aprendizaje se divide el conjunto de datos en dos grupos: entrenamiento y test. El primero para entrenar el modelo y el segundo para validarlo, comprobando en este último caso que el error es lo suficientemente pequeño. Suele usarse un 80% de muestras para entrenamiento y un 20% para test, y se pretende que ambos conjuntos sean capaces de representar al conjunto total de datos, de no ser así aparece el llamado error de muestreo. Para evitarlo puede usarse validación cruzada (crossvalidation): se divide el conjunto inicial de datos en N partes, se entrena/evalúa N veces, cada vez con un conjunto de test diferente y se da como error final la media de las N medidas de error. Figura 15. Ejemplo de árbol de decisión 8

4.2 Anexo 2: Algoritmos de agrupamiento a. k-medias Algoritmo de clasificación no supervisado, inventado por J. MacQueen en 1967, mediante el cual el espacio de patrones de entrada se divide en K clases o regiones, cada una representada por un punto llamado centroide. Dichos centros se determinan con el objetivo de minimizar las distancias euclídeas entre los patrones de entrada y el centro más cercano Los pasos para la aplicación del algoritmo son los siguientes: 1. Se inicializan aleatoriamente los centros de las K clases 2. Se asignan Ni patrones de entrada a cada clase i del siguiente modo: El patrón X(n) pertenece a la clase i si Por tanto, cada clase tendrá asociado un determinado número de patrones de entrada, aquellos más cercanos al centro de la clase. 3. Se calcula la nueva posición de los centros de las clases como la media de todos los patrones que pertenecen a su clase, es decir: 4. Se repiten los pasos 2 y 3 hasta que las nuevas posiciones de los centros no se modifiquen respecto a su posición anterior, es decir hasta que: El algoritmo EM (Expectation Maximization) empieza adivinando los parámetros de las distribuciones y los usa para calcular las probabilidades de que cada objeto pertenezca a un cluster y usa esas probabilidades para re-estimar los parámetros de las probabilidades, hasta converger (se puede empezar adivinando las probabilidades de que un objeto pertenezca a una clase). El cálculo de las probabilidades de las clases o los valores esperados de las clases es la parte de expectation. El paso de calcular los valores de los parámetros de las distribuciones, es maximization, maximar la verosimilitud de las distribuciones dados los datos. Para estimar los parámetros, tenemos que considerar que tenemos únicamente las probabilidades de pertenecer a cada cluster y no los clusters en si. Estas probabilidades actúan como pesos. PROCESO: Maximizar L(x, λ) = log(f(x, λ)) maximizando iterativamente L ( x, ˆ) λ = log f ( x, ˆ) λ Se define: Q ( λ, ˆ) λ tal que L( x, ˆ) λ = Q( λ, ˆ) λ H ( λ, ˆ λ) Pasos: 1.Elegir un modelo inicial λ 2.E-step: Calcular Q( λ, ˆ) λ 3.M-step ˆ λ arg maxq( λ, ˆ) λ ˆ λ 4.Hacer λ= ˆ λ y repetir desde el paso 2 hasta la convergencia. Como condición de parada del algoritmo suele tomarse cuando la log-verosimilitud no varía de manera significativa. Aunque EM garantiza convergencia, esta puede ser a un máximo local, por lo que se recomienda repetir el proceso varias veces. El algoritmo de K-medias es un método fácil de implementar y usar. Suele ser un algoritmo bastante eficiente en problemas de clasificación, pues converge en pocas iteraciones hacía un mínimo de la función, aunque podría tratarse de un mínimo local. Su principal inconveniente: su dependencia de los valores iniciales asignados a cada centro (mínimos locales). b. EM Es un método no supervisado de aprendizaje. Se trata de un estimador ML que maximiza la log-verosimilitud de los datos incompletos iterativamente maximizando la esperanza de la logverosimilitud de los datos completos, donde los datos completos están formados por los observables (incompletos) y los no observables. El problema es que no sabemos de qué distribución viene cada dato y no conocemos los parámetros de las distribuciones. 5. HERRAMIENTAS Para la realización de este trabajo se ha usado fundamentalmente el programa de código abierto Weka y se han programado código Java para dar formato a los ficheros de entrada a Weka, así como para calcular el resultado de las elecciones y las distancias de este resultado a las diferentes mesas. Los programas creados son: Preprocesamiento.java, Resultado.java, PorMesa.java, PorMesaGana.java y Distancias.java. Estos archivos, así como copia de diferentes salidas y gráficos de Weka se adjuntan con esta memoria. 6. REFERENCIAS [1] Apuntes de la asignatura: Inteligencia de Redes de Comunicación [2] Apuntes de la asignaturas: Tratamiento digital de señales y Redes de Neuronas. [3] Página de Weka: http://www.cs.waikato.ac.nz/ml/weka/ [4] Instituto de estadística de la comunidad de Madrid. www.madrid.org/iestadis/ 9

10