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