Finish part 2 of Summary
This commit is contained in:
parent
59895f4b8a
commit
2a715c7c72
186
docs/Summary.org
186
docs/Summary.org
|
@ -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/.
|
||||
|
|
BIN
docs/Summary.pdf
BIN
docs/Summary.pdf
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 |
Loading…
Reference in New Issue