El objetivo global es seleccionar uno o varios juegos de datos, realizar las tareas de preparación y análisis exploratorio con el objetivo de disponer de datos listos para aplicar algoritmos de clustering, asociación y clasificación.
Las competencias que se trabajan en esta prueba son:
En esta práctica abordamos un caso real de minería de datos donde hay que trabajar todo el ciclo de vida del proyecto. Desde el objetivo del proyecto hasta la implementación del conocimiento encontrado pasando por la preparación, limpieza de los datos, conocimiento de los datos, generación del modelo, interpretación y evaluación.
Todo estudio analítico debe nacer de una necesidad por parte del Negocio o de una voluntad de dotarle de un conocimiento contenido en los datos y que solo podremos obtener a través de una colección de buenas prácticas basadas en la Minería de Datos.
El mundo de la analítica de datos se sustenta en 3 ejes:
Uno de ellos es el profundo conocimiento que deberíamos tener del Negocio al que tratamos de dar respuestas mediante los estudios analíticos.
El otro gran eje es sin duda las capacidades analíticas que seamos capaces de desplegar y en este sentido, las dos prácticas de esta asignatura pretenden que el estudiante realice un recorrido sólido por este segundo eje.
El tercer eje son los Datos. Las necesidades del Negocio deben concretarse con preguntas analíticas que a su vez sean viables responder a partir de los datos de que disponemos. La tarea de analizar los datos es sin duda importante, pero la tarea de identificarlos y obtenerlos va a ser para un analista un reto permanente.
Como primera parte del estudio analítico que nos disponemos a realizar, se pide que complete los siguientes pasos:
Seleccionar un juego de datos y justificar su elección. El juego de datos deberá tener capacidades para que se le puedan aplicar algoritmos supervisados, algoritmos no supervisados y reglas de asociación.
Realizar un análisis exploratorio del juego de datos seleccionado.
Realizar tareas de limpieza y acondicionado para poder ser usado en procesos de modelado.
Realizar métodos de discretización
Aplicar un estudio PCA sobre el juego de datos. A pesar de no estar explicado en el material didáctico, se valorará si en lugar de PCA investigáis por vuestra cuenta y aplicáis SVD (Single Value Decomposition).
Los datos escogidos provienen de una base de datos de la web: http://www.ics.uci.edu/~mlearn/MLSummary.html, exactamente de un repositorio sobre la clasificación de vinos dependiendo de sus cualidades. Fue creado por Forina, M a partir de los resultados de un análisis químico de vinos cultivados en la misma región en Italia pero derivados de tres clases diferentes.
## 'data.frame': 178 obs. of 14 variables:
## $ Clase : int 1 1 1 1 1 1 1 1 1 1 ...
## $ Alcohol : num 14.2 13.2 13.2 14.4 13.2 ...
## $ Malic acid : num 1.71 1.78 2.36 1.95 2.59 1.76 1.87 2.15 1.64 1.35 ...
## $ Ash : num 2.43 2.14 2.67 2.5 2.87 2.45 2.45 2.61 2.17 2.27 ...
## $ Alcalinity of ash : num 15.6 11.2 18.6 16.8 21 15.2 14.6 17.6 14 16 ...
## $ Magnesium : int 127 100 101 113 118 112 96 121 97 98 ...
## $ Total phenols : num 2.8 2.65 2.8 3.85 2.8 3.27 2.5 2.6 2.8 2.98 ...
## $ Flavanoids : num 3.06 2.76 3.24 3.49 2.69 3.39 2.52 2.51 2.98 3.15 ...
## $ Nonflavanoid phenols: num 0.28 0.26 0.3 0.24 0.39 0.34 0.3 0.31 0.29 0.22 ...
## $ Proanthocyanins : num 2.29 1.28 2.81 2.18 1.82 1.97 1.98 1.25 1.98 1.85 ...
## $ Color intensity : num 5.64 4.38 5.68 7.8 4.32 6.75 5.25 5.05 5.2 7.22 ...
## $ Hue : num 1.04 1.05 1.03 0.86 1.04 1.05 1.02 1.06 1.08 1.01 ...
## $ OD280 : num 3.92 3.4 3.17 3.45 2.93 2.85 3.58 3.58 2.85 3.55 ...
## $ Proline : int 1065 1050 1185 1480 735 1450 1290 1295 1045 1045 ...
|
| Malic acid |
| Alcalinity of ash | Magnesium | Total phenols | Flavanoids | Nonflavanoid phenols | Proanthocyanins | Color intensity |
|
|
| |
---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|
Min. :1.000 | Min. :11.03 | Min. :0.740 | Min. :1.360 | Min. :10.60 | Min. : 70.00 | Min. :0.980 | Min. :0.340 | Min. :0.1300 | Min. :0.410 | Min. : 1.280 | Min. :0.4800 | Min. :1.270 | Min. : 278.0 | |
1st Qu.:1.000 | 1st Qu.:12.36 | 1st Qu.:1.603 | 1st Qu.:2.210 | 1st Qu.:17.20 | 1st Qu.: 88.00 | 1st Qu.:1.742 | 1st Qu.:1.205 | 1st Qu.:0.2700 | 1st Qu.:1.250 | 1st Qu.: 3.220 | 1st Qu.:0.7825 | 1st Qu.:1.938 | 1st Qu.: 500.5 | |
Median :2.000 | Median :13.05 | Median :1.865 | Median :2.360 | Median :19.50 | Median : 98.00 | Median :2.355 | Median :2.135 | Median :0.3400 | Median :1.555 | Median : 4.690 | Median :0.9650 | Median :2.780 | Median : 673.5 | |
Mean :1.938 | Mean :13.00 | Mean :2.336 | Mean :2.367 | Mean :19.49 | Mean : 99.74 | Mean :2.295 | Mean :2.029 | Mean :0.3619 | Mean :1.591 | Mean : 5.058 | Mean :0.9574 | Mean :2.612 | Mean : 746.9 | |
3rd Qu.:3.000 | 3rd Qu.:13.68 | 3rd Qu.:3.083 | 3rd Qu.:2.558 | 3rd Qu.:21.50 | 3rd Qu.:107.00 | 3rd Qu.:2.800 | 3rd Qu.:2.875 | 3rd Qu.:0.4375 | 3rd Qu.:1.950 | 3rd Qu.: 6.200 | 3rd Qu.:1.1200 | 3rd Qu.:3.170 | 3rd Qu.: 985.0 | |
Max. :3.000 | Max. :14.83 | Max. :5.800 | Max. :3.230 | Max. :30.00 | Max. :162.00 | Max. :3.880 | Max. :5.080 | Max. :0.6600 | Max. :3.580 | Max. :13.000 | Max. :1.7100 | Max. :4.000 | Max. :1680.0 |
Como se puede comprobar, esta base de datos está pensada para problemas de clasificación supervisada que pretende clasificar cada tipo de vino según su clase (del 1 al 3). Como en este ejemplo vamos a usar un método no supervisado, transformaremos el problema supervisado original en uno no supervisado. Para consegirlo no usaremos la columna Clase, que es la variable que se quiere predecir. Por lo tanto, intentaremos encontrar agrupaciones usando los 14 atributos que caracterizan a cada vino.
Los datos que vamos a utilizar para la clasificación serán: Alcohol, Malic acid, Ash, Alcalinity of ash, Magnesium, Total phenol, Flavanoids, Nonflavanoid phenols, Proanthocyanins, Color intensity, Hue, OD280, Proline.
Primero tenemos que explorar y visualizar los datos. El objetivo de esta tarea es analizar las distribuciones, correlaciones y anomalías de los datos mencionadso anteriormente.
A raiz de las gráficas mostradas, no he encontrado ninguna información anómala en los datos analizados.
Respecto a la correlación, muestro las siguientes gráficas.
La clase del vino tiene un correlación negativa con Total phenois, Flavanoids y OD280 que nos puede ayudar a identificar un variedad.
Respecto a la limpieza de datos, no ha sido realizada ninguna tarea de limpieza, exceptuando una pequeña tranformación de la columna “Clase” para mostrar los gráficos anteriores. Esa transformación ha consistido una conversión de int a Factor.
La función kmeans() agrupa las observaciones en K clusters distintos, donde el número K lo determina el analista antes de ejecutar del algoritmo. El método K-means clustering (MacQueen, 1967) encuentra los K mejores clusters, entendiendo como mejor cluster aquel cuya varianza interna (intra-cluster variation) sea lo más pequeña posible. Se trata por lo tanto de un problema de optimización, en el que se reparten las observaciones en K clusters de forma que la suma de las varianzas internas de todos ellos sea lo menor posible. Para poder solucionar este problema es necesario definir un modo de cuantificar la varianza interna.
Cargamos los datos y nos quedamos unicamente con las 11 columnas que definen a cada vino
x <- wine_data[,2:14]
Para la selección del número de clústers también existen criterios objetivos los cuales están basados en la optimización de un criterio de ajuste.
Los criterios de ajustes en el kmeans() se basan en los conceptos de sumas de cuadrados entre grupos (betweens) y dentro de grupos (withins). Hay que tener en cuenta que la suma de cuadrados entre grupos (betweenss) más las sumas de cuadrados dentro de grupos (tot.withinss) nos proporciona la suma de cuadrados totales (tots).
Una segmentación ‘óptima’ es aquella donde los individuos pertenecientes a un mismo grupo son lo más homogéneos posible y los individuos pertenecientes a distintos grupos son lo más heterogéneos posible. Dicha segmentación coincidirán con aquella que, teniendo un número de grupos razonable, posee una suma de cuadrados entre suficientemente grande y, por tanto, una suma de cuadrados dentro lo suficientemente pequeña. Es decir, la varianza dentro de grupos debe ser reducida (individuos dentro de un mismo grupo tiene que ser similares) y la varianza entre grupos debe ser grande (individuos de distintos grupos tienen que ser distintos). También, tenemos que tener en cuenta que a medida que el número de grupos aumenta la suma de cuadrados entre aumenta y, por tanto, la suma de cuadrados dentro disminuye, por tanto, el analista a de decidir cuando el aumento de la suma de cuadrados entre o, alternativamente, la disminución de la suma de cuadrados dentro no son lo suficientemente pronunciados.
Como inicialmente no conocemos el número óptimo de clústers, probamos con varios valores
Mostramos en un gráfica los valores de las siluetas media de cada prueba para comprobar que número de clústers es el mejor
El mejor valor que se obtiene es k=2.
Otro forma de evaluar cual es el mejor número de clústers es considerar el mejor modelo, aquel que ofrece la menor suma de los cuadrados de las distancias de los puntos de cada grupo con respecto a su centro (withinss), con la mayor separacion entre centros de grupos (betweenss). Como se puede comprobar es una idea conceptualmente similar a la silueta. Una manera común de hacer la selección del número de clústers consiste en aplicar el método elbow (codo), que no es más que la selección del número de clústers en base a la inspección de la gráfica que se obtiene al iterar con el mismo conjunto de datos para distintos valores del número de clústers. Se seleccionará el valor que se encuentra en el “codo” de la curva
En este caso el número óptimo de clústers son 4 que es cuando la curva comienza a estabilizarse.
También se puede usar la función kmeansruns del paquete fpc que ejecutá el algoritmo kmeans con un conjunto de valores y selecciona el valor del número de clústers que mejor funcione de acuerdo a dos criterios la silueta media (“asw”) y Calinski-Harabasz (“ch”).
Podemos comprobar el valor con el que se ha obtenido el mejor resultado y también mostrar el resultado obtenido para todos los valores de k usando ambos criterios
## [1] 10
## [1] 2
Los resultados son muy parecidos a los que hemos obtenido anteriormente. Con el criterio de la silueta media se obtienen dos clústers y con el Calinski-Harabasz se obtienen 10.
Como se ha comprobado, conocer el número óptimo de clústers no es un problema fácil. Tampoco lo es la evaluación de los modelos de agregación.
Como en el caso que estudiamos sabemos que los datos pueden ser agrupados en 3 clases, vamos a ver como se ha comportado el kmeans en el caso de pedirle 5 clústers. Para eso comparamos visualmente los campos dos a dos, con el valor real que sabemos está almacenado en el campo “quality” del dataset original.
## [1] "Clase" "Alcohol" "Malic acid"
## [4] "Ash" "Alcalinity of ash" "Magnesium"
## [7] "Total phenols" "Flavanoids" "Nonflavanoid phenols"
## [10] "Proanthocyanins" "Color intensity" "Hue"
## [13] "OD280" "Proline"
Esta última gráfica, que volveremos a mostrar a continuación, muestra como se puede ordenar los datos más corelacionados con la clase de vino en diferentes grupos diferenciados. Los otros grupos sin embargo se entremezclan algo más.
Una vez finalizado, sacamos la tabla de resultados
##
## 1 2 3
## 1 9 16 24
## 2 0 29 2
## 3 23 0 0
## 4 0 22 21
## 5 27 4 1
Ahora vamos a evaluar cada una de las clasificación acorde a su valor en Purity (la pureza es una medida del grado en que los grupos contienen una sola clase) y su Rand index calcula cuán similares son los grupos (devueltos por el algoritmo de agrupamiento) a las clasificaciones de referencia
## [1] "NUMERO DE CLUSTERS"
## [1] 2 3 4 5 6 7 8 9 10 11 12 13 14
## [1] "PUREZA"
## [1] 0.9213483 0.7022472 0.5955056 0.4494382 0.4157303 0.3651685 0.3314607
## [8] 0.3314607 0.3033708 0.2584270 0.2584270 0.2808989 0.2471910
## [1] "Rand index"
## [1] 0.3694075 0.3711137 0.3028973 0.2431718 0.2414768 0.2161288 0.1903763
## [8] 0.2104945 0.1690028 0.1551428 0.1462680 0.1755417 0.1375397
Como se puede observar, si vamos nuestra evaluación con el grado de pureza de los grupos, la división en dos clústers es la que ha obtenido un mejor resultado. En cambio si utilizamos Rand index obtenemos un mejor resultado con 3 Clusters.
Con toda la información recopilada, puedo afirmar que la clasificación planteada no ha obtenido buenos resultados. La información recopilada no permite crear un modelo para predecir la calidad de un vino. Según la pureza de los resultados, intentar clasificar los vinos en buenos y malos dependiendo si su calidad es mayor o menos a 5 sería una opción más factible pero como he planteado el ejercicio no se puede realizar una predicción aceptable.
El método de partición en intervalos de igual amplitud es el método más sencillo que consiste en el algoritmo siguiente.
Dado un atributo X numérico con valor mínimo y máximo , se siguen los pasos siguientes:
Fijar un número k de intervalos que hay que alcanzar.
Dividir el rango de valores ( , ) en k intervalos {( ), …, ( , ) tales que y
Se trata de hacer que la distancia entre el máximo y el mínimo de cada intervalo sea la misma: ( - )/k.
A partir de los datos obtenidos de las frecuencias agrupadas, para dividir las diferentes clases debemos saber
## [1] "Máximo"
## [1] 3
## [1] "Mínimo"
## [1] 1
Con esta distribución podemos realizar un intervalo de 1 obteniendo la siguiente información:
[1-2) | [2-3) | [3-4) |
---|---|---|
59 | 71 | 48 |
Comentar que el primer intervalo corresponde a valores de 1 a 2 el dos no inclusivo. Respecto a los datos, únicamente comentar que es la mejor agrupación posible. El resto de agrupaciones no son viables ya que no tendrián una distribución tan equitativa.
Si realizo la agrupación de por ejemeplo el Alcohol en 8 unidades me encuentro la siguiente gráfica.
## [1] "Máximo"
## [1] 162
## [1] "Mínimo"
## [1] 70
## [1] 11.5
[69,81) | [81,93) | [93,105) | [105,117) | [117,129) | [129,141) | [141,153) | [153,165) | |
---|---|---|---|---|---|---|---|---|
9 | 54 | 61 | 33 | 15 | 4 | 1 | 1 |
A pesar de que R no posee una función para realizar una tabla de frecuencias agrupadas, nos brinda todas las herramientas para el diseño de una función que realice o supla esta eventual necesidad. La función creada en este trabajo la nombramos como Tabla.F (), la cual posee dos argumentos, el primero es un vector de datos cualquiera y el segundo es el punto medio de unidad de medida; la función genera los gráficos de histograma, el polígono de frecuencias absolutas y la ojiva para la distribución. La función fue probada con 4 vectores aleatorios de distribución normal, arrojando las salidas deseadas.
## Var1 Freq Fa fr Fr MC
## 1 [0,1) 0 0 0.0000000 0.0000000 0.5
## 2 [1,2) 59 59 0.3314607 0.3314607 1.5
## 3 [2,3) 71 130 0.3988764 0.7303371 2.5
## 4 [3,4) 48 178 0.2696629 1.0000000 3.5
## 5 [4,5) 0 178 0.0000000 1.0000000 4.5
## 6 [5,6) 0 178 0.0000000 1.0000000 5.5
## 7 [6,7) 0 178 0.0000000 1.0000000 6.5
## 8 [7,8) 0 178 0.0000000 1.0000000 7.5
## Var1 Freq Fa fr Fr MC
## 1 [69,81) 9 9 0.050561798 0.0505618 75
## 2 [81,93) 54 63 0.303370787 0.3539326 87
## 3 [93,105) 61 124 0.342696629 0.6966292 99
## 4 [105,117) 33 157 0.185393258 0.8820225 111
## 5 [117,129) 15 172 0.084269663 0.9662921 123
## 6 [129,141) 4 176 0.022471910 0.9887640 135
## 7 [141,153) 1 177 0.005617978 0.9943820 147
## 8 [153,165) 1 178 0.005617978 1.0000000 159
Análisis Discriminante Lineal (ADL, o LDA por sus siglas en inglés) es una generalización del discriminante lineal de Fisher, un método utilizado en estadística, reconocimiento de patrones y aprendizaje de máquinas para encontrar una combinación lineal de rasgos que caracterizan o separan dos o más clases de objetos o eventos. La combinación resultante puede ser utilizada como un clasificador lineal, o, más comúnmente, para la reducción de dimensiones antes de la posterior clasificación.
En el ADL para dos clases se considera un conjunto de observaciones {}{} (también llamadas características, atributos, variables o medidas) para cada muestra de un objeto o evento con clase conocida y. Este conjunto de muestras es conocido como conjunto de entrenamiento. El problema de clasificación consiste en encontrar a un buen estimador para la clase y de cualquier ejemplo con la misma distribución (no necesariamente del conjunto de entrenamiento) dada solamente una observación {}{}.6:338
ADL enfrenta el problema asumiendo que las funciones de densidad de las probabilidades condicionales { p({}|y=0)}{p({} |y=0)} y {p({}|y=1)}{p({}|y=1)} siguen una distribución normal con parámetros de media y covarianza {({}{0 },{0})}{({}{0},{0})}{({}{1},{ 1})}{({}{1},{1})}, respectivamente
## Call:
## lda(wine_data$Clase ~ ., data = wine_data)
##
## Prior probabilities of groups:
## 1 2 3
## 0.3314607 0.3988764 0.2696629
##
## Group means:
## Alcohol `Malic acid` Ash `Alcalinity of ash` Magnesium
## 1 13.74475 2.010678 2.455593 17.03729 106.3390
## 2 12.27873 1.932676 2.244789 20.23803 94.5493
## 3 13.15375 3.333750 2.437083 21.41667 99.3125
## `Total phenols` Flavanoids `Nonflavanoid phenols` Proanthocyanins
## 1 2.840169 2.9823729 0.290000 1.899322
## 2 2.258873 2.0808451 0.363662 1.630282
## 3 1.678750 0.7814583 0.447500 1.153542
## `Color intensity` Hue OD280 Proline
## 1 5.528305 1.0620339 3.157797 1115.7119
## 2 3.086620 1.0562817 2.785352 519.5070
## 3 7.396250 0.6827083 1.683542 629.8958
##
## Coefficients of linear discriminants:
## LD1 LD2
## Alcohol -0.403399781 0.8717930699
## `Malic acid` 0.165254596 0.3053797325
## Ash -0.369075256 2.3458497486
## `Alcalinity of ash` 0.154797889 -0.1463807654
## Magnesium -0.002163496 -0.0004627565
## `Total phenols` 0.618052068 -0.0322128171
## Flavanoids -1.661191235 -0.4919980543
## `Nonflavanoid phenols` -1.495818440 -1.6309537953
## Proanthocyanins 0.134092628 -0.3070875776
## `Color intensity` 0.355055710 0.2532306865
## Hue -0.818036073 -1.5156344987
## OD280 -1.157559376 0.0511839665
## Proline -0.002691206 0.0028529846
##
## Proportion of trace:
## LD1 LD2
## 0.6875 0.3125
## LD1 LD2
## 1 -4.700244 1.9791383
## 2 -4.301958 1.1704129
## 3 -3.420720 1.4291014
## 4 -4.205754 4.0028715
## 5 -1.509982 0.4512239
## 6 -4.518689 3.2131376
En este caso, y según muestra las gráficas, el análisis discriminante ha podido encontrar un patrón dentro de los datos y clasificarlos eficazmente.
La normalización significa ajustar los valores medidos en diferentes escalas respecto a una escala común, a menudo previo a un proceso de realizar promedios. En R se pueden escalar las variables de una base de datos por dedio de el siguiente procedimiento.
Para poder considerar que, cuanto más próximo a cero es el coeficiente de regresión de un predictor, menor su influencia sobre la variable respuesta en comparación al resto, es necesario estandarizar todos los predictores antes de ajustar. La función scale(center = TRUE, scale = TRUE) permite hacerlo
|
| Malic acid |
| Alcalinity of ash | Magnesium | Total phenols | Flavanoids | Nonflavanoid phenols | Proanthocyanins | Color intensity |
|
|
| |
---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|
Min. :-1.21053 | Min. :-2.42739 | Min. :-1.4290 | Min. :-3.66881 | Min. :-2.663505 | Min. :-2.0824 | Min. :-2.10132 | Min. :-1.6912 | Min. :-1.8630 | Min. :-2.06321 | Min. :-1.6297 | Min. :-2.08884 | Min. :-1.8897 | Min. :-1.4890 | |
1st Qu.:-1.21053 | 1st Qu.:-0.78603 | 1st Qu.:-0.6569 | 1st Qu.:-0.57051 | 1st Qu.:-0.687199 | 1st Qu.:-0.8221 | 1st Qu.:-0.88298 | 1st Qu.:-0.8252 | 1st Qu.:-0.7381 | 1st Qu.:-0.59560 | 1st Qu.:-0.7929 | 1st Qu.:-0.76540 | 1st Qu.:-0.9496 | 1st Qu.:-0.7824 | |
Median : 0.07974 | Median : 0.06083 | Median :-0.4219 | Median :-0.02375 | Median : 0.001514 | Median :-0.1219 | Median : 0.09569 | Median : 0.1059 | Median :-0.1756 | Median :-0.06272 | Median :-0.1588 | Median : 0.03303 | Median : 0.2371 | Median :-0.2331 | |
Mean : 0.00000 | Mean : 0.00000 | Mean : 0.0000 | Mean : 0.00000 | Mean : 0.000000 | Mean : 0.0000 | Mean : 0.00000 | Mean : 0.0000 | Mean : 0.0000 | Mean : 0.00000 | Mean : 0.0000 | Mean : 0.00000 | Mean : 0.0000 | Mean : 0.0000 | |
3rd Qu.: 1.37000 | 3rd Qu.: 0.83378 | 3rd Qu.: 0.6679 | 3rd Qu.: 0.69615 | 3rd Qu.: 0.600395 | 3rd Qu.: 0.5082 | 3rd Qu.: 0.80672 | 3rd Qu.: 0.8467 | 3rd Qu.: 0.6078 | 3rd Qu.: 0.62741 | 3rd Qu.: 0.4926 | 3rd Qu.: 0.71116 | 3rd Qu.: 0.7864 | 3rd Qu.: 0.7561 | |
Max. : 1.37000 | Max. : 2.25341 | Max. : 3.1004 | Max. : 3.14745 | Max. : 3.145637 | Max. : 4.3591 | Max. : 2.53237 | Max. : 3.0542 | Max. : 2.3956 | Max. : 3.47527 | Max. : 3.4258 | Max. : 3.29241 | Max. : 1.9554 | Max. : 2.9631 |
## [1] "NUMERO DE CLUSTERS"
## [1] 2 3 4 5 6 7 8 9 10 11 12 13 14
## [1] "PUREZA"
## [1] 0.9044944 0.9662921 0.8146067 0.7022472 0.6910112 0.6067416 0.5224719
## [8] 0.4213483 0.4606742 0.4325843 0.3820225 0.3033708 0.3988764
## [1] "Rand index"
## [1] 0.3887242 0.8974950 0.7189110 0.6543869 0.5875022 0.5506708 0.4596389
## [8] 0.3832720 0.3825302 0.3535008 0.3261156 0.2519717 0.3258983
Como se puede observar, si vamos nuestra evaluación con el grado de pureza de los grupos, la división en 3 clústers es la que ha obtenido un mejor resultado. Si utilizamos Rand index obtenemos un mejor resultado con 3 Clusters.
Con toda la información recopilada, puedo afirmar que la clasificación planteada mejores resultados que con los valores normales. Por lo tanto, la clasificación con los valores normalizados són más eficaces.
A partir de los datos obtenidos para dividir las diferentes clases debemos saber
## [1] "Máximo"
## [1] 1.37
## [1] "Mínimo"
## [1] -1.210529
Con esta distribución podemos realizar un intervalo de 1 obteniendo la siguiente información:
[-1.41,-0.411) | [-0.411,0.589) | [0.589,1.59) |
---|---|---|
59 | 71 | 48 |
Comentar que el primer intervalo corresponde a valores de 1 a 2 el dos no inclusivo. Respecto a los datos, únicamente comentar que es la mejor agrupación posible. El resto de agrupaciones no son viables ya que no tendrián una distribución tan equitativa.
Si realizo la agrupación de por ejemeplo el Alcohol en 5 unidades me encuentro la siguiente gráfica.
## [1] "Máximo"
## [1] 2.253415
## [1] "Mínimo"
## [1] -2.427388
[-2.63,-1.63) | [-1.63,-0.627) | [-0.627,0.373) | [0.373,1.37) | [1.37,2.37) |
---|---|---|---|---|
10 | 47 | 52 | 52 | 17 |
Si que he observado que, a pesar que en el valor clase no he obtenido mejores resultados, en el resto han mejorado, pudiendo crear grupos más equitativos.
## Var1 Freq Fa fr Fr MC
## 1 [-2.21,-1.21) 0 0 0.0000000 0.0000000 -1.7105289
## 2 [-1.21,-0.211) 59 59 0.3314607 0.3314607 -0.7105289
## 3 [-0.211,0.789) 71 130 0.3988764 0.7303371 0.2894711
## 4 [0.789,1.79) 48 178 0.2696629 1.0000000 1.2894711
## 5 [1.79,2.79) 0 178 0.0000000 1.0000000 2.2894711
## 6 [2.79,3.79) 0 178 0.0000000 1.0000000 3.2894711
## 7 [3.79,4.79) 0 178 0.0000000 1.0000000 4.2894711
## 8 [4.79,5.79) 0 178 0.0000000 1.0000000 5.2894711
## Var1 Freq Fa fr Fr MC
## 1 [-2.63,-1.63) 10 10 0.05617978 0.05617978 -2.127388
## 2 [-1.63,-0.627) 47 57 0.26404494 0.32022472 -1.127388
## 3 [-0.627,0.373) 52 109 0.29213483 0.61235955 -0.127388
## 4 [0.373,1.37) 52 161 0.29213483 0.90449438 0.872612
## 5 [1.37,2.37) 17 178 0.09550562 1.00000000 1.872612
## 6 [2.37,3.37) 0 178 0.00000000 1.00000000 2.872612
## 7 [3.37,4.37) 0 178 0.00000000 1.00000000 3.872612
## 8 [4.37,5.37) 0 178 0.00000000 1.00000000 4.872612
Al igual que el anterior, los grupos generados han sido más igualados para
## Call:
## lda(normalizado$Clase ~ ., data = normalizado)
##
## Prior probabilities of groups:
## -1.21052889135896 0.0797354359577757 1.36999976327451
## 0.3314607 0.3988764 0.2696629
##
## Group means:
## Alcohol `Malic acid` Ash `Alcalinity of ash`
## -1.21052889135896 0.9166093 -0.2915199 0.3246886 -0.7359212
## 0.0797354359577757 -0.8892116 -0.3613424 -0.4437061 0.2225094
## 1.36999976327451 0.1886265 0.8928122 0.2572190 0.5754413
## Magnesium `Total phenols` Flavanoids
## -1.21052889135896 0.46192317 0.87090552 0.95419225
## 0.0797354359577757 -0.36354162 -0.05790375 0.05163434
## 1.36999976327451 -0.03004191 -0.98483874 -1.24923710
## `Nonflavanoid phenols` Proanthocyanins
## -1.21052889135896 -0.57735640 0.5388633
## 0.0797354359577757 0.01452785 0.0688079
## 1.36999976327451 0.68817813 -0.7641311
## `Color intensity` Hue OD280 Proline
## -1.21052889135896 0.2028288 0.4575567 0.7691811 1.1711967
## 0.0797354359577757 -0.8503999 0.4323908 0.2446043 -0.7220731
## 1.36999976327451 1.0085728 -1.2019916 -1.3072623 -0.3715295
##
## Coefficients of linear discriminants:
## LD1 LD2
## Alcohol -0.3274906 0.707744750
## `Malic acid` 0.1846135 0.341153776
## Ash -0.1012536 0.643569825
## `Alcalinity of ash` 0.5169574 -0.488847900
## Magnesium -0.0309001 -0.006609312
## `Total phenols` 0.3868085 -0.020160425
## Flavanoids -1.6592953 -0.491436530
## `Nonflavanoid phenols` -0.1861596 -0.202977648
## Proanthocyanins 0.0767491 -0.175764297
## `Color intensity` 0.8231206 0.587061123
## Hue -0.1869798 -0.346430951
## OD280 -0.8218561 0.036340126
## Proline -0.8474810 0.898426186
##
## Proportion of trace:
## LD1 LD2
## 0.6875 0.3125
## LD1 LD2
## 1 -4.700244 1.9791383
## 2 -4.301958 1.1704129
## 3 -3.420720 1.4291014
## 4 -4.205754 4.0028715
## 5 -1.509982 0.4512239
## 6 -4.518689 3.2131376