Está en la página 1de 12

Universidad Internacional de La Rioja (UNIR)

Máster Universitario en Inteligencia Artificial

Clasificación con
máquina de vectores
de soporte y redes de
neuronas

Actividad 2
Realizado por: Quisaguano Paredes, Fernando

Ciudad: Quito
Fecha: 4 de junio 2021
Asignatura Datos del alumno Fecha
Apellidos: Quisaguano Paredes
Aprendizaje Automático 4-06-2021
Nombre: Fernando

Actividad: Clasificación con máquina de vectores


de soporte y redes de neuronas
Objetivos
Mediante esta actividad se pretende que pongas en práctica la creación de modelos
basados en máquinas de vector de soporte y redes de neuronas. El objetivo es que
comprendas de forma práctica con un problema determinado las diferencias que
existen a la hora de entrenar los diferentes modelos.

Descripción de la actividad
El conjunto de datos con el cual vamos a trabajar se encuentra en el siguiente link.

https://www.kaggle.com/iabhishekofficial/mobile-price-classification#train.csv

 Análisis descriptivo de los datos:


Tabla 1 Descripción de los 21 datos

battery_power Energía total que una batería puede almacenar en un tiempo medido en mAh
blue Tiene bluetooth o no
clock_speed velocidad a la que el microprocesador ejecuta instrucciones
dual_sim Tiene soporte dual sim o no
fc Megapíxeles de la cámara frontal
four_g Tiene 4G o no
int_memory Memoria interna en gigabytes
m_dep Profundidad móvil en cm
mobile_wt Peso del teléfono móvil
n_cores Número de núcleos de procesador
pc Megapíxeles de la cámara principal
px_height Altura de resolución de píxeles
px_width Ancho de resolución de píxeles
ram Memoria de acceso aleatorio en megabytes
sc_h Altura de la pantalla del móvil en cm
sc_w Ancho de pantalla del móvil en cm
© Universidad Internacional de La Rioja (UNIR)

talk_time más tiempo que durará una sola carga de batería cuando esté hablando
three_g Tiene 3G o no
touch_screen Tiene pantalla táctil o no
wifi Tiene wifi o no

Actividades 1
Asignatura Datos del alumno Fecha
Apellidos: Quisaguano Paredes
Aprendizaje Automático 4-06-2021
Nombre: Fernando

En la tabla 1 tenemos la descripción de las variables, la variable a predecir será


“price_range” con valor de 0 (costo bajo), 1 (costo medio), 2 (costo alto) y 3 (costo
muy alto).
Metodología
 Análisis descriptivo de los datos:
a)

Figura 1 Cargar los datos

• Datos estadísticos
© Universidad Internacional de La Rioja (UNIR)

Figura 2 Datos estadísticos de las variables

Actividades 2
Asignatura Datos del alumno Fecha
Apellidos: Quisaguano Paredes
Aprendizaje Automático 4-06-2021
Nombre: Fernando

¿Qué tipo de variables se ven, deberían transformarse algunas de ellas?


Solo se puede observar variables numéricas, aunque algunas se las podría ver
como categóricas como son blue, four_g, three_g, touch_screem, wifi,
dual_sim. Estas variables indicarían si tiene o no esa característica el teléfono
móvil. Es posible que en un preprocesamiento de los datos anterior se cambió
esas variables de categóricas a numéricas para poder ser ingresadas a un
clasificador.
Con el despliegue de los datos estadísticos tenemos la media, mediana, máximo
y mínimo de cada variable, observamos que son 2000 observaciones por cada
variable, además y lo más importante vemos que no tenemos valores faltantes
en el conjunto de datos.
Matriz de correlación.
© Universidad Internacional de La Rioja (UNIR)

Figura 3 Matriz de Correlación

Podemos analizar que:

Actividades 3
Asignatura Datos del alumno Fecha
Apellidos: Quisaguano Paredes
Aprendizaje Automático 4-06-2021
Nombre: Fernando

• Alta correlación entre "price_range" (objetivo) y "ram" (memoria RAM)


