MINERIA DE DATOS: ANÁLISIS DE DATOS ELECTORALES · agrupamiento directo, sin calcular previamente...

10
1 MINERIA DE DATOS: ANÁLISIS DE DATOS ELECTORALES Rubén Gómez-Chacón Camuñas [email protected] Javier Jimenez Dorado [email protected] 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. 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. El proceso de minería de datos será análogo al visto en clase y representado en el gráfico: 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: Figura 1. Proceso de minería de datos Tabla 1. Atributos de los patrones

Transcript of MINERIA DE DATOS: ANÁLISIS DE DATOS ELECTORALES · agrupamiento directo, sin calcular previamente...

Page 1: MINERIA DE DATOS: ANÁLISIS DE DATOS ELECTORALES · agrupamiento directo, sin calcular previamente las distancias. Hemos usado los algoritmos EM y k-Medias implementados en Weka y

1

MINERIA DE DATOS: ANÁLISIS DE DATOS ELECTORALES

Rubén Gómez-Chacón

Camuñas [email protected]

Javier Jimenez Dorado [email protected]

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.

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.

El proceso de minería de datos será análogo al visto en clase y

representado en el gráfico:

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:

Figura 1. Proceso de minería de datos

Tabla 1. Atributos de los patrones

Page 2: MINERIA DE DATOS: ANÁLISIS DE DATOS ELECTORALES · agrupamiento directo, sin calcular previamente las distancias. Hemos usado los algoritmos EM y k-Medias implementados en Weka y

2

En este fichero de datos los municipios y distritos vienen

representandos por códigos, cuya correspondencia real podemos

ver en la figura de abajo.

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:

En esta figura se aprecia que el número de votos obtenidos por el

PP es inversamente proporcional al obtenido por el PSOE.

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.

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:

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

Figura 4. PP vs IU y PSOE vs. IU

Figura 2. Mapa de los distritos de la comunidad de Madrid

( ) ( ) ( )( )222______tan iuvotosiuvotosppvotosppvotospsoevotospsoevotosciadis ititii −+−+−=

Figura5. Distribución de las distancias del resultado de

cada mesa al resultado de las elecciones.

Page 3: MINERIA DE DATOS: ANÁLISIS DE DATOS ELECTORALES · agrupamiento directo, sin calcular previamente las distancias. Hemos usado los algoritmos EM y k-Medias implementados en Weka y

3

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

Mean/Mode: 0.2649 Std Devs: 0.0076

Clustered Instances

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:

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

Figura 6. Centroides de los 100 clusters usados en k-

Medias

Page 4: MINERIA DE DATOS: ANÁLISIS DE DATOS ELECTORALES · agrupamiento directo, sin calcular previamente las distancias. Hemos usado los algoritmos EM y k-Medias implementados en Weka y

4

Que correponden con:

nº mesas municipio distrito

1 Alcobendas 1

1 Alcorcón 3

1 Alpedrete 1

1 Camarma de

Esteruelas

1

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)

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

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):

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.

Tabla 2: 22 Mesas representativas

Figura 7. Agrupamiento de 6 conjuntos usando el

algoritmo EM (se muestra PSOE frente a PP).

Page 5: MINERIA DE DATOS: ANÁLISIS DE DATOS ELECTORALES · agrupamiento directo, sin calcular previamente las distancias. Hemos usado los algoritmos EM y k-Medias implementados en Weka y

5

Aumentando el número de clusters para obtener menos muestras

en cada uno:

Usando como atributos PSOE y PP:

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).

El cluster seleccionado es el 13, con 42 muestras. Hemos

comprobado que algunas coinciden con las obtenidas en el

apartado 1.3.

Figura 8. Agrupamiento de 6 conjuntos usando el algoritmo

K-Medias (se muestra PSOE frente a PP).

Figura 9. Agrupamiento de 100 conjuntos usando el

algoritmo EM (se muestra PSOE frente a PP).

Figura 10. Agrupamiento de 100 conjuntos usando

el algoritmo EM.

Figura 11. Agrupamiento de 200 conjuntos usando el

algoritmo kMeans (entradas = PSOE y PP)

Page 6: MINERIA DE DATOS: ANÁLISIS DE DATOS ELECTORALES · agrupamiento directo, sin calcular previamente las distancias. Hemos usado los algoritmos EM y k-Medias implementados en Weka y

6

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 if-

else. 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

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 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.

Figura 13. Distribución de las mesas ganadoras en

función del porcentaje de voto en cada una.

Page 7: MINERIA DE DATOS: ANÁLISIS DE DATOS ELECTORALES · agrupamiento directo, sin calcular previamente las distancias. Hemos usado los algoritmos EM y k-Medias implementados en Weka y

7

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.

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

| | | | | 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.

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 %.

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

Figura 14. Estructura del perceptrón multicapa, con una

capa oculta (en rojo).

Page 8: MINERIA DE DATOS: ANÁLISIS DE DATOS ELECTORALES · agrupamiento directo, sin calcular previamente las distancias. Hemos usado los algoritmos EM y k-Medias implementados en Weka y

8

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.

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 (cross-

validation): 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

Figura 16. Estructura de perceptrón simple

Page 9: MINERIA DE DATOS: ANÁLISIS DE DATOS ELECTORALES · agrupamiento directo, sin calcular previamente las distancias. Hemos usado los algoritmos EM y k-Medias implementados en Weka y

9

)ˆ,( λλQ )ˆ,()ˆ,()ˆ,( λλλλλ HQxL −=

)ˆ,( λλQ

)ˆ,(maxargˆˆ

λλλλ

Q∈

λλ ˆ=

)ˆ,(log)ˆ,( λλ xfxL =

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 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 log-

verosimilitud 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.

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

Se define: tal que

Pasos: 1.Elegir un modelo inicial λ

2.E-step: Calcular

3.M-step

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.

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/

Page 10: MINERIA DE DATOS: ANÁLISIS DE DATOS ELECTORALES · agrupamiento directo, sin calcular previamente las distancias. Hemos usado los algoritmos EM y k-Medias implementados en Weka y

10