Logo Studenta

IAC2016-Practica7_ANN_respuesta

¡Estudia con miles de materiales!

Vista previa del material en texto

TP7 IAC ANN 
 
1. Crear un dataset artificial balanceado a partir de datos generados aleatoriamente con distribución 
normal de dimensiones [100,3]. Generar los primeros 50 patrones (perteneciente a la clase 1) con 
una distribución normal con media=8 y SD=2. Generar los 50 patrones restantes (perteneciente a 
la clase 0) con una distribución normal con media=11 y SD=2. 
# otra semilla 674860 
# otra semilla 11031880 con lr = 0,005 
set.seed(134678) 
X1<-c(rnorm(50,8,2),rnorm(50,11,2)) 
X2<-c(rnorm(50,8,2),rnorm(50,11,2)) 
clase<-c(rep(1,50),rep(0,50)) 
 
2. Aplicar al dataset el método Hold-Out con un 70% para entrenar y el resto para prueba. 
 
set.seed(134678) 
indice.test1<-sample(1:50,15) 
indice.test0<-sample(51:100,15) 
X1tr<-X1[-c(indice.test1,indice.test0)] 
X2tr<-X2[-c(indice.test1,indice.test0)] 
X1test<-X1[c(indice.test1,indice.test0)] 
X2test<-X2[c(indice.test1,indice.test0)] 
clase_tr<-clase[-c(indice.test1,indice.test0)] 
clase_test<-clase[c(indice.test1,indice.test0)] 
dataset_train_RNA<-data.frame(X1tr,X2tr,clase_tr) 
dataset_train_SVM<-cbind(X1tr,X2tr,clase_tr) 
dataset_test<-cbind(X1test,X2test,clase_test) 
 
3. Graficar el dataset de test. Los patrones de la clase 1 con color rojo y los patrones de la clase 0 
con azul. Colocar a la gráfica el titulo “Dataset Test”. Etiquetar los ejes de la gráfica con “X1” y 
“X2”. Guardar la gráfica en formato PDF con el nombre “Grafica_dataset_test.pdf”. 
pdf("Grafica_dataset_test.pdf") 
plot(1:20,1:20,type="n", main="dataset Test", xlab="X1", ylab="X2") 
points(dataset_test[1:15,1],dataset_test[1:15,2],col="red") 
points(dataset_test[16:30,1],dataset_test[16:30,2],col="blue") 
dev.off() 
 
4. Entrenar 10 veces una red neuronal con el algoritmo Back Propagation, la red debe tener 10 
neuronas en la capa oculta, además se debe usar la derivada de la función de error como 
criterio de parada (la suma de errores cuadráticos) con un umbral igual a 0.01, función de 
activación logística (logistic) tanto para la capa oculta como para la capa de salida y learning 
rate =0.001. 
 
library(neuralnet) 
 
red<-neuralnet(clase_tr~X1tr+X2tr,dataset_train_RNA,hidden=10, linear.output = FALSE, act.fct 
= "logistic",algorithm="backprop",threshold=0.01,learningrate=0.001, rep=10) 
5. Graficar la red aprendida. 
 
plot(red,rep=”best”) 
 
6. Realizar las predicciones sobre el conjunto de prueba. Calcular el error de Clasificación de la 
red. 
pred<-compute(red,dataset_test[,-3]) 
predicciones_RNA<-round(pred$net.result) 
ErrorC_RNA<-sum(predicciones_RNA!=dataset_test[,3])/length(dataset_test[,3]) 
 
7. Graficar las predicciones obtenidas. Los patrones de la clase 1 con color rojo y los patrones de 
la clase 0 con azul. Colocar a la gráfica el titulo “Predicciones RNA”. Etiquetar los ejes de la 
gráfica con “X1” y “X2”. Guardar la gráfica en formato PDF con el nombre 
“Grafica_predicciones_RNA.pdf”. 
 
pdf("Grafica_predicciones_RNA.pdf") 
plot(1:20,1:20,type="n", main="Predicciones RNA ", xlab="X1", ylab="X2") 
points(dataset_test[predicciones_RNA==1,1],dataset_test[predicciones_RNA==1,2],col="red") 
points(dataset_test[predicciones_RNA==0,1],dataset_test[predicciones_RNA==0,2],col="blue") 
dev.off() 
 
8. Entrenar una SVM con los mismos patrones de entrenamiento usados para entrenar la RNA 
del punto 4. 
library(e1071) 
modeloSVM<-svm(dataset_train_SVM [,-3], dataset_train_SVM [,3],type="C") 
 
9. Realizar las predicciones sobre el mismo conjunto de prueba usado en el punto 6. Calcular el 
error de Clasificación de la SVM. 
 
predicciones_SVM<-predict(modeloSVM,dataset_test[,-3]) 
ErrorC_SVM<-sum(predicciones_SVM != dataset_test [,3])/length(dataset_test [,3]) 
 
10. Graficar las predicciones obtenidas. Los patrones de la clase 1 con color rojo y los patrones de 
la clase 0 con azul. Colocar a la gráfica el titulo “Predicciones SVM”. Etiquetar los ejes de la 
gráfica con “X1” y “X2”. Guardar la gráfica en formato PDF con el nombre 
“Grafica_predicciones_SVM.pdf”. 
 
 
pdf("Grafica_predicciones_SVM.pdf") 
plot(1:20,1:20,type="n", main="Predicciones SVM ", xlab="X1", ylab="X2") 
points(dataset_test[predicciones_SVM==1,1],dataset_test[predicciones_SVM==1,2],col="red") 
points(dataset_test[predicciones_SVM==0,1],dataset_test[predicciones_SVM==0,2],col="blue") 
dev.off() 
 
11. Compare las tres gráficas: “Grafica_predicciones_RNA.pdf”, 
“Grafica_predicciones_SVM.pdf” y “Grafica_dataset_test.pdf”. Escriba sus conclusiones.

Continuar navegando

Materiales relacionados

8 pag.
TP7_IAC2016_

UNAM

User badge image

said343

3 pag.
IAC2017-TP4-RF_respuesta

UNAM

User badge image

benitoelmasbonito

3 pag.
IAC2016-Practica6_ANN_codigo

UNAM

User badge image

benitoelmasbonito