TeorĂ­a

Una Red Neuronal Artificial (ANN) modela la relaciĂłn entre un conjunto de entradas y una salida, resolviendo un problema de aprendizaje.

Algunos ejemplos de aplicaciĂłn de ANN son:

  • La recomendaciĂłn de contenido Netflix.
  • El feed de Instagram.
  • Determinar el nĂșmero escrito a mano.

Ejercicio 1. ¿Pasé la materia?

Instalar paquetes y llamar librerĂ­as

#install.packages("neuralnet")
library(neuralnet)

2. Obtener datos

examen <- c(20,10,30,20,80,30)
proyecto <- c(90,20,40,50,50,80)
estatus <- c(1,0,0,0,0,1)
df1 <- data.frame(examen,proyecto,estatus)
df1
##   examen proyecto estatus
## 1     20       90       1
## 2     10       20       0
## 3     30       40       0
## 4     20       50       0
## 5     80       50       0
## 6     30       80       1

3. Generar la red neuronal

set.seed(123)
rn1 <- neuralnet(estatus ~., data=df1)
plot(rn1, rep="best")

## 4. Predecir resultados

prueba_examen = c(30,40,85)
prueba_proyecto = c(85,50,40)
prueba1 = data.frame(prueba_examen,prueba_proyecto)
prediccion = compute(rn1,prueba1)
prediccion$net.result
##             [,1]
## [1,]  1.04011743
## [2,] -0.02359178
## [3,] -0.02359178
probabilidad = prediccion$net.result
resultado = ifelse(probabilidad>0.5, 1, 0)
resultado
##      [,1]
## [1,]    1
## [2,]    0
## [3,]    0

Cancer de mama

#file.choose()
df2 <- read.csv("/Users/valeriacantulobo/Downloads/cancer_de_mama.csv")
df2$diagnosis <- ifelse(df2$diagnosis == "M", 1, 0)
d1 <- neuralnet(diagnosis ~., data=df2)
plot(d1, rep="best")

prueba_examen <- c(30,40,85)
prueba_proyecto <- c(85,50,40)
prueba1 <- data.frame(prueba_examen,prueba_proyecto)
prediccion <- compute(rn1, prueba1)
prediccion$net.result
##             [,1]
## [1,]  1.04011743
## [2,] -0.02359178
## [3,] -0.02359178
probabilidad <- prediccion$net.result
resultado <- ifelse(probabilidad>0.5, 1, 0)
LS0tCnRpdGxlOiAiUmVkZXMgTmV1cm9uYWxlcyIKYXV0aG9yOiAiVmFsZXJpYSBDYW50w7ogLSBBMDE1NzA3NTgiCmRhdGU6ICIyMDI0LTAyLTIyIgpvdXRwdXQ6IAogIGh0bWxfZG9jdW1lbnQ6IAogICAgdG9jOiBUUlVFCiAgICB0b2NfZmxvYXQ6IFRSVUUKICAgIGNvZGVfZG93bmxvYWQ6IFRSVUUgCi0tLQoKCiFbXSgvVXNlcnMvdmFsZXJpYWNhbnR1bG9iby9Eb3dubG9hZHMvcmVkZXMgbmV1cm9uYWxlcy5qcGVnKQoKIyA8c3BhbiBzdHlsZT0iY29sb3I6IGJsdWU7Ij5UZW9yw61hPC9zcGFuPgoKVW5hIFJlZCBOZXVyb25hbCBBcnRpZmljaWFsIChBTk4pIG1vZGVsYSBsYSByZWxhY2nDs24gZW50cmUgdW4gY29uanVudG8gZGUgZW50cmFkYXMgeSB1bmEgc2FsaWRhLCByZXNvbHZpZW5kbyB1biBwcm9ibGVtYSBkZSBhcHJlbmRpemFqZS4KCkFsZ3Vub3MgZWplbXBsb3MgZGUgYXBsaWNhY2nDs24gZGUgQU5OIHNvbjogIAoKKiBMYSByZWNvbWVuZGFjacOzbiBkZSBjb250ZW5pZG8gTmV0ZmxpeC4gIAoqIEVsIGZlZWQgZGUgSW5zdGFncmFtLiAgCiogRGV0ZXJtaW5hciBlbCBuw7ptZXJvIGVzY3JpdG8gYSBtYW5vLiAgCgojIDxzcGFuIHN0eWxlPSJjb2xvcjogYmx1ZTsiPkVqZXJjaWNpbyAxLiDCv1Bhc8OpIGxhIG1hdGVyaWE/PC9zcGFuPgoKIyMgPHNwYW4gc3R5bGU9ImNvbG9yOiBibHVlOyI+SW5zdGFsYXIgcGFxdWV0ZXMgeSBsbGFtYXIgbGlicmVyw61hczwvc3Bhbj4KYGBge3J9CiNpbnN0YWxsLnBhY2thZ2VzKCJuZXVyYWxuZXQiKQpsaWJyYXJ5KG5ldXJhbG5ldCkKYGBgCgojIyA8c3BhbiBzdHlsZT0iY29sb3I6IGJsdWU7Ij4yLiBPYnRlbmVyIGRhdG9zPC9zcGFuPgpgYGB7cn0KZXhhbWVuIDwtIGMoMjAsMTAsMzAsMjAsODAsMzApCnByb3llY3RvIDwtIGMoOTAsMjAsNDAsNTAsNTAsODApCmVzdGF0dXMgPC0gYygxLDAsMCwwLDAsMSkKZGYxIDwtIGRhdGEuZnJhbWUoZXhhbWVuLHByb3llY3RvLGVzdGF0dXMpCmRmMQpgYGAKIyMgPHNwYW4gc3R5bGU9ImNvbG9yOiBibHVlOyI+My4gR2VuZXJhciBsYSByZWQgbmV1cm9uYWw8L3NwYW4+CmBgYHtyfQpzZXQuc2VlZCgxMjMpCnJuMSA8LSBuZXVyYWxuZXQoZXN0YXR1cyB+LiwgZGF0YT1kZjEpCnBsb3Qocm4xLCByZXA9ImJlc3QiKQpgYGAKIyMgPHNwYW4gc3R5bGU9ImNvbG9yOiBibHVlOyI+NC4gUHJlZGVjaXIgcmVzdWx0YWRvczwvc3Bhbj4KYGBge3J9CnBydWViYV9leGFtZW4gPSBjKDMwLDQwLDg1KQpwcnVlYmFfcHJveWVjdG8gPSBjKDg1LDUwLDQwKQpwcnVlYmExID0gZGF0YS5mcmFtZShwcnVlYmFfZXhhbWVuLHBydWViYV9wcm95ZWN0bykKcHJlZGljY2lvbiA9IGNvbXB1dGUocm4xLHBydWViYTEpCnByZWRpY2Npb24kbmV0LnJlc3VsdApwcm9iYWJpbGlkYWQgPSBwcmVkaWNjaW9uJG5ldC5yZXN1bHQKcmVzdWx0YWRvID0gaWZlbHNlKHByb2JhYmlsaWRhZD4wLjUsIDEsIDApCnJlc3VsdGFkbwoKYGBgCgoKCgoKIyA8c3BhbiBzdHlsZT0iY29sb3I6IGJsdWU7Ij5DYW5jZXIgZGUgbWFtYTwvc3Bhbj4KCmBgYHtyfQojZmlsZS5jaG9vc2UoKQpkZjIgPC0gcmVhZC5jc3YoIi9Vc2Vycy92YWxlcmlhY2FudHVsb2JvL0Rvd25sb2Fkcy9jYW5jZXJfZGVfbWFtYS5jc3YiKQpgYGAKCmBgYHtyfQpkZjIkZGlhZ25vc2lzIDwtIGlmZWxzZShkZjIkZGlhZ25vc2lzID09ICJNIiwgMSwgMCkKCmBgYAoKYGBge3J9CmQxIDwtIG5ldXJhbG5ldChkaWFnbm9zaXMgfi4sIGRhdGE9ZGYyKQpwbG90KGQxLCByZXA9ImJlc3QiKQpgYGAKYGBge3J9CnBydWViYV9leGFtZW4gPC0gYygzMCw0MCw4NSkKcHJ1ZWJhX3Byb3llY3RvIDwtIGMoODUsNTAsNDApCnBydWViYTEgPC0gZGF0YS5mcmFtZShwcnVlYmFfZXhhbWVuLHBydWViYV9wcm95ZWN0bykKcHJlZGljY2lvbiA8LSBjb21wdXRlKHJuMSwgcHJ1ZWJhMSkKcHJlZGljY2lvbiRuZXQucmVzdWx0CnByb2JhYmlsaWRhZCA8LSBwcmVkaWNjaW9uJG5ldC5yZXN1bHQKcmVzdWx0YWRvIDwtIGlmZWxzZShwcm9iYWJpbGlkYWQ+MC41LCAxLCAwKQpgYGAKCg==