Está en la página 1de 2

Técnicas Estadı́sticas en Análisis de Mercados Práctica tema 10

Práctica: SVM.

Puedes subir el archivo que resulte de la realización de la práctica al Campus Virtual.

1. El archivo “carseats.csv” contiene datos sobre ventas de sillas para coche para niños en
400 tiendas. Contiene las siguientes variables:

CompPrice: Precio cobrado por la competencia en cada ubicación


Income: Nivel de ingresos de la comunidad (en miles de dólares)
Advertising: Presupuesto de publicidad local para la empresa en cada ubicación
(en miles de dólares)
Population: Tamaño de la población en la región (en miles)
Price: Precio que cobra la empresa por los asientos para el automóvil en cada sitio
ShelveLoc: Un factor con niveles Malo, Bueno y Medio que indica la calidad de la
ubicación de las estanterı́as para los asientos del automóvil en cada sitio.
Age: Edad media de la población local
Education: Nivel de educación en cada ubicación
Urban: Un factor con niveles No y Sı́ para indicar si la tienda se encuentra en una
ubicación urbana o rural.
US: Un factor con niveles No y Sı́ para indicar si la tienda está en EE.UU. o no
High: Un factor con niveles No y Sı́ para indicar si el volumen de ventas es alto o
no
a) Ajusta un clasificador SVM con kernel lineal, con un coste C = 10. Utiliza
un conjunto de entrenamiento de tamaño 300 (fijando set.seed(2)). Calcula la
matriz de confusión.
ˆ Para ajustar un clasificador SVM se requiere el paquete e1071.
ˆ La función necesaria es svm.
ˆ Para hacer predicciones utiliza la función predict, deberás indicar type=“class”.
b) Ajusta un clasificador SVM con kernel polinomial de grado 3, con un coste
C = 10. Utiliza un el mismo conjunto de entrenamiento que en el apartado a).
Calcula la matriz de confusión.
c) Ajusta un clasificador SVM con kernel radial con γ = 1, con un coste C = 10.
Utiliza un el mismo conjunto de entrenamiento que en el apartado a). Calcula
la matriz de confusión.
d ) ¿Cuál de los kernels anteriores ha dado mejor resultado?
e) Realiza el mismo estudio (con los tres kernels) variando el valor de C. ¿Qué
ocurre?

1
Técnicas Estadı́sticas en Análisis de Mercados Práctica tema 10

f ) Elige otro conjunto de entrenamiento, fijando por ejemplo set.seed(4). ¿Qué


ocurre ahora? ¿Sigue clasificando mejor el mismo kernel?
g) Elige como conjunto de entrenamiento y de prueba el conjunto de todos los datos
y repite el estudio svm.

2. Genera el siguiente conjunto de datos aleatorio y represéntalo:

set.seed(10111)
x = matrix(rnorm(100), 50, 2)
y = rep(c(−1, 1), c(25, 25))
x[y == 1, ] = x[y == 1, ] + 3
plot(x, col = y + 3, pch = 19)

a) Explica el proceso anterior de generación de datos.


b) Encuentra un clasificador svm que separe perfectamente los datos. Calcula la matriz
de confusión.
c) Representa los datos y el clasificador utilizando la función plot.
d ) ¿Qué hace la siguiente función? Ejecútala. ¿Qué utilidad puede tener?

make.grid = f unction(x, n = 50){


grange = apply(x, 2, range)
x1 = seq(f rom = grange[1, 1], to = grange[2, 1], length = n)
x2 = seq(f rom = grange[1, 2], to = grange[2, 2], length = n)
expand.grid(X1 = x1, X2 = x2) }

e) Ejecutando los siguientes comandos se pueden obtener los coeficientes β:

beta = t(svm.data$coef s) % ∗ %svm.data$SV


beta0 = svm.data$rho

Representa el hiperplano y los márgenes.


f ) Genera ahora un conjunto de datos aleatorios que no estén tan bien separados co-
mo los anteriores. Encuentra un buen clasificador svm. Representa los datos y el
clasificador.
g) Genera ahora un conjunto de datos aleatorios que no estén tan bien separados co-
mo los anteriores. Encuentra un buen clasificador svm. Representa los datos y el
clasificador.
h) Genera un conjunto de datos aleatorios para los que un clasificador svm con kernel
radial se ajuste muy adecuadamente. Representa los datos y el clasificador.

También podría gustarte