
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:
- Las recomendación de contenido de Netflix.
- El feed de Instagram.
- Determinar el número escrito a mano.
Ejercio 1. ¿Pasé la materia?
Llamar librerias
library(neuralnet)
library(caret)
Obtención de 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)
Generar la Red Neuronal
set.seed(123)
rn1 = neuralnet(estatus ~ ., data =df1)
plot(rn1, rep="best")

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
Ejercicio 2. Cancer de mama
Obtención de base de datos
df2= read.csv("C:\\Users\\Silva\\Downloads\\cancer_de_mama.csv") # Extraer la base de datos
df2$diagnosis <- ifelse(df2$diagnosis == "M", 1, 0) # Cambiar hacia binario la variable discriminante
# Establecer la semilla para reproducibilidad
set.seed(123)
# Definir los sets de datos
trainIndex1 = createDataPartition(df2$diagnosis, p = 0.75, list = FALSE, times = 1)
train = df2[trainIndex1, ]
test = df2[-trainIndex1, ]
test1 = test[, -which(names(test) == "diagnosis")]
Generar la Red Neuronal
rn2 = neuralnet(diagnosis ~ ., data =train, hidden= c(5), linear.output = FALSE)
plot(rn2, rep="best")

Predecir Resultados
# Realizar la predicciones del set de prueba
prediccion2 = compute(rn2,test1)
resultado2 = ifelse(prediccion2$net.result>0.5, 1, 0)
# Comparación de resultados
revision = cbind(test, resultados = prediccion2$net.result)
revision = revision[, c("diagnosis","resultados"), drop = FALSE]
revision$resultados = ifelse(revision$resultados>0.5, 1, 0)
# Porcentaje de accuracy
precision <- ((sum(revision$diagnosis == revision$resultados)) / (nrow(revision))) * 100
# Mostrar el resultado
cat("Porcentaje de precisión:", precision, "%")
## Porcentaje de precisión: 98.59155 %
LS0tDQp0aXRsZTogIk0yX1JlZGVzIE5ldXJvbmFsZXMiDQphdXRob3I6ICJKb3PDqSBBcnR1cm8gU2lsdmEgRmxvcmVzIEEwMTE5ODA0OSINCmRhdGU6ICJgciBTeXMuRGF0ZSgpYCINCm91dHB1dDogDQogIGh0bWxfZG9jdW1lbnQ6DQogICAgdG9jOiBUUlVFDQogICAgdG9jX2Zsb2F0OiBUUlVFDQogICAgY29kZV9kb3dubG9hZDogVFJVRQ0KICAgIHRoZW1lOiAic3BhY2VsYWIiDQotLS0NCg0KIVtdKEM6XFxVc2Vyc1xcU2lsdmFcXERvY3VtZW50c1xcVGVjXFxJbWFnZW5lc19hY3RzXFxyZWRlcy5naWYpDQoNCiMgVGVvcsOtYQ0KDQpVbmEgUmVkIE5ldXJvbmFsIEFydGlmaWNpYWwgKEFOTikgbW9kZWxhIGxhIHJlbGFjacOzbiBlbnRyZSB1biBjb25qdW50byBkZSBlbnRyYWRhcyB5IHVuYSBzYWxpZGEsIHJlc29sdmllbmRvIHVuIHByb2JsZW1hIGRlIGFwcmVuZGl6YWplLiAgDQoNCkFsZ3Vub3MgZWplbXBsb3MgZGUgYXBsaWNhY2nDs24gZGUgQU5OIHNvbjogIA0KDQoqIExhcyByZWNvbWVuZGFjacOzbiBkZSBjb250ZW5pZG8gZGUgTmV0ZmxpeC4gIA0KKiBFbCBmZWVkIGRlIEluc3RhZ3JhbS4gIA0KKiBEZXRlcm1pbmFyIGVsIG7Dum1lcm8gZXNjcml0byBhIG1hbm8uICANCg0KDQojIEVqZXJjaW8gMS4gwr9QYXPDqSBsYSBtYXRlcmlhPw0KDQojIyBMbGFtYXIgbGlicmVyaWFzDQpgYGB7ciBtZXNzYWdlPUZBTFNFLCB3YXJuaW5nPUZBTFNFfQ0KbGlicmFyeShuZXVyYWxuZXQpDQpsaWJyYXJ5KGNhcmV0KQ0KYGBgDQoNCiMjIE9idGVuY2nDs24gZGUgZGF0b3MNCmBgYHtyfQ0KZXhhbWVuID0gYygyMCwxMCwzMCwyMCw4MCwzMCkNCnByb3llY3RvID0gYyg5MCwyMCw0MCw1MCw1MCw4MCkNCmVzdGF0dXMgPSBjKDEsMCwwLDAsMCwxKQ0KZGYxID0gZGF0YS5mcmFtZShleGFtZW4sIHByb3llY3RvLCBlc3RhdHVzKQ0KYGBgDQoNCiMjIEdlbmVyYXIgbGEgUmVkIE5ldXJvbmFsDQpgYGB7cn0NCnNldC5zZWVkKDEyMykNCnJuMSA9IG5ldXJhbG5ldChlc3RhdHVzIH4gLiwgZGF0YSA9ZGYxKQ0KcGxvdChybjEsIHJlcD0iYmVzdCIpDQpgYGANCg0KIyMgUHJlZGVjaXIgUmVzdWx0YWRvcw0KYGBge3J9DQpwcnVlYmFfZXhhbWVuID0gYygzMCw0MCw4NSkNCnBydWViYV9wcm95ZWN0byA9IGMoODUsNTAsNDApDQpwcnVlYmExID0gZGF0YS5mcmFtZShwcnVlYmFfZXhhbWVuLHBydWViYV9wcm95ZWN0bykNCnByZWRpY2Npb24gPSBjb21wdXRlKHJuMSxwcnVlYmExKQ0KcHJlZGljY2lvbiRuZXQucmVzdWx0DQpwcm9iYWJpbGlkYWQgPSBwcmVkaWNjaW9uJG5ldC5yZXN1bHQNCnJlc3VsdGFkbyA9IGlmZWxzZShwcm9iYWJpbGlkYWQ+MC41LCAxLCAwKQ0KcmVzdWx0YWRvDQpgYGANCg0KIyBFamVyY2ljaW8gMi4gQ2FuY2VyIGRlIG1hbWENCg0KIyMgT2J0ZW5jacOzbiBkZSBiYXNlIGRlIGRhdG9zDQpgYGB7cn0NCmRmMj0gcmVhZC5jc3YoIkM6XFxVc2Vyc1xcU2lsdmFcXERvd25sb2Fkc1xcY2FuY2VyX2RlX21hbWEuY3N2IikgIyBFeHRyYWVyIGxhIGJhc2UgZGUgZGF0b3MNCmRmMiRkaWFnbm9zaXMgPC0gaWZlbHNlKGRmMiRkaWFnbm9zaXMgPT0gIk0iLCAxLCAwKSAjIENhbWJpYXIgaGFjaWEgYmluYXJpbyBsYSB2YXJpYWJsZSBkaXNjcmltaW5hbnRlDQoNCiMgRXN0YWJsZWNlciBsYSBzZW1pbGxhIHBhcmEgcmVwcm9kdWNpYmlsaWRhZA0Kc2V0LnNlZWQoMTIzKQ0KDQojIERlZmluaXIgbG9zIHNldHMgZGUgZGF0b3MNCnRyYWluSW5kZXgxID0gY3JlYXRlRGF0YVBhcnRpdGlvbihkZjIkZGlhZ25vc2lzLCBwID0gMC43NSwgbGlzdCA9IEZBTFNFLCB0aW1lcyA9IDEpDQp0cmFpbiA9IGRmMlt0cmFpbkluZGV4MSwgXQ0KdGVzdCA9IGRmMlstdHJhaW5JbmRleDEsIF0NCg0KdGVzdDEgPSB0ZXN0WywgLXdoaWNoKG5hbWVzKHRlc3QpID09ICJkaWFnbm9zaXMiKV0NCmBgYA0KDQojIyBHZW5lcmFyIGxhIFJlZCBOZXVyb25hbA0KYGBge3J9DQpybjIgPSBuZXVyYWxuZXQoZGlhZ25vc2lzIH4gLiwgZGF0YSA9dHJhaW4sIGhpZGRlbj0gYyg1KSwgbGluZWFyLm91dHB1dCA9IEZBTFNFKQ0KcGxvdChybjIsIHJlcD0iYmVzdCIpDQpgYGANCg0KIyMgUHJlZGVjaXIgUmVzdWx0YWRvcw0KYGBge3J9DQojIFJlYWxpemFyIGxhIHByZWRpY2Npb25lcyBkZWwgc2V0IGRlIHBydWViYSANCnByZWRpY2Npb24yID0gY29tcHV0ZShybjIsdGVzdDEpDQpyZXN1bHRhZG8yID0gaWZlbHNlKHByZWRpY2Npb24yJG5ldC5yZXN1bHQ+MC41LCAxLCAwKQ0KDQojIENvbXBhcmFjacOzbiBkZSByZXN1bHRhZG9zIA0KcmV2aXNpb24gPSBjYmluZCh0ZXN0LCByZXN1bHRhZG9zID0gcHJlZGljY2lvbjIkbmV0LnJlc3VsdCkNCnJldmlzaW9uID0gcmV2aXNpb25bLCBjKCJkaWFnbm9zaXMiLCJyZXN1bHRhZG9zIiksIGRyb3AgPSBGQUxTRV0NCnJldmlzaW9uJHJlc3VsdGFkb3MgPSBpZmVsc2UocmV2aXNpb24kcmVzdWx0YWRvcz4wLjUsIDEsIDApDQoNCiMgUG9yY2VudGFqZSBkZSBhY2N1cmFjeQ0KcHJlY2lzaW9uIDwtICgoc3VtKHJldmlzaW9uJGRpYWdub3NpcyA9PSByZXZpc2lvbiRyZXN1bHRhZG9zKSkgLyAobnJvdyhyZXZpc2lvbikpKSAqIDEwMA0KDQojIE1vc3RyYXIgZWwgcmVzdWx0YWRvDQpjYXQoIlBvcmNlbnRhamUgZGUgcHJlY2lzacOzbjoiLCBwcmVjaXNpb24sICIlIikNCmBgYA0KDQoNCmBgYHtyIGV2YWw9RkFMU0UsIGluY2x1ZGU9RkFMU0V9DQp0cnVlX2xhYmVscyA8LSB0ZXN0U2V0JGRpYWdub3Npcw0KY29uZl9tYXRyaXggPC0gdGFibGUoUHJlZGljdGVkID0gcHJlZGljdGVkX2xhYmVscywgQWN0dWFsID0gdHJ1ZV9sYWJlbHMpDQoNCiMgQWNjdXJhY3kgTWV0cmljcw0KYWNjdXJhY3kgPC0gc3VtKGRpYWcoY29uZl9tYXRyaXgpKSAvIHN1bShjb25mX21hdHJpeCkNCnJlY2FsbCA8LSBjb25mX21hdHJpeFsyLDJdIC8gc3VtKGNvbmZfbWF0cml4WzIsXSkNCnNwZWNpZmljaXR5IDwtIGNvbmZfbWF0cml4WzEsMV0gLyBzdW0oY29uZl9tYXRyaXhbMSxdKQ0KDQpjYXQoIkFjY3VyYWN5OiIsIGFjY3VyYWN5LCAiXG4iKQ0KY2F0KCJSZWNhbGw6IiwgcmVjYWxsLCAiXG4iKQ0KY2F0KCJTcGVjaWZpY2l0eToiLCBzcGVjaWZpY2l0eSwiXG4iKQ0KYGBgDQoNCg0K