alrededor (0.92).
• Las demás se encuentran bajo 0.2 de correlación con la variable objetivo.
• Aunque hay variables que se correlacionan entre si no presentan una
correlación mayor a 0.8 como para considerar eliminar una por otra.
b) ¿A qué conclusiones podemos llegar? ¿Eliminarías alguna variable
teniendo en cuenta esta información?

Figura 4 Variables mayor correlacionadas con price_range

Una posibilidad sería seleccionar alguna técnica de “feature selection” para escoger
las variables que presenten un mejor desempeño para entrenamiento.
También se podría obtener la importancia de estas variables con la variable objetivo
por medio de random forest.

Figura 5 Importancia variables con Random Forest

Como vemos la variable más importante es ram, seguida de las más correlacionadas,
© Universidad Internacional de La Rioja (UNIR)

pero también se ve que no se podría descartar mobile_wt el peso del teléfono casi a
la par con la memoria del teléfono int_memory aun teniendo correlación muy baja
con precio del teléfono. Se observa que las variables que identificamos como posibles
categóricas son las de menos importantes para el desarrollo del modelo. Por lo tanto,

Actividades 4
Asignatura Datos del alumno Fecha
Apellidos: Quisaguano Paredes
Aprendizaje Automático 4-06-2021
Nombre: Fernando

se podrían eliminar cualquiera de estas variables, y seleccionar entre las mejor


correlacionadas y las de mayor importancia.
La variable “ram” está afectando en gran medida el rango de precios "price_range"
tanto en Figura 4 y Figura 5 ninguna otra variable se encuentra en este estado, por
ende, no descartare ninguna variable para el desarrollo de esta actividad ya que así
se presenta en documento Word guía y sobre todo para obtener los resultados
similares del mismo. Y lo más importante, para comprar el desempeño de los
modelos SVM y NN con todas las variables.
 Preprocesamiento de datos:
En la Figura 5 tenemos la partición de 2/3 para train y 1/3 para test

Figura 6 Asignación y Partición de datos

En la figura 6 tenemos el escalamiento para las variables de entrada con la función


scale(). La estandarización de un conjunto de datos es un requisito común para
muchos estimadores de aprendizaje automático, además como este es un problema
de clasificación la variable a predecir se la pasara como tipo de dato factor ya que
presenta niveles 0,1,2,3 según el rango de precio.

Figura 7 Escalamiento de datos

 Clasificador SVM:
© Universidad Internacional de La Rioja (UNIR)

a) ¿Qué comentarios puedes realizar al respecto? Analiza el valor del coste.


Para realizar este entrenamiento se utiliza la función tune de la librería e1071 el
cual por validación cruzada y unos parámetros que le demos nos entregara el mejor
modelo SVM.

Actividades 5
Asignatura Datos del alumno Fecha
Apellidos: Quisaguano Paredes
Aprendizaje Automático 4-06-2021
Nombre: Fernando

Figura 8 Modelo SVM con kernel linear

El mejor modelo nos muestra costo de 10 para un mejor desenpeño del modelo con
error bajo y baja dispersión.

Figura 9 Seleccionar el mejor modelo

En la Figura 9 se muestra la prediccion del modelo con los datos de test, y


© Universidad Internacional de La Rioja (UNIR)

posteriomente se genera la matriz de confusion. Teniendo un mejor coste de 10 y


de tipo de lineal, ademas de 182 vectores de soporte.

Actividades 6
Asignatura Datos del alumno Fecha
Apellidos: Quisaguano Paredes
Aprendizaje Automático 4-06-2021
Nombre: Fernando

Figura 10 Matriz de confusión del modelo

Se obtiene un modelo con acurrency 0.962 que es bastante bueno ya que logra
clasificar gran parte de los datos.
b) ¿Qué podríamos inferir de este gráfico?
En el Figura 10 tenemos los vectores de soporte se pintan con “x” y los demás puntos
con “o”. La dispersión de los datos se muestran una forma lineal. Al ser “ram” una
variable altamente correlacionada con la variable objetivo se muestra se forma
similar las particiones lineales del SVM de 4 clases (0,1,2,3).
© Universidad Internacional de La Rioja (UNIR)

