Red Neuronal

IAQC
IAQC

Una red Neural Artificial (ANN) modela la relación entre un conjunto de entradas y una salida, resolviendo un problema de aprendizaje.

Un ejemplo de apleciación de Redes Neuronales es la recomendación de contenido de Netflix o el feed “For You” de TikTok.

Paquetas y Librerías

library (tidyverse)
## ── Attaching core tidyverse packages ──────────────────────── tidyverse 2.0.0 ──
## ✔ dplyr     1.1.2     ✔ readr     2.1.4
## ✔ forcats   1.0.0     ✔ stringr   1.5.0
## ✔ ggplot2   3.4.2     ✔ tibble    3.2.1
## ✔ lubridate 1.9.2     ✔ tidyr     1.3.0
## ✔ purrr     1.0.1     
## ── Conflicts ────────────────────────────────────────── tidyverse_conflicts() ──
## ✖ dplyr::filter() masks stats::filter()
## ✖ dplyr::lag()    masks stats::lag()
## ℹ Use the conflicted package (<http://conflicted.r-lib.org/>) to force all conflicts to become errors
library (foreign)
library (ggplot2)
library(dplyr)
library(scales)
## 
## Attaching package: 'scales'
## 
## The following object is masked from 'package:purrr':
## 
##     discard
## 
## The following object is masked from 'package:readr':
## 
##     col_factor
library(ggrepel)
library(readr)
library(readxl)
library(neuralnet)
## 
## Attaching package: 'neuralnet'
## 
## The following object is masked from 'package:dplyr':
## 
##     compute

Alimentar con Ejemplos (Generando la información)

examen<-c(20,10,30,20,80,30)
proyecto<-c(90,20,40,50,50,80)
estatus<-c(1,0,0,0,1,1)

Se crea el data frame

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

Generación de la Red Neuronal

#El punto añade todo lo demás de la bse de datos
RedNeuronal<-neuralnet(estatus~.,data=datarn)
plot(RedNeuronal,rep="best")

Predicción con la Red Neuronal

#Nueva Info
PruebaE<-c(30,40,85)
PruebaP<-c(85,50,40)
Prueba<-data.frame(PruebaE,PruebaP)

#Predicción / Compute junta base de datos pero no las une como left join. solo las almacena

Prediccion<-compute(RedNeuronal,Prueba)
Prediccion$net.result
##           [,1]
## [1,] 0.5009412
## [2,] 0.5009412
## [3,] 0.5009412
Probabilidad<-Prediccion$net.result
Resultado<-ifelse(Probabilidad>0.5,1,0)
Resultado
##      [,1]
## [1,]    1
## [2,]    1
## [3,]    1

Práctica con la base de Datos Cancer de Mama

#Cancer de Mama Predicción

CMP<-read.csv("C://Users/IanAb/Documents/7to Semestre/DATA BASE/cancer_de_mama.csv")
CMP$diagnosis<-ifelse(CMP$diagnosis=="M",1,0)
# CMP$diagnosis[CMP$diagnosis == "M"] <- "1"
# CMP$diagnosis[CMP$diagnosis == "B"] <- "0"
RedNeuronalCM<-neuralnet(diagnosis~.,data=CMP)
plot(RedNeuronalCM,rep="best")

