Finish part 2 of Summary

This commit is contained in:
coolneng 2020-12-13 23:48:10 +01:00
parent 59895f4b8a
commit 2a715c7c72
Signed by: coolneng
GPG Key ID: 9893DA236405AF57
5 changed files with 186 additions and 0 deletions

View File

@ -103,7 +103,193 @@ Observamos que los atributos que más peso tienen son:
Observamos que los atributos son menos discriminativos al realizar la imputación, lo cual nos confirma que esta técnica de preprocesamiento es nociva para nuestro caso de estudio.
\clearpage
** Apartado 2
*** Introducción
En este apartado, usaremos distintos algoritmos de /clustering/ para resolver un problema de agrupación.
El problema en cuestión trata de agrupar los accidentes que ocurrieron en el año 2013 según la DGT, evaluando variables similares y relaciones de causalidad para determinar la gravedad y el tipo del accidente.
Estudiaremos el rendimiento de los siguientes algoritmos:
- K-means
- Birch
- Spectral clustering
- Mean shift clustering
- DBSCAN
En el caso del /K-means/ y de /Birch/, estudiaremos el rendimiento según un diferente número de clusters.
*** Casos de estudio
**** Caso de estudio 1: Accidentes ocurridos por la noche
La visibilidad es un factor importante en la conducción, por lo tanto vamos a agrupar los distintos accidentes ocurridos de noche.
***** 5 clusters
Ejecutamos el siguiente comando:
#+begin_src bash
python src/P2/processing.py case1 5
#+end_src
#+CAPTION: Caso 1 con 5 clusters
[[./assets/cases/C1-5.png]]
Como podemos observar, según las diferentes métricas ciertos algoritmos tienen mejor o peor rendimiento:
- /Silhouette Coefficient/: Mean Shift clustering
- /Calinski-Harabasz/: K-means
- /Time/: K-means
***** 10 clusters
Ejecutamos el siguiente comando:
#+begin_src bash
python src/P2/processing.py case1 10
#+end_src
#+CAPTION: Caso 1 con 10 clusters
[[./assets/cases/C1-10.png]]
Debido a la variación del número de clusters, vemos como el rendimiento de /Birch/ se degrada de forma considerable, mientras que el /k-means/ obtiene una mejor puntuación
**** Caso de estudio 2: Accidentes en islas con lluvia
Estudiamos los accidentes que han ocurrido en el territorio español no peninsular, en condiciones lluviosas.
***** 5 clusters
Ejecutamos el siguiente comando:
#+begin_src bash
python src/P2/processing.py case2 5
#+end_src
#+CAPTION: Caso 2 con 5 clusters
[[./assets/cases/C2-5.png]]
Como podemos observar, según las diferentes métricas ciertos algoritmos tienen mejor o peor rendimiento:
- /Silhouette Coefficient/: Mean Shift clustering
- /Calinski-Harabasz/: Spectral clustering
- /Time/: DBSCAN
***** 10 clusters
Ejecutamos el siguiente comando:
#+begin_src bash
python src/P2/processing.py case2 10
#+end_src
#+CAPTION: Caso 2 con 10 clusters
[[./assets/cases/C2-10.png]]
Debido a la variación del número de clusters, vemos como el rendimiento del /k-means/ supera a todos los demás algoritmos, excepto en la métrica del tiempo de ejecución.
**** Caso de estudio 3: Accidentes en autopista después de las 19
Estudiamos los accidentes que han ocurrido en autopistas, después de las 19:00.
***** 5 clusters
Ejecutamos el siguiente comando:
#+begin_src bash
python src/P2/processing.py case3 5
#+end_src
#+CAPTION: Caso 3 con 5 clusters
[[./assets/cases/C3-5.png]]
Observamos como el /K-means/ es el que obtiene mejores resultados, con un tiempo de ejecución marginalmente superior al del /DBSCAN/.
***** 10 clusters
Ejecutamos el siguiente comando:
#+begin_src bash
python src/P2/processing.py case3 10
#+end_src
#+CAPTION: Caso 3 con 10 clusters
[[./assets/cases/C3-10.png]]
Debido a la variación del número de clusters, vemos como el rendimiento del /K-means/ y de /Birch/ mejora considerablemente.
**** Caso de estudio 4: Accidentes en Andalucía sin iluminación
Estudiamos los accidentes que han ocurrido en la comunidad autónoma de Andalucía, en particular, cuando no había iluminación.
***** 5 clusters
Ejecutamos el siguiente comando:
#+begin_src bash
python src/P2/processing.py case4 5
#+end_src
#+CAPTION: Caso 4 con 5 clusters
[[./assets/cases/C4-5.png]]
Como podemos observar, según las diferentes métricas ciertos algoritmos tienen mejor o peor rendimiento:
- /Silhouette Coefficient/: DBSCAN
- /Calinski-Harabasz/: K-means
- /Time/: DBSCAN
Observamos como el algoritmo con mejor rendimiento es el /DBSCAN/, excepto en la métrica del /Calinski-Harabasz/ donde predomina el /K-means/.
***** 10 clusters
Ejecutamos el siguiente comando:
#+begin_src bash
python src/P2/processing.py case4 10
#+end_src
#+CAPTION: Caso 4 con 10 clusters
[[./assets/cases/C4-10.png]]
Debido a la variación del número de clusters, vemos como el rendimiento del /K-means/ y de /Birch/ mejora considerablemente.
En el caso particular del /K-means/, éste supera al /DBSCAN/ en todas las métricas, excepto la del tiempo de ejecución.
**** Caso de estudio 5: Accidentes ocurridos un domingo en Madrid
Estudiamos los accidentes que han ocurrido en domingo, en la comunidad de Madrid.
***** 5 clusters
Ejecutamos el siguiente comando:
#+begin_src bash
python src/P2/processing.py case5 5
#+end_src
#+CAPTION: Caso 5 con 5 clusters
[[./assets/cases/C5-5.png]]
Como podemos observar, según las diferentes métricas ciertos algoritmos tienen mejor o peor rendimiento:
- /Silhouette Coefficient/: Mean Shift
- /Calinski-Harabasz/: K-means
- /Time/: DBSCAN
Observamos como el algoritmo /Mean Shift/ consigue un /Silhouette Coefficient/ cerca de 1.
***** 10 clusters
Ejecutamos el siguiente comando:
#+begin_src bash
python src/P2/processing.py case5 10
#+end_src
#+CAPTION: Caso 5 con 10 clusters
[[./assets/cases/C5-10.png]]
Debido a la variación del número de clusters, vemos como el rendimiento del /K-means/ mejora considerablemente y /Birch/ mejora de forma marginal.
En el caso particular del /K-means/, el valor de su /Silhouette Coefficient/ se acerca mucho al valor del /Mean Shift/.

Binary file not shown.

Binary file not shown.

Before

Width:  |  Height:  |  Size: 65 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 25 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 64 KiB