Logo Studenta

IAC2016-Practica6_ANN_codigo

¡Estudia con miles de materiales!

Vista previa del material en texto

TP6 IAC 2016 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. 
set.seed(5086) 
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. Almacenar el dataset en un data.frame con el nombre “dataset_all”. Guardar el dataset 
“dataset_all.Rdata” 
dataset_all<-data.frame(X1,X2,clase) 
save(dataset_all, file="dataset_all.Rdata") 
3. Graficar el dataset del punto anterior. Los patrones de la clase 1 con color rojo y los patrones 
de la clase 0 con azul. Colocar a la gráfica el título “Dataset All”. Etiquetar los ejes de la gráfica 
con “X1” y “X2”. Guardar la gráfica en formato PDF con el nombre “Grafica_dataset_all.pdf”. 
pdf("Grafica_dataset_all.pdf") 
plot(1:20,1:20,type="n", main="Dataset All", xlab="X1",ylab="X2") 
points(X1[1:50],X2[1:50],col="red") 
points(X1[51:100],X2[51:100],col="blue") 
dev.off() 
4. Aplicar al dataframe el método Hold-Out con un 70% para entrenar y el resto para prueba. 
set.seed(5086) 
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<-data.frame(X1tr,X2tr,clase_tr) #dataframe xq en la ayuda dice q debe ser dataframe. 
dataset_test<-cbind(X1test,X2test,clase_test) 
5. Guardar los dataset de entrenamiento y test con el nombre “dataset_train.Rdata” y 
“dataset_test.Rdata” respectivamente. 
save(dataset_train, file="dataset_train.Rdata") 
save(dataset_test, file="dataset_train.Rdata") 
6. Graficar el dataset de test (dataset_test.Rdata). 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_test.pdf") 
plot(1:20,1:20,type="n") 
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() 
7. 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 (umbral para las 
derivadas parciales de la función de error como criterio de parada.), 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,hidden=10,algorithm="backprop",threshold=0.0
5,learningrate=0.001, rep=10) 
8. Graficar la red aprendida. 
plot(red,rep="best") 
9. Realizar las predicciones sobre el conjunto de prueba. Calcular el error de Clasificación 
pred<-compute(red,dataset_test[,-3]) 
round(pred$net.result) 
sum(round(pred$net.result)!=dataset_test[,3])/length(dataset_test[,3]) 
predicciones<-round(pred$net.result) 
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 título “Predicciones Dataset”. Etiquetar los ejes de la 
gráfica con “X1” y “X2”. Guardar la gráfica en formato PDF con el nombre 
“Grafica_predicciones_dataset.pdf”. 
pdf("Grafica_pred.pdf") 
plot(1:20,1:20,type="n") 
points(dataset_test[predicciones==1,1],dataset_test[predicciones==1,2],col="red") 
points(dataset_test[predicciones==0,1],dataset_test[predicciones==0,2],col="blue") 
dev.off() 
11. Compare la gráfica “Grafica_predicciones_dataset.pdf” con “Grafica_dataset_test.pdf” y escriba 
sus conclusiones.

Más contenidos de este tema