PruebaCM_RM<-c(6.981,27.42)
PruebaCM_TM<-c(13.43,26.27)
PruebaCM_PM<-c(43.79,186.9)
PruebaCM_AM<-c(143.5,2501)
PruebaCM_SmooM<-c(0.117,0.1084)
PruebaCM_ComM<-c(0.07568,0.1988)
PruebaCM_ConyM<-c(0,0.3635)
PruebaCM_CPM<-c(0,0.1689)
PruebaCM_SymM<-c(0.193, 0.2061)
PruebaCM_FDM<-c(0.07818,0.05623)
PruebaCM_RS<-c(0.2241,2.547)
PruebaCM_TS<-c(1.508,1.306)
PruebaCM_PS<-c(1.553,18.65)
PruebaCM_AS<-c(9.833,542.2)
PruebaCM_SmooS<-c(0.01019,0.00765)
PruebaCM_ComS<-c(0.01084,0.05374)
PruebaCM_ConS<-c(0,0.08055)
PruebaCM_CPS<-c(0,0.02598)
PruebaCM_SymS<-c(0.02659,0.01697)
PruebaCM_FDS<-c(0.0041,0.004558)
PruebaCM_RW<-c(7.93,36.04)
PruebaCM_TW<-c(19.54,31.37)
PruebaCM_PW<-c(50.41,251.2)
PruebaCM_AW<-c(185.2,4254)
PruebaCM_SmooW<-c(0.1584,0.1357)
PruebaCM_ComW<-c(0.1202,0.4256)
PruebaCM_ConW<-c(0,0.6833)
PruebaCM_CPW<-c(0,0.2625)
PruebaCM_SymW<-c(0.2932,0.2641)
PruebaCM_FDW<-c(0.09382,0.07427)

PruebaCM<-data.frame(PruebaCM_RM, PruebaCM_TM, PruebaCM_PM, PruebaCM_AM, PruebaCM_SmooM, PruebaCM_ComM, PruebaCM_ConyM, PruebaCM_CPM, PruebaCM_SymM, PruebaCM_FDM, PruebaCM_RS, PruebaCM_TS, PruebaCM_PS, PruebaCM_AS, PruebaCM_SmooS, PruebaCM_ComS, PruebaCM_ConS, PruebaCM_CPS, PruebaCM_SymS, PruebaCM_FDS, PruebaCM_RW, PruebaCM_TW, PruebaCM_PW, PruebaCM_AW, PruebaCM_SmooW, PruebaCM_ComW, PruebaCM_ConW, PruebaCM_CPW, PruebaCM_SymW, PruebaCM_FDW)


PrediccionCM<-compute(RedNeuronalCM,PruebaCM)
PrediccionCM$net.result
##           [,1]
## [1,] 0.3738953
## [2,] 0.3739001
ProbabilidadCM<-PrediccionCM$net.result
ResultadoCM<-ifelse(ProbabilidadCM>0.5,1,0)
ResultadoCM
##      [,1]
## [1,]    0
## [2,]    0

Solución Práctica del Profe