Figura 11 Grafica SVM de ram vs power battery

Actividades 7
Asignatura Datos del alumno Fecha
Apellidos: Quisaguano Paredes
Aprendizaje Automático 4-06-2021
Nombre: Fernando

c)
Realizamos la predicción de un nuevo modelo para un kernel radial, ahora también
incluimos la variable gamma. Y escogemos el mejor modelo como observamos en la
Figura 11.

Figura 12 Mejor modelo para kernel radial

Ahora se obtiene un coste 0.001 y gamma de 0.5 teniendo un error alto de 0.76 sin
poderlo bajar. En la Figura 12 observamos que solo se pudo predecir relativamente
bien la clase 1 de ahí el error 0.76. y el accurancy de 0.26.
© Universidad Internacional de La Rioja (UNIR)

Figura 13 Matriz de confusión con kernel radial

Actividades 8
Asignatura Datos del alumno Fecha
Apellidos: Quisaguano Paredes
Aprendizaje Automático 4-06-2021
Nombre: Fernando

¿Por qué la diferencia de resultados? Comenta la diferencia que existe entre los dos
modelos (lineal, radial).
De aquí podemos llegar a la conclusión que utilizar un kernel radial para un problema
que mostraba claramente una dispersión lineal como la (Figura 10). No es lo correcto.

 Clasificador con redes neuronales:


a)
En la Figura 13 observamos como se realiza el entrenamiento de una red neuronal
con 3 capas ocultas. Para esto ingresamos todas las variables como los anteriores
entrenamientos SVM.

Figura 14 Entrenamiento red neuronal

En la Figura 14 se muestra con mayor detalle los valores que tomaron estas
neuronas para inferir en la activación de la salida en este caso la clasificación de
4 clases (0,1,2,3) También en azul se ver el bias de cada neurona.
© Universidad Internacional de La Rioja (UNIR)

Figura 15 Modelo NN 3 neuronas en capa oculta

Actividades 9
Asignatura Datos del alumno Fecha
Apellidos: Quisaguano Paredes
Aprendizaje Automático 4-06-2021
Nombre: Fernando

b)
El resultado de este modelo Figura 15, con accurancy 0.968 es ligeramente superior
al modelo con SVM lineal con tan solo 3 neuronas en la capa oculta. Este resultado
se debe al clasificar un poco mejor a la clase 2 respecto de SVM. Figura 9.

Figura 16 Matriz de confusión NN 3 capas ocultas

A continuación, se muestra el entrenamiento con 5 neuronas en la capa oculta, ya


que con 4 neuronas no presentó un cambio significativo, tampoco al aumentar más
capas ocultas.
© Universidad Internacional de La Rioja (UNIR)

Figura 17 Modelo NN con 5 capas ocultas

Actividades 10
Asignatura Datos del alumno Fecha
Apellidos: Quisaguano Paredes
Aprendizaje Automático 4-06-2021
Nombre: Fernando

¿Qué modelo elegirías?


Como se muestra en la Figura 17 mejoro el desempeño con este modelo,
principalmente por mejorar la clasificación en la clase 1. Con este resultado se
escogería mejor este modelo de 5 neuronas ya que supera hasta al modelo de SVM
lineal.

Figura 18 Matriz de confusión de NN con 5 neuronas

Comentarios adicionales
• En esta practica observamos con el mismo conjunto de datos dos formas de
predecir la misma variable objetivo. Se obtuvo buenos resultados con ambos
modelos, un preprocesamiento (escalamiento) de los datos facilita en gran
medida el entrenamiento del modelo SVM.
• El entrenamiento de SVM es relativamente rápido comparado con NN, pero
al buscar un coste ideal (función tune) se encarece el coste computacional
(tiempo de ejecución) sobre todo con conjunto de datos relativamente
grandes.
© Universidad Internacional de La Rioja (UNIR)

• La mejor manera de encontrar un buen modelo con NN es partir con un


modelo simple como la (Figura14) e ir aumentando (Figura 16).

Actividades 11

También podría gustarte