Proceedings Template - WORD

Anuncio
ESTUDIO MINERIA DE DATOS: WEKA
Luis Martin-Cobos Blanco
Ingeniería de Telecomunicaciones
Universidad Carlos III de Madrid
Av. De la Universidad, 30
28911 Leganés (Madrid)
100276565
[email protected]
Alberto Godino Martinez
Ingeniería de Telecomunicaciones
Universidad Carlos III de Madrid
Av. De la Universidad, 30
28911 Leganés (Madrid)
100275692
[email protected]
RESUMEN
En el presente artículo se analiza mediante la herramienta WEKA
y MATLAB la clasificación en clusters y sus aplicaciones.
Palabras Clave
K Means, minería de datos, Matlab , cluster.
1. INTRODUCCION
Se nos presentan una serie de países, mas de 200, con una
inmensa cantidad de atributos diferentes(tasa de mortalidad, tasa
de población joven , tasa de crecimiento de la población,…).
2. ESTUDIO DE LAS RELACIONES ENTRE
LAS CARACTERISTICAS COMUNES A UNA
SERIE DE DATOS DE ENTRADA
2.1
PRIMER ESTUDIO
Nuestro primer estudio sobre todos estos datos va a consistir en
elegir una serie de países, más de 100 para tener una buena
muestra representativa de ellos y algunas características de los
mismos:






1 Mortalidad infantil : (Child mortality (0-5 year-olds
dying per 1,000 born))
2 Tasa de alfabetización :(Literacy rate, adult total (% of
people ages 15 and above))
3 Densidad de población: Population density (per
square km)
4 Población urbana : Urban population (% of total)
5 Tasa de crecimiento de la población : Population
growth (annual %)
6 Tasa de población infantil :Population aged 0-4 years,
both sexes (%)
Vamos a utilizar la matriz de covarianzas para ver en un grafico
de colores, que nos va a proporcionar Matlab, la relación que
existe entre esas características. Lo que queremos por lo tanto
descubrir son las relaciones directas o inversas entre esas
características: por ejemplo si un elevado dato de mortalidad
infantil supone por lo general un elevado número de personas
analfabetas en ese país, o si un gran crecimiento de la población
de un país guarda relación con la proporción de habitantes de ese
mismo país en ciudades.
.
Fig 1. Matriz de covarianzas
Vamos a analizar el siguiente grafico. El color rojo indica
relaciones directas y los azules inversas; por tanto un crecimiento
de la tasa de mortalidad infantil implica un descenso en la tasa de
alfabetización (por ser azul, relación inversa); o por ejemplo un
incremento de la mortalidad infantil implica un crecimiento en la
tasa de crecimiento en el país, etc
Todas estas relaciones son lógicas: los países con mayor tasa de
mortalidad infantil presentan unos índices de alfabetización
menores o los países que suelen tener un crecimiento demográfico
grande como por ejemplo países de África o la India suelen ser
países mas subdesarrollados y por consiguiente con tasas de
mortalidad infantil mayores; demostramos por tanto, que las
matrices de covarianzas son una importante herramienta para el
análisis de la información.
(ANEXO I)
2.2
SEGUNDO ESTUDIO
En este segundo estudio vamos a emplear la matriz de
correlaciones. A diferencia que la matriz de covarianzas, este
nuevo mecanismo nos va a permitir conocer la lo fuerte o débil
que es esa relación que habíamos descubierto antes.
Fig 2. Matriz de correlaciones
Fig 5. Simulación K Means 3 clusters.
Los colores marrones y rojos indican un elevado grado de
correlación positiva entre las variables, mientras que los colores
azules indican un elevado grado de correlación inversa entre esas
variables. El mayor grado de correlación directa existe entre una
variable y si misma, valores de la diagonal de la matriz. Después
podemos observar como por ejemplo la característica 1 y 5
(mortalidad infantil y tasa de crecimiento de la población
)guardan un elevado grado de correlación positiva(tono rojizo); es
muy lógico, y la tasa de población infantil de un país con la tasa
de alfabetización(2 y 6) presentan un elevado grado de correlación
negativa, es decir, son inversas.
(ANEXO I)
En esta figura podemos comprobar como después de 5 iteraciones
el algoritmo converge. También, vemos que se han creado 3
clusters:
- Cluster 0: pertenecen a él el 28% de los países que estamos
evaluando
- Cluster 1: pertenecen a él el 45% de los países que estamos
evaluando
- Cluster 2: pertenecen a él el 26% de los países que estamos
evaluando
También podemos ver cuál es el valor de cada atributo en el
centro de cada cluster (no tener en cuenta el atributo países).
En la siguiente imagen vemos la relación entre dos de las
características que mejor nos permiten ver la separación en
clusters de los datos. En este caso hemos elegido "Child
mortality" en el eje X y "Literacy Rate" en el eje Y.
3 SIMULACION CON WEKA
3.1
CLASIFICACION EN CLUSTERS
A continuación vamos a pasar a hacer un análisis de los datos
usando la herramienta WEKA.
Hemos realizado un cluster usando el algoritmo de K Means con
3 clusters y 3 seeds (semillas). Hemos decidido que haya 3
clusters para poder dividir los países en desarrollados, sub
desarrollados y en vías de desarrollo.
Fig 6. Representacion de los 3 clusters en funcion de dos
caracteristicas
Como podemos comprobar, los datos se han dividido en 3
clusters: rojo, azul y verde. Evaluando los datos, llegamos a la
conclusión que el cluster rojo (cluster 1) sería el conjunto de
países desarrollados puesto que tienen una mortalidad infantil
baja y nivel de alfabetización alto. Comprobamos que estamos en
lo cierto seleccionando algunos puntos pertenecientes a ese cluster
y viendo que son países como Australia, España, USA o Portugal.
Los países en el cluster azul (cluster 0) corresponderían a países
en vías de desarrollo puesto que tienen una mortalidad infantil
media-baja y un nivel de alfabetización medio-alto. Vemos que
pertenecen a ese cluster países como El salvador o Turquía. Por
último vemos que los países pertenecientes al cluster verde
(cluster 2) son los países sub desarrollados ya que tienen una
mortalidad infantil media-alta y un nivel de alfabetización bajo
(Burkina Faso, Iraq).
3.2
ANÁLISIS DE DATOS: CÁLCULO DE
OTROS ATRIBUTOS A PARTIR DE LA
CLASIFICACIÓN EN CLUSTERS
A continuación, vamos a intentar estimar la población de un país
que vive en las condiciones del cluster al que pertenece. Por
ejemplo, en el caso de EEUU, podríamos intentar estimar cuanta
gente vive en las condiciones de lo que sería el punto central del
clúster, siendo su clúster el clúster de los países más ricos y
desarrollados. Para ello y sabiendo la población de cada país,
vamos a basarnos en la distancia desde el centro hasta el extremo
del cluster y la distancia desde el centro al país del que se quiere
estimar este tipo de población. Calcularemos el % de pertenencia
de un país al cluster dividiendo la distancia desde el centro a ese
país entre la distancia máxima (distancia del centro al extremo del
cluster). Para ello nos creamos un pequeño programa en Matlab
que nos calcula el grado de pertenencia de un país así como la
población que vive en esas condiciones.
3.3 ANÁLISIS DE DATOS: CONCLUSIONES A
PARTIR DEL ANÁLISIS DE LA RELACIÓN
ENTRE CARACTERÍSTICAS
En este apartado, vamos a intentar concluir cómo han
evolucionado los países del mundo a lo largo de los últimos 200
años.
3.3.1 Ingresos frente a esperanza de vida en el mundo
Las características que se van a analizar son los ingresos de los
países en el eje Y (en escala logarítmica) y la esperanza de vida en
el eje X.
A continuación vemos alguna de las simulaciones hechas para
poder realizar un análisis de ellas y sacar conclusiones.
Fig 7. Representacion de los paises año 1800
Vamos a hacer una pequeña simulación con España de ejemplo.
Vemos que introduciendo el cluster al que pertenece, las
coordenadas en las que se encuentra dentro del cluster y la
población (50 millones) nos da como resultado que 37.7 millones
de personas viven en España en condiciones altas. Nótese que
estas condiciones dependen en gran medida de la existencia
únicamente de 3 clusters, y por tanto podrán variar en función de
la clasificación realizada(puede ser algo irreal que en la actualidad
37 millones de españoles vivan en lo que se supone condiciones
altas).
>> poblacion(1,[1.4 95], 50 )
ans =
37.7309
>>
(ANEXO II)
Fig 8. Representacion de los paises año 1851
Fig 9. Representacion de los paises año 1900
Fig 12. Representacion de los paises año 2012
Fig 10. Representacion de los paises año 1949
Como podemos comprobar, desde 1800 y en rangos de 50 años,
cada vez todos los países analizados se han ido desplazando hacia
la zona derecha y arriba de la imagen. Esto nos indica que la
esperanza de vida de todos los países ha aumentado y que en
general, todos los países son más ricos que al inicio. También
vemos que al inicio, en 1800, los países estaban muy juntos y a
medida que han pasado los años, se han ido separando. Esto nos
indica que hay países que se han desarrollado mejor
económicamente (por tanto su calidad de vida es mayor
repercutiendo positivamente en la esperanza de vida, haciéndose
mas grande también) y por tanto quedan más arriba a la derecha
de la grafica. Otros no lo han hecho tanto y aunque sí que se
desplazan hacia la derecha de la grafica y un poco hacia arriba,
no lo hacen de forma tan significativa. También podemos
comprobar en la clasificación por colores, que los países que más
abajo del grupo se encuentran en general son los pertenecientes a
África y en cambio arriba se encuentra parte de América
(posiblemente del Norte) en color amarillo, o parte de Asia
(probablemente Rusia) en color naranja, rojo posiblemente
perteneciente a China y varios verdes pertenecientes a Europa.
Aunque no se encuentra en la grafica, pudimos comprobar como
por ejemplo, en 1942 (Segunda Guerra Mundial) , la esperanza de
vida de Polonia dio un gran bajón y se situó a la izquierda de la
grafica.
3.3.2 Evolución económica de los países asiáticos
Hemos decidido llevar a cabo un pequeño estudio sobre 3 países
asiáticos, en concreto Filipinas, Tailandia y China , ya que la
importancia de estos países es cada vez mayor. Vemos como a lo
largo de los ultimo años han corregido bastante su situación y por
ello cada vez son mas importantes en las economías mundiales. Se
espera que China se convierta en una potencia al nivel de los
Estados Unidos en unos años.
Fig 11. Representacion de los paises año 1981
Vemos que, en el caso de España, vamos avanzando hacia arriba
y muy poco hacia la derecha. Esto indica que cada vez había más
desempleo y la gente no ganaba más. Entonces, podemos
comprobar que durante esos años en España había una época de
cambio estructural debido a la muerte de Franco, la creación de la
Constitución, la crisis del petróleo, etc. [referencia:
http://es.wikipedia.org/wiki/Econom%C3%ADa_de_Espa%C3%
B1a#1973_.E2.80.93_1986:_Crisis_y_cambios_estructurales]
Fig 13. Evolucion economico de ciertos paises asiaticos
3.3.3 Evolución económica en España desde 1980
hasta 2007(desempleo vs ingresos por persona)
Con este ejercicio vamos a intentar analizar crisis económicas que
haya habido. Para ello vamos a centrarnos en España y los valores
a analizar van a ser el desempleo en gente mayor de 15 años (eje
Y) y los ingresos por persona (eje X).
Fig 15. Representacion evolucion de España hasta 1986
Este es el estado inicial de la simulación:
Vemos que el máximo se encuentra alrededor de 1986, que fue
cuando España entro en la Unión Europea. Esto implica
probablemente una mejora de nuestra economía y por tanto
nosotros propondríamos que España se desplazara hacia abajo y
más hacia la derecha (menos desempleo y más ingresos debido a
la mejora económica del país)
Fig 14. Representacion de los paises año 1981(contexto
economico)
A medida que vamos avanzando, en general todos los países se
van desplazando hacia abajo y a la derecha de la grafica, lo que
indica que cada vez hay menos desempleo y la gente gana más
dinero.
Fig 16. Representacion evolucion de España hasta 1990
Vemos como de nuevo se cumplen nuestras predicciones hasta
1990.
A partir de ese momento, vemos como en España se produce una
gran mejora económica traducida (final de la crisis) en un
descenso del desempleo y mayores ingresos por persona
(desplazamiento inferior y lateral hacia la derecha).
4 CONCLUSIÓN
Por tanto, podemos concluir que los países en general son cada
vez más ricos y que viven más (desplazamiento lateral hacia la
derecha y desplazamiento hacia arriba). También se puede
concluir que hay países que lo están haciendo bastante más
rápido que otros (vemos como países como China se han
desplazado mucho mas rápido comparando en 1800 y en 2012).
También, con respecto a Clustering en general, vemos como
podemos hacer reducción de dimensiones para poder clasificar
algo que no podía hacerse al inicio y nos permite a su vez, realizar
cálculos mucho mas simplemente pero que se pueden aproximar a
los reales.
ANEXO: CODIGOS MATLAB
Fig 17. Representacion evolucion de España hasta 1994
Vemos como a partir de 1990 y hasta 1994, España sube
prácticamente vertical, lo que indica mucho más paro del que
había y el mismo ingreso por personas. Por tanto podríamos
suponer que hubo alguna crisis económica en España durante esos
años. Comprobamos que así es, que durante esos años, en España,
hubo una gran crisis económica provocada por la burbuja
inmobiliaria de Japón y la crisis del petróleo provocada por la
Guerra del Golfo. También, el 13 de Mayo de 1993 se produce el
famoso
“Jueves
Negro”
[referencia:
http://es.wikipedia.org/wiki/Crisis_econ%C3%B3mica_de_1993_
en_Espa%C3%B1a ].
ANEXO I:
load datos_pais
length datos_pais
%normalizamos los datos por fila
%@media contiene la media de cada fila(fila1, caracteristica 1 de
los 200 paises)
%@varianza contiene la varianza de cada fila
%@normalizado normaliza los datos de cada fila para ser justos
normalizado = zeros(size(datos_pais,1),size(datos_pais,2));
for i = 1:size(datos_pais,1)
media = mean(datos_pais(i,:));
var = mean((datos_pais(i,:) - mean(datos_pais(i,:))) *
(datos_pais(i,:) - mean(datos_pais(i,:)))');
normalizado(i,:) = (datos_pais(i,:)-media)./sqrt(var);
end
%Matriz de covarianzas
MatrizCovarianzas = zeros(size(datos_pais,1),size(datos_pais,1));
for i = 1:size(datos_pais,1)
for j = 1:size(datos_pais,1)
result = mean((datos_pais(i,:) - mean(datos_pais(i,:))) *
(datos_pais(j,:) - mean(datos_pais(j,:)))');
MatrizCovarianzas(i,j) = result;
end
end
image(MatrizCovarianzas)
figure
Fig 18. Representacion evolucion de España hasta 2005
%Ahora calculamos la matriz de covarianzas con los datos
normalizados.
for i = 1:size(datos_pais,1)
for j = 1:size(datos_pais,1)
covarianza = mean((normalizado(i,:) mean(normalizado(i,:))) * (normalizado(j,:) mean(normalizado(j,:)))');
distanciaMax
=
coordenadasBorde(1))^2
coordenadasBorde(2))^2 );
sqrt(
(coordenadasCentro(1)+
(coordenadasCentro(2)
-
MatrizCovarianzas(i,j) = covarianza;
distanciaPais
=
sqrt(
coordenadasPaisAEvaluar(1))^2 +
coordenadasPaisAEvaluar(2))^2 );
end
end
%calculo de la matriz de correlaciones
MatrizCorrelaciones = zeros(size(datos_pais,1),
size(datos_pais,1));
for k = 1:size(datos_pais,1)
for l = 1:size(datos_pais,1)
var1 = mean((normalizado(k,:) - mean(normalizado(k,:))) *
(normalizado(k,:) - mean(normalizado(k,:)))');
var2 = mean((normalizado(l,:) - mean(normalizado(l,:))) *
(normalizado(l,:) - mean(normalizado(l,:)))');
MatrizCorrelaciones(k,l) =
MatrizCovarianzas(k,l)/sqrt(var1*var2);
end
end
imagesc(MatrizCorrelaciones)
ANEXO 2:
function
[poblacion]
=
poblacion
(
coordenadasPaisAEvaluar, poblacionPaisAEvaluar)
cluster,
%el punto mas alejado del cluster de los desarrollados (1) =
armenia con X = 3.2 e Y = 98
%el punto mas alejado del cluster de los medio desarrollados (0)
= egipto X = 3.8 e Y = 48
%el punto mas alejado del cluster de los subdesarrollados (2) =
rwanda con X = 8.2 e Y = 50.0
%los centros de los clusters estan en:
% cluster 0 x = 3.5621 e Y = 76,2414
% cluster 1 x = 1.9196 e Y = 96.4348
% cluster 2 x = 6.3889 e Y = 45.22
%ejemplo: Las coordenadas de España estan en X = 1.4 e Y = 95
if cluster == 0
coordenadasCentro = [3.5621 76.2414];
coordenadasBorde = [3.8 48];
end
if cluster == 1
coordenadasCentro = [1.9196 96.4348];
coordenadasBorde = [3.2 98];
end
if cluster == 2
coordenadasCentro = [6.3889 45.22];
coordenadasBorde = [8.2 50];
end
(coordenadasCentro(1)(coordenadasCentro(2) -
poblacion = poblacionPaisAEvaluar * distanciaPais/distanciaMax;
end
Descargar