PruebaCM_Prof<-CMP[c(19,20,21,22,23),]
PrediccionCM_Prof<-compute(RedNeuronalCM,PruebaCM_Prof)
PrediccionCM_Prof$net.result
##         [,1]
## 19 0.3739001
## 20 0.3739001
## 21 0.3739001
## 22 0.3739001
## 23 0.3739001
ProbabilidadCM_Prof<-PrediccionCM_Prof$net.result
ResultadoCM_Prof<-ifelse(ProbabilidadCM_Prof>0.5,1,0)
ResultadoCM_Prof
##    [,1]
## 19    0
## 20    0
## 21    0
## 22    0
## 23    0
LS0tDQp0aXRsZTogIkFjdGl2aWRhZCA0LjciDQphdXRob3I6ICJJYW4gQWJyYWhhbSBRdWlyb3ogQ3VhcGlvIg0KZGF0ZTogIjIwMjMtMDktMjgiDQpvdXRwdXQ6DQogICBodG1sX2RvY3VtZW50Og0KICAgIHRvYzogeWVzDQogICAgdG9jX2Zsb2F0OiB5ZXMNCiAgICBjb2RlX2Rvd25sb2FkOiBUUlVFDQogICAgdGhlbWU6ICJzaW1wbGV4Ig0KICAgIGhpZ2hsaWdodDogIm1vbm9jaHJvbWUiDQpsYW5nOiAiZXMtRVMiDQotLS0NCg0KDQoNCiMgPHNwYW4gc3R5bGU9ImNvbG9yOmJsdWU7Ij4gUmVkIE5ldXJvbmFsPC9zcGFuPg0KDQohW0lBUUNdKEM6L1VzZXJzL0lhbkFiL0RvY3VtZW50cy83dG8gU2VtZXN0cmUvcmVkbmV1cm9uYWwuZ2lmKQ0KDQoNClVuYSByZWQgTmV1cmFsIEFydGlmaWNpYWwgKEFOTikgbW9kZWxhIGxhIHJlbGFjacOzbiBlbnRyZSB1biBjb25qdW50byBkZSBlbnRyYWRhcyB5IHVuYSBzYWxpZGEsIHJlc29sdmllbmRvIHVuIHByb2JsZW1hIGRlIGFwcmVuZGl6YWplLg0KDQpVbiBlamVtcGxvIGRlIGFwbGVjaWFjacOzbiBkZSBSZWRlcyBOZXVyb25hbGVzIGVzIGxhIHJlY29tZW5kYWNpw7NuIGRlIGNvbnRlbmlkbyBkZSBOZXRmbGl4IG8gZWwgZmVlZCAiRm9yIFlvdSIgZGUgVGlrVG9rLg0KDQoNCiMjIyBQYXF1ZXRhcyB5IExpYnJlcsOtYXMNCg0KYGBge3J9DQpsaWJyYXJ5ICh0aWR5dmVyc2UpDQpsaWJyYXJ5IChmb3JlaWduKQ0KbGlicmFyeSAoZ2dwbG90MikNCmxpYnJhcnkoZHBseXIpDQpsaWJyYXJ5KHNjYWxlcykNCmxpYnJhcnkoZ2dyZXBlbCkNCmxpYnJhcnkocmVhZHIpDQpsaWJyYXJ5KHJlYWR4bCkNCmxpYnJhcnkobmV1cmFsbmV0KQ0KDQpgYGANCg0KIyMjIEFsaW1lbnRhciBjb24gRWplbXBsb3MgKEdlbmVyYW5kbyBsYSBpbmZvcm1hY2nDs24pDQoNCg0KYGBge3J9DQpleGFtZW48LWMoMjAsMTAsMzAsMjAsODAsMzApDQpwcm95ZWN0bzwtYyg5MCwyMCw0MCw1MCw1MCw4MCkNCmVzdGF0dXM8LWMoMSwwLDAsMCwxLDEpDQoNCmBgYA0KDQojIyMgU2UgY3JlYSBlbCBkYXRhIGZyYW1lDQoNCmBgYHtyfQ0KZGF0YXJuPC1kYXRhLmZyYW1lKGV4YW1lbixwcm95ZWN0byxlc3RhdHVzKQ0KaGVhZChkYXRhcm4pDQpgYGANCg0KIyMjIEdlbmVyYWNpw7NuIGRlIGxhIFJlZCBOZXVyb25hbA0KDQpgYGB7cn0NCiNFbCBwdW50byBhw7FhZGUgdG9kbyBsbyBkZW3DoXMgZGUgbGEgYnNlIGRlIGRhdG9zDQpSZWROZXVyb25hbDwtbmV1cmFsbmV0KGVzdGF0dXN+LixkYXRhPWRhdGFybikNCnBsb3QoUmVkTmV1cm9uYWwscmVwPSJiZXN0IikNCmBgYA0KDQojIyMgUHJlZGljY2nDs24gY29uIGxhIFJlZCBOZXVyb25hbCANCg0KYGBge3J9DQojTnVldmEgSW5mbw0KUHJ1ZWJhRTwtYygzMCw0MCw4NSkNClBydWViYVA8LWMoODUsNTAsNDApDQpQcnVlYmE8LWRhdGEuZnJhbWUoUHJ1ZWJhRSxQcnVlYmFQKQ0KDQojUHJlZGljY2nDs24gLyBDb21wdXRlIGp1bnRhIGJhc2UgZGUgZGF0b3MgcGVybyBubyBsYXMgdW5lIGNvbW8gbGVmdCBqb2luLiBzb2xvIGxhcyBhbG1hY2VuYQ0KDQpQcmVkaWNjaW9uPC1jb21wdXRlKFJlZE5ldXJvbmFsLFBydWViYSkNClByZWRpY2Npb24kbmV0LnJlc3VsdA0KUHJvYmFiaWxpZGFkPC1QcmVkaWNjaW9uJG5ldC5yZXN1bHQNClJlc3VsdGFkbzwtaWZlbHNlKFByb2JhYmlsaWRhZD4wLjUsMSwwKQ0KUmVzdWx0YWRvDQoNCmBgYA0KDQojIyMgUHLDoWN0aWNhIGNvbiBsYSBiYXNlIGRlIERhdG9zIENhbmNlciBkZSBNYW1hDQoNCmBgYHtyfQ0KI0NhbmNlciBkZSBNYW1hIFByZWRpY2Npw7NuDQoNCkNNUDwtcmVhZC5jc3YoIkM6Ly9Vc2Vycy9JYW5BYi9Eb2N1bWVudHMvN3RvIFNlbWVzdHJlL0RBVEEgQkFTRS9jYW5jZXJfZGVfbWFtYS5jc3YiKQ0KDQoNCmBgYA0KDQoNCg0KDQpgYGB7cn0NCkNNUCRkaWFnbm9zaXM8LWlmZWxzZShDTVAkZGlhZ25vc2lzPT0iTSIsMSwwKQ0KIyBDTVAkZGlhZ25vc2lzW0NNUCRkaWFnbm9zaXMgPT0gIk0iXSA8LSAiMSINCiMgQ01QJGRpYWdub3Npc1tDTVAkZGlhZ25vc2lzID09ICJCIl0gPC0gIjAiDQoNCmBgYA0KDQoNCmBgYHtyfQ0KUmVkTmV1cm9uYWxDTTwtbmV1cmFsbmV0KGRpYWdub3Npc34uLGRhdGE9Q01QKQ0KcGxvdChSZWROZXVyb25hbENNLHJlcD0iYmVzdCIpDQpgYGANCg0KYGBge3J9DQpQcnVlYmFDTV9STTwtYyg2Ljk4MSwyNy40MikNClBydWViYUNNX1RNPC1jKDEzLjQzLDI2LjI3KQ0KUHJ1ZWJhQ01fUE08LWMoNDMuNzksMTg2LjkpDQpQcnVlYmFDTV9BTTwtYygxNDMuNSwyNTAxKQ0KUHJ1ZWJhQ01fU21vb008LWMoMC4xMTcsMC4xMDg0KQ0KUHJ1ZWJhQ01fQ29tTTwtYygwLjA3NTY4LDAuMTk4OCkNClBydWViYUNNX0NvbnlNPC1jKDAsMC4zNjM1KQ0KUHJ1ZWJhQ01fQ1BNPC1jKDAsMC4xNjg5KQ0KUHJ1ZWJhQ01fU3ltTTwtYygwLjE5MywJMC4yMDYxKQ0KUHJ1ZWJhQ01fRkRNPC1jKDAuMDc4MTgsMC4wNTYyMykNClBydWViYUNNX1JTPC1jKDAuMjI0MSwyLjU0NykNClBydWViYUNNX1RTPC1jKDEuNTA4LDEuMzA2KQ0KUHJ1ZWJhQ01fUFM8LWMoMS41NTMsMTguNjUpDQpQcnVlYmFDTV9BUzwtYyg5LjgzMyw1NDIuMikNClBydWViYUNNX1Ntb29TPC1jKDAuMDEwMTksMC4wMDc2NSkNClBydWViYUNNX0NvbVM8LWMoMC4wMTA4NCwwLjA1Mzc0KQ0KUHJ1ZWJhQ01fQ29uUzwtYygwLDAuMDgwNTUpDQpQcnVlYmFDTV9DUFM8LWMoMCwwLjAyNTk4KQ0KUHJ1ZWJhQ01fU3ltUzwtYygwLjAyNjU5LDAuMDE2OTcpDQpQcnVlYmFDTV9GRFM8LWMoMC4wMDQxLDAuMDA0NTU4KQ0KUHJ1ZWJhQ01fUlc8LWMoNy45MywzNi4wNCkNClBydWViYUNNX1RXPC1jKDE5LjU0LDMxLjM3KQ0KUHJ1ZWJhQ01fUFc8LWMoNTAuNDEsMjUxLjIpDQpQcnVlYmFDTV9BVzwtYygxODUuMiw0MjU0KQ0KUHJ1ZWJhQ01fU21vb1c8LWMoMC4xNTg0LDAuMTM1NykNClBydWViYUNNX0NvbVc8LWMoMC4xMjAyLDAuNDI1NikNClBydWViYUNNX0Nvblc8LWMoMCwwLjY4MzMpDQpQcnVlYmFDTV9DUFc8LWMoMCwwLjI2MjUpDQpQcnVlYmFDTV9TeW1XPC1jKDAuMjkzMiwwLjI2NDEpDQpQcnVlYmFDTV9GRFc8LWMoMC4wOTM4MiwwLjA3NDI3KQ0KDQpQcnVlYmFDTTwtZGF0YS5mcmFtZShQcnVlYmFDTV9STSwgUHJ1ZWJhQ01fVE0sIFBydWViYUNNX1BNLCBQcnVlYmFDTV9BTSwgUHJ1ZWJhQ01fU21vb00sIFBydWViYUNNX0NvbU0sIFBydWViYUNNX0NvbnlNLCBQcnVlYmFDTV9DUE0sIFBydWViYUNNX1N5bU0sIFBydWViYUNNX0ZETSwgUHJ1ZWJhQ01fUlMsIFBydWViYUNNX1RTLCBQcnVlYmFDTV9QUywgUHJ1ZWJhQ01fQVMsIFBydWViYUNNX1Ntb29TLCBQcnVlYmFDTV9Db21TLCBQcnVlYmFDTV9Db25TLCBQcnVlYmFDTV9DUFMsIFBydWViYUNNX1N5bVMsIFBydWViYUNNX0ZEUywgUHJ1ZWJhQ01fUlcsIFBydWViYUNNX1RXLCBQcnVlYmFDTV9QVywgUHJ1ZWJhQ01fQVcsIFBydWViYUNNX1Ntb29XLCBQcnVlYmFDTV9Db21XLCBQcnVlYmFDTV9Db25XLCBQcnVlYmFDTV9DUFcsIFBydWViYUNNX1N5bVcsIFBydWViYUNNX0ZEVykNCg0KDQpQcmVkaWNjaW9uQ008LWNvbXB1dGUoUmVkTmV1cm9uYWxDTSxQcnVlYmFDTSkNClByZWRpY2Npb25DTSRuZXQucmVzdWx0DQpQcm9iYWJpbGlkYWRDTTwtUHJlZGljY2lvbkNNJG5ldC5yZXN1bHQNClJlc3VsdGFkb0NNPC1pZmVsc2UoUHJvYmFiaWxpZGFkQ00+MC41LDEsMCkNClJlc3VsdGFkb0NNDQoNCmBgYA0KDQojIyMgU29sdWNpw7NuIFByw6FjdGljYSBkZWwgUHJvZmUNCg0KYGBge3J9DQpQcnVlYmFDTV9Qcm9mPC1DTVBbYygxOSwyMCwyMSwyMiwyMyksXQ0KUHJlZGljY2lvbkNNX1Byb2Y8LWNvbXB1dGUoUmVkTmV1cm9uYWxDTSxQcnVlYmFDTV9Qcm9mKQ0KUHJlZGljY2lvbkNNX1Byb2YkbmV0LnJlc3VsdA0KUHJvYmFiaWxpZGFkQ01fUHJvZjwtUHJlZGljY2lvbkNNX1Byb2YkbmV0LnJlc3VsdA0KUmVzdWx0YWRvQ01fUHJvZjwtaWZlbHNlKFByb2JhYmlsaWRhZENNX1Byb2Y+MC41LDEsMCkNClJlc3VsdGFkb0NNX1Byb2YNCmBgYA0KDQoNCg0KDQo=