Clustering

En esta sección se aplica Clustering al dataset utilizado. Se espera que debido a la naturaleza de el problema a resolver, abordarlo utilizando esta metodología no sea fructífero, pues no permitirá visualizar las clases que queremos observar (inasistencias). Esto pues el Clustering agrupa datos cercanos, que no es lo que se busca en este caso.

Código y Gráficos

datos <- read.csv("E:/Cosas U/minería de datos/datasetfinalproyecto_sinmeses.csv") #Ajustar a la ubicación del dataset de cada uno
datos$X <- NULL
datos$numero_No_Show <- NULL
datos$numero_genero_mujer <- NULL
datos$numero_genero_hombre <- NULL
datos$SMS_received <- NULL
datos$dia_semana <- NULL
datos$Scholarship <- NULL
datos$Hipertension <- NULL
datos$Diabetes <- NULL
datos$Alcoholism <- NULL
datos$Handcap <- NULL

set.seed(2)
km.out <- kmeans(datos, 2, nstart = 20)
set.seed(2)

wss <- 0
clust = 15 # graficaremos hasta 15 clusters
for (i in 1:clust){
  wss[i] <-
    sum(kmeans(datos, centers=i)$withinss)
}

plot(1:clust, wss, type="b", xlab="Numero de clusters", ylab="wss")

set.seed(2)
km.out <- kmeans(datos, 2, nstart = 20)
plot(datos, col=(km.out$cluster), main="Resultados usando k = 2 (plot con colores)", xlab="Edad", ylab="Distancia entre fechas", pch=20, cex=2)

datosTrue <- read.csv("E:/Cosas U/minería de datos/datasetfinalproyecto_sinmeses.csv") #Ajustar a la ubicación del dataset de cada uno
datosTrue$X <- NULL
datosTrue$numero_genero_mujer <- NULL
datosTrue$numero_genero_hombre <- NULL
datosTrue$SMS_received <- NULL
datosTrue$dia_semana <- NULL
datosTrue$Scholarship <- NULL
datosTrue$Hipertension <- NULL
datosTrue$Diabetes <- NULL
datosTrue$Alcoholism <- NULL
datosTrue$Handcap <- NULL
datosTrue$numero_No_Show2 <- datosTrue$numero_No_Show + 1

plot(datos, col=(datosTrue$numero_No_Show2), main="Clase real de cada dato", xlab="Edad", ylab="Distancia entre fechas", pch=20, cex=2)

En ambos gráficos, los puntos color negro indican asistencia, y los puntos rojos indican inasistencia.

Análisis y Conclusión

A partir del primer gráfico, se observa que el “codo”" no está muy claro. Como sabemos del dataset, se busca que la cantidad de clusters que cumpla con el criterio del “codo”, sea dos. No se puede concluir nada sobre el número de clusters óptimos a partir de este gráfico.

A partir de los últimos dos gráficos, se puede observar que el clustering realizado no es para nada fidedigno. El clustering obtenido, a partir de cierta edad, divide los puntos en uno u otro cluster, siendo que tanto las asistencias como las inasistencias están distribuidas en todo el gráfico.
Se puede concluir que el Clustering no es una manera eficaz de abordar el problema de las inasistencias.