SlideShare una empresa de Scribd logo
Aprendizaje Automático
con Tensorflow y R
Edgar Ruiz
edgararuiz
theotheredgar
edgararuiz
Tensorflow
❏ Aprendizaje automático y profundo.
❏ Computación de alto desempeño
❏ Librería de código abierto
❏ Variedad de plataformas y dispositivos
Fuente: https://www.tensorflow.org/
Keras
❏ Facilita el desarrollo de modelos
❏ Se integra con Tensorflow y otros
❏ El mismo código funciona en CPU o GPU
❏ Redes convolucionales y recurrentes
Fuente: https://github.com/rstudio/keras
AccesarTF
Fácil integración de R, Tensorflow y Keras
Accesar
Keras
Pero, por que...
+ ?¿
Aprendizaje Automático es de varios pasos
Leér
datos
Pre-procesar
datos
Entrenar
modelo
Validar
modelo
Compartir
resultados
Entrenar el modelo es solo un paso...
Leér
datos
Pre-procesar
datos
Entrenar
modelo
Validar
modelo
Compartir
resultados
R se especializa en todos los pasos
Leér
datos
Pre-procesar
datos
Entrenar
modelo
Validar
modelo
Compartir
resultados
Pre-procesar
datos
Entrenar
modelo
Validar
modelo
Compartir
resultados
Leér
datos
13 mil paquetes especializados de R
Demostración
Prediciendo pérdida de
clientes
Análisis original
Ejemplo basado en el artículo: “Deep Learning With Keras To Predict
Customer Churn”, publicado por Matt Dancho.
https://blogs.rstudio.com/tensorflow/posts/2018-01-11-keras-customer-churn/
Objetivo
Analizar datos de pérdida de clientes de una compañía de
telecomunicaciones con R, Keras y Tensorflow.
Instale TF y Keras desde R
install.packages("tensorflow")
install.packages("keras")
library(keras)
install_tensorflow()
install_keras()
Instale los paquetes de R
Cargue el paquete keras
Instalar TF y Keras
Paquetes de R para cada paso
Progreso
Leér
datos
Pre-procesar
datos
Entrenar
modelo
Validar
modelo
Compartir
resultados
Leér datos
# A tibble: 7,043 x 21
customerID gender SeniorCitizen Partner Dependents tenure PhoneService
<chr> <chr> <dbl> <chr> <chr> <dbl> <chr>
1 7590-VHVEG Female 0 Yes No 1 No
2 5575-GNVDE Male 0 No No 34 Yes
3 3668-QPYBK Male 0 No No 2 Yes
4 7795-CFOCW Male 0 No No 45 No
5 9237-HQITU Female 0 No No 2 Yes
6 9305-CDSKC Female 0 No No 8 Yes
7 1452-KIOVK Male 0 No Yes 22 Yes
8 6713-OKOMC Female 0 No No 10 No
9 7892-POOKP Female 0 Yes No 28 Yes
10 6388-TABGU Male 0 No Yes 62 Yes
# ... with 7,033 more rows, and 14 more variables: MultipleLines <chr>
datos_perdimiento <- read_csv("customer_churn.csv")
Progreso
Leér
datos
Pre-procesar
datos
Entrenar
modelo
Validar
modelo
Compartir
resultados
Pre-procesar - Muestra de datos
separa_datos <- initial_split(
datos_perdimiento,
prop = 0.3
)
tbl_entrenar <- training(separa_datos)
tbl_prueba <- testing(separa_datos)Prueba
70%
Entrenar
30%
Datos
Pre-procesar - La receta!
receta <- tbl_entrenar %>%
recipe(Churn ~ .) %>%
step_rm(customerID) %>%
step_naomit(all_outcomes(), all_predictors()) %>%
step_discretize(tenure,options = list(cuts = 6)) %>%
step_log(TotalCharges) %>%
step_mutate(Churn = ifelse(Churn=="Yes", 1, 0)) %>%
step_dummy(all_nominal(), -all_outcomes()) %>%
step_center(all_predictors(), -all_outcomes()) %>%
step_scale(all_predictors(), -all_outcomes()) %>%
prep()
Remueve columnas
Omitir NAs
Partir en categorías
Conversión logarítmica
Conversión lógica
Variables ficticias
Centrar valores
Escalar valores
Pre-procesar - “Cocinar” receta
baked_test <- bake(receta, tbl_prueba)
x_tbl_prueba <- baked_test %>%
select(-Churn) %>%
as.matrix()
y_vec_prueba <- baked_test %>%
select(Churn) %>%
pull()
x_tbl_entrenar <- receta %>%
juice(all_predictors(),
composition = "matrix")
y_vec_entrenar <- receta %>%
juice(all_outcomes()) %>%
pull()
La muestra de entrenamiento es extraída La porción para prueba is procesada
Progreso
Leér
datos
Pre-procesar
datos
Entrenar
modelo
Validar
modelo
Compartir
resultados
Entrenar el modelo - Preparación
model_keras <- keras_model_sequential() %>%
layer_dense(units = 16,
kernel_initializer = "uniform",
activation = "relu",
input_shape = ncol(x_tbl_entrenar)) %>%
layer_dropout(rate = 0.1) %>%
layer_dense(units = 16,
kernel_initializer = "
uniform", activation = "relu") %>%
layer_dropout(rate = 0.1) %>%
layer_dense(units = 1,
kernel_initializer = "uniform",
activation = "sigmoid") %>%
compile(optimizer = 'adam',
loss = 'binary_crossentropy',
metrics = c('accuracy'))
Capa densa
Capa de pérdida
Capa densa
Capa de pérdida
Capa densa
Compilar
Entrenar el modelo - Entrenar el modelo
history <- fit(
object = model_keras,
x = x_tbl_entrenar,
y = y_vec_entrenar,
batch_size = 50,
epochs = 35,
validation_split = 0.30,
verbose = 0
)
yhat_keras_class_vec <- model_keras %>%
predict_classes(x_tbl_prueba) %>%
as.factor() %>%
fct_recode(yes = "1", no = "0")
yhat_keras_prob_vec <- model_keras %>%
predict_proba(x_tbl_prueba) %>%
as.vector()
test_truth <- y_vec_prueba %>%
as.factor() %>%
fct_recode(yes = "1", no = "0")
estimates_keras_tbl <- tibble(
truth = test_truth,
estimate = yhat_keras_class_vec,
class_prob = yhat_keras_prob_vec)
estimates_keras_tbl
Entrenar el modelo - Predicciones
# A tibble: 4,920 x 3
truth estimate class_prob
<fct> <fct> <dbl>
1 no yes 0.765
2 yes no 0.368
3 yes yes 0.749
4 yes yes 0.782
5 no yes 0.565
6 no no 0.106
7 yes yes 0.579
8 no no 0.00366
9 no no 0.221
10 no no 0.0118
# ... with 4,910 more rows
Progreso
Leér
datos
Pre-procesar
datos
Entrenar
modelo
Validar
modelo
Compartir
resultados
Validar modelo - Mediciones
conf_mat(estimates_keras_tbl,
truth, estimate)
metrics(estimates_keras_tbl,
truth, estimate)
roc_auc(estimates_keras_tbl,
truth, class_prob)
estimates_keras_tbl %>%
precision(truth, estimate) %>%
bind_rows(estimates_keras_tbl %>%
recall(truth, estimate))
f_meas(estimates_keras_tbl,
truth, estimate, beta = 1)
Truth
Prediction no yes
no 3205 547
yes 420 748
# A tibble: 2 x 3
.metric .estimator .estimate
<chr> <chr> <dbl>
1 accuracy binary 0.803
2 kap binary 0.477
# A tibble: 1 x 3
.metric .estimator .estimate
<chr> <chr> <dbl>
1 roc_auc binary 0.843
# A tibble: 2 x 3
.metric .estimator .estimate
<chr> <chr> <dbl>
1 precision binary 0.640
2 recall binary 0.578
# A tibble: 1 x 3
.metric .estimator .estimate
<chr> <chr> <dbl>
1 f_meas binary 0.607
Validar modelo - Valores significativos
explainer <- x_tbl_entrenar %>%
as_tibble() %>%
lime(model_keras, bin_continuous = FALSE)
explanation <- x_tbl_entrenar %>%
as.data.frame() %>%
head(40) %>%
lime::explain(
explainer = explainer, n_labels = 1,
N_features = 4, kernel_width = 0.5)
Progreso
Leér
datos
Pre-procesar
datos
Entrenar
modelo
Validar
modelo
Compartir
resultados
Compartir resultados - Reportes
Compartir resultados - Aplicación
Demostración
¡Pruébalo en tu teléfono!
rstd.io/clientes
rstd.io/datadaymx
¡Gracias por su atención!

Más contenido relacionado

La actualidad más candente

Circuitos Electronicos 5
Circuitos Electronicos 5Circuitos Electronicos 5
Circuitos Electronicos 5
F Blanco
 
Preamplificador
PreamplificadorPreamplificador
Preamplificador
jagermeister34
 
Amp op 1200w
Amp op 1200wAmp op 1200w
Amp op 1200w
Aricassiano pereira
 
3-IGBT.pptx
3-IGBT.pptx3-IGBT.pptx
3-IGBT.pptx
ergr3
 
Ttl y cmos circuitos digitales
Ttl y cmos circuitos digitales Ttl y cmos circuitos digitales
Ttl y cmos circuitos digitales
CarlenisGeraldino
 
Scr rectificador controlado de silicio
Scr   rectificador controlado de silicioScr   rectificador controlado de silicio
Scr rectificador controlado de silicio
Miluska Lala Zambrano Intriago
 
MATRIZ LED 4x10 CON ARDUINO - ATMEGA328P
MATRIZ LED 4x10 CON ARDUINO - ATMEGA328PMATRIZ LED 4x10 CON ARDUINO - ATMEGA328P
MATRIZ LED 4x10 CON ARDUINO - ATMEGA328P
Fernando Marcos Marcos
 
TDA 2003
TDA 2003TDA 2003
TDA 2003
Carlos Monsa
 
Logic families
Logic familiesLogic families
Logic families
Patel Jay
 
CONVERTIDOR ANALÓGICO DIGITAL
CONVERTIDOR ANALÓGICO DIGITALCONVERTIDOR ANALÓGICO DIGITAL
CONVERTIDOR ANALÓGICO DIGITAL
Luis Pruna V
 
95585052 208019-modulo-antenas-y-propagacion
95585052 208019-modulo-antenas-y-propagacion95585052 208019-modulo-antenas-y-propagacion
95585052 208019-modulo-antenas-y-propagacion
.. ..
 
Presentacion x10 siemens1
Presentacion x10 siemens1Presentacion x10 siemens1
Presentacion x10 siemens1
artorius1968
 
Vumetro estereo
Vumetro estereoVumetro estereo
Modificação saida erf_2030_ept3600_mod(2)
Modificação saida erf_2030_ept3600_mod(2)Modificação saida erf_2030_ept3600_mod(2)
Modificação saida erf_2030_ept3600_mod(2)
João Pereira
 
Pulse and Digital Circuits - PHI Learning
Pulse and Digital Circuits - PHI LearningPulse and Digital Circuits - PHI Learning
Pulse and Digital Circuits - PHI Learning
PHI Learning Pvt. Ltd.
 
Limitadores
LimitadoresLimitadores
Las fuentes de alimentación conmutadas (switching)
Las fuentes de alimentación conmutadas (switching)Las fuentes de alimentación conmutadas (switching)
Las fuentes de alimentación conmutadas (switching)
Jomicast
 
Lab4: Diseñar y construir un oscilador de cristal y un oscilador LC
Lab4: Diseñar y construir un oscilador de cristal y un oscilador LCLab4: Diseñar y construir un oscilador de cristal y un oscilador LC
Lab4: Diseñar y construir un oscilador de cristal y un oscilador LC
Ángel Leonardo Torres
 
Exposición transistores de union
Exposición transistores de unionExposición transistores de union
Exposición transistores de union
FabioPorras
 
Diseño de antena logaritmica periodica para tv digital
Diseño de antena logaritmica periodica para tv digitalDiseño de antena logaritmica periodica para tv digital
Diseño de antena logaritmica periodica para tv digital
Alan Toledo
 

La actualidad más candente (20)

Circuitos Electronicos 5
Circuitos Electronicos 5Circuitos Electronicos 5
Circuitos Electronicos 5
 
Preamplificador
PreamplificadorPreamplificador
Preamplificador
 
Amp op 1200w
Amp op 1200wAmp op 1200w
Amp op 1200w
 
3-IGBT.pptx
3-IGBT.pptx3-IGBT.pptx
3-IGBT.pptx
 
Ttl y cmos circuitos digitales
Ttl y cmos circuitos digitales Ttl y cmos circuitos digitales
Ttl y cmos circuitos digitales
 
Scr rectificador controlado de silicio
Scr   rectificador controlado de silicioScr   rectificador controlado de silicio
Scr rectificador controlado de silicio
 
MATRIZ LED 4x10 CON ARDUINO - ATMEGA328P
MATRIZ LED 4x10 CON ARDUINO - ATMEGA328PMATRIZ LED 4x10 CON ARDUINO - ATMEGA328P
MATRIZ LED 4x10 CON ARDUINO - ATMEGA328P
 
TDA 2003
TDA 2003TDA 2003
TDA 2003
 
Logic families
Logic familiesLogic families
Logic families
 
CONVERTIDOR ANALÓGICO DIGITAL
CONVERTIDOR ANALÓGICO DIGITALCONVERTIDOR ANALÓGICO DIGITAL
CONVERTIDOR ANALÓGICO DIGITAL
 
95585052 208019-modulo-antenas-y-propagacion
95585052 208019-modulo-antenas-y-propagacion95585052 208019-modulo-antenas-y-propagacion
95585052 208019-modulo-antenas-y-propagacion
 
Presentacion x10 siemens1
Presentacion x10 siemens1Presentacion x10 siemens1
Presentacion x10 siemens1
 
Vumetro estereo
Vumetro estereoVumetro estereo
Vumetro estereo
 
Modificação saida erf_2030_ept3600_mod(2)
Modificação saida erf_2030_ept3600_mod(2)Modificação saida erf_2030_ept3600_mod(2)
Modificação saida erf_2030_ept3600_mod(2)
 
Pulse and Digital Circuits - PHI Learning
Pulse and Digital Circuits - PHI LearningPulse and Digital Circuits - PHI Learning
Pulse and Digital Circuits - PHI Learning
 
Limitadores
LimitadoresLimitadores
Limitadores
 
Las fuentes de alimentación conmutadas (switching)
Las fuentes de alimentación conmutadas (switching)Las fuentes de alimentación conmutadas (switching)
Las fuentes de alimentación conmutadas (switching)
 
Lab4: Diseñar y construir un oscilador de cristal y un oscilador LC
Lab4: Diseñar y construir un oscilador de cristal y un oscilador LCLab4: Diseñar y construir un oscilador de cristal y un oscilador LC
Lab4: Diseñar y construir un oscilador de cristal y un oscilador LC
 
Exposición transistores de union
Exposición transistores de unionExposición transistores de union
Exposición transistores de union
 
Diseño de antena logaritmica periodica para tv digital
Diseño de antena logaritmica periodica para tv digitalDiseño de antena logaritmica periodica para tv digital
Diseño de antena logaritmica periodica para tv digital
 

Similar a Machine Learning con Tensorflow y R, presentado por RStudio

Capítulo 07 interpretación de resultados
Capítulo 07 interpretación de resultadosCapítulo 07 interpretación de resultados
Capítulo 07 interpretación de resultados
Sergio Valenzuela Mayer
 
Capítulo 07 interpretación de resultados
Capítulo 07 interpretación de resultadosCapítulo 07 interpretación de resultados
Capítulo 07 interpretación de resultados
Sergio Valenzuela Mayer
 
Capítulo 01 conceptos de simulación
Capítulo 01 conceptos de simulaciónCapítulo 01 conceptos de simulación
Capítulo 01 conceptos de simulación
Sergio Valenzuela Mayer
 
TestingAR Meetup VIII - Luis Argerich - Una Breve Introducción a Machine Lear...
TestingAR Meetup VIII - Luis Argerich - Una Breve Introducción a Machine Lear...TestingAR Meetup VIII - Luis Argerich - Una Breve Introducción a Machine Lear...
TestingAR Meetup VIII - Luis Argerich - Una Breve Introducción a Machine Lear...
TestingAR Meetup
 
Tuning fondo-negro-2
Tuning fondo-negro-2Tuning fondo-negro-2
Tuning fondo-negro-2
Felipe Ciau Cante
 
5.instrucciones de control en java parte2
5.instrucciones de control en java parte25.instrucciones de control en java parte2
5.instrucciones de control en java parte2
Ramiro Estigarribia Canese
 
10.-Raptor.pdf
10.-Raptor.pdf10.-Raptor.pdf
10.-Raptor.pdf
ssuser278262
 
¿Cómo mantener tu javascript?: Buenas prácticas
¿Cómo mantener tu javascript?: Buenas prácticas¿Cómo mantener tu javascript?: Buenas prácticas
¿Cómo mantener tu javascript?: Buenas prácticas
jaespinmora
 
Javascript
JavascriptJavascript
Javascript
Daniel Grippo
 
Bases de Datos en Java - Intro a JDBC
Bases de Datos en Java - Intro a JDBCBases de Datos en Java - Intro a JDBC
Bases de Datos en Java - Intro a JDBC
Carlos Hernando
 
Microsoft Reactor - Creando un modelo de Regresión con Azure Machine Learnin...
Microsoft Reactor - Creando un modelo de Regresión con Azure Machine Learnin...Microsoft Reactor - Creando un modelo de Regresión con Azure Machine Learnin...
Microsoft Reactor - Creando un modelo de Regresión con Azure Machine Learnin...
Luis775803
 
Texto Paralelo.pptx
Texto Paralelo.pptxTexto Paralelo.pptx
Texto Paralelo.pptx
ANGELRAULABILIOCABRE
 
Ciclos Java - NetsBeans - Algoritmia
Ciclos Java - NetsBeans - AlgoritmiaCiclos Java - NetsBeans - Algoritmia
Ciclos Java - NetsBeans - Algoritmia
Daniel Gómez
 
MyBatis como alternativa a Hibernate
MyBatis como alternativa a HibernateMyBatis como alternativa a Hibernate
MyBatis como alternativa a Hibernate
Rubén Aguilera
 
Matlab (1)
Matlab (1)Matlab (1)
Matlab (1)
numpad
 
Matlab
MatlabMatlab
Matlab
ford81
 
5.instrucciones de control en c++ parte 2
5.instrucciones de control en c++  parte 25.instrucciones de control en c++  parte 2
5.instrucciones de control en c++ parte 2
Ramiro Estigarribia Canese
 
¿En qué la estamos regando en pruebas de software?
¿En qué la estamos regando en pruebas de software?¿En qué la estamos regando en pruebas de software?
¿En qué la estamos regando en pruebas de software?
Agustin Ramos
 
Argentesting 2019 - Machine learning en testing priorizacion de casos de pr...
Argentesting 2019 - Machine learning en testing   priorizacion de casos de pr...Argentesting 2019 - Machine learning en testing   priorizacion de casos de pr...
Argentesting 2019 - Machine learning en testing priorizacion de casos de pr...
Argentesting
 
Insight Brou 2009 11 Encuentro Usr Rational Gur07
Insight Brou 2009 11   Encuentro Usr Rational Gur07Insight Brou 2009 11   Encuentro Usr Rational Gur07
Insight Brou 2009 11 Encuentro Usr Rational Gur07
Irene Pazos Viana
 

Similar a Machine Learning con Tensorflow y R, presentado por RStudio (20)

Capítulo 07 interpretación de resultados
Capítulo 07 interpretación de resultadosCapítulo 07 interpretación de resultados
Capítulo 07 interpretación de resultados
 
Capítulo 07 interpretación de resultados
Capítulo 07 interpretación de resultadosCapítulo 07 interpretación de resultados
Capítulo 07 interpretación de resultados
 
Capítulo 01 conceptos de simulación
Capítulo 01 conceptos de simulaciónCapítulo 01 conceptos de simulación
Capítulo 01 conceptos de simulación
 
TestingAR Meetup VIII - Luis Argerich - Una Breve Introducción a Machine Lear...
TestingAR Meetup VIII - Luis Argerich - Una Breve Introducción a Machine Lear...TestingAR Meetup VIII - Luis Argerich - Una Breve Introducción a Machine Lear...
TestingAR Meetup VIII - Luis Argerich - Una Breve Introducción a Machine Lear...
 
Tuning fondo-negro-2
Tuning fondo-negro-2Tuning fondo-negro-2
Tuning fondo-negro-2
 
5.instrucciones de control en java parte2
5.instrucciones de control en java parte25.instrucciones de control en java parte2
5.instrucciones de control en java parte2
 
10.-Raptor.pdf
10.-Raptor.pdf10.-Raptor.pdf
10.-Raptor.pdf
 
¿Cómo mantener tu javascript?: Buenas prácticas
¿Cómo mantener tu javascript?: Buenas prácticas¿Cómo mantener tu javascript?: Buenas prácticas
¿Cómo mantener tu javascript?: Buenas prácticas
 
Javascript
JavascriptJavascript
Javascript
 
Bases de Datos en Java - Intro a JDBC
Bases de Datos en Java - Intro a JDBCBases de Datos en Java - Intro a JDBC
Bases de Datos en Java - Intro a JDBC
 
Microsoft Reactor - Creando un modelo de Regresión con Azure Machine Learnin...
Microsoft Reactor - Creando un modelo de Regresión con Azure Machine Learnin...Microsoft Reactor - Creando un modelo de Regresión con Azure Machine Learnin...
Microsoft Reactor - Creando un modelo de Regresión con Azure Machine Learnin...
 
Texto Paralelo.pptx
Texto Paralelo.pptxTexto Paralelo.pptx
Texto Paralelo.pptx
 
Ciclos Java - NetsBeans - Algoritmia
Ciclos Java - NetsBeans - AlgoritmiaCiclos Java - NetsBeans - Algoritmia
Ciclos Java - NetsBeans - Algoritmia
 
MyBatis como alternativa a Hibernate
MyBatis como alternativa a HibernateMyBatis como alternativa a Hibernate
MyBatis como alternativa a Hibernate
 
Matlab (1)
Matlab (1)Matlab (1)
Matlab (1)
 
Matlab
MatlabMatlab
Matlab
 
5.instrucciones de control en c++ parte 2
5.instrucciones de control en c++  parte 25.instrucciones de control en c++  parte 2
5.instrucciones de control en c++ parte 2
 
¿En qué la estamos regando en pruebas de software?
¿En qué la estamos regando en pruebas de software?¿En qué la estamos regando en pruebas de software?
¿En qué la estamos regando en pruebas de software?
 
Argentesting 2019 - Machine learning en testing priorizacion de casos de pr...
Argentesting 2019 - Machine learning en testing   priorizacion de casos de pr...Argentesting 2019 - Machine learning en testing   priorizacion de casos de pr...
Argentesting 2019 - Machine learning en testing priorizacion de casos de pr...
 
Insight Brou 2009 11 Encuentro Usr Rational Gur07
Insight Brou 2009 11   Encuentro Usr Rational Gur07Insight Brou 2009 11   Encuentro Usr Rational Gur07
Insight Brou 2009 11 Encuentro Usr Rational Gur07
 

Más de Software Guru

Hola Mundo del Internet de las Cosas
Hola Mundo del Internet de las CosasHola Mundo del Internet de las Cosas
Hola Mundo del Internet de las Cosas
Software Guru
 
Estructuras de datos avanzadas: Casos de uso reales
Estructuras de datos avanzadas: Casos de uso realesEstructuras de datos avanzadas: Casos de uso reales
Estructuras de datos avanzadas: Casos de uso reales
Software Guru
 
Building bias-aware environments
Building bias-aware environmentsBuilding bias-aware environments
Building bias-aware environments
Software Guru
 
El secreto para ser un desarrollador Senior
El secreto para ser un desarrollador SeniorEl secreto para ser un desarrollador Senior
El secreto para ser un desarrollador Senior
Software Guru
 
Cómo encontrar el trabajo remoto ideal
Cómo encontrar el trabajo remoto idealCómo encontrar el trabajo remoto ideal
Cómo encontrar el trabajo remoto ideal
Software Guru
 
Automatizando ideas con Apache Airflow
Automatizando ideas con Apache AirflowAutomatizando ideas con Apache Airflow
Automatizando ideas con Apache Airflow
Software Guru
 
How thick data can improve big data analysis for business:
How thick data can improve big data analysis for business:How thick data can improve big data analysis for business:
How thick data can improve big data analysis for business:
Software Guru
 
Introducción al machine learning
Introducción al machine learningIntroducción al machine learning
Introducción al machine learning
Software Guru
 
Democratizando el uso de CoDi
Democratizando el uso de CoDiDemocratizando el uso de CoDi
Democratizando el uso de CoDi
Software Guru
 
Gestionando la felicidad de los equipos con Management 3.0
Gestionando la felicidad de los equipos con Management 3.0Gestionando la felicidad de los equipos con Management 3.0
Gestionando la felicidad de los equipos con Management 3.0
Software Guru
 
Taller: Creación de Componentes Web re-usables con StencilJS
Taller: Creación de Componentes Web re-usables con StencilJSTaller: Creación de Componentes Web re-usables con StencilJS
Taller: Creación de Componentes Web re-usables con StencilJS
Software Guru
 
El camino del full stack developer (o como hacemos en SERTI para que no solo ...
El camino del full stack developer (o como hacemos en SERTI para que no solo ...El camino del full stack developer (o como hacemos en SERTI para que no solo ...
El camino del full stack developer (o como hacemos en SERTI para que no solo ...
Software Guru
 
¿Qué significa ser un programador en Bitso?
¿Qué significa ser un programador en Bitso?¿Qué significa ser un programador en Bitso?
¿Qué significa ser un programador en Bitso?
Software Guru
 
Colaboración efectiva entre desarrolladores del cliente y tu equipo.
Colaboración efectiva entre desarrolladores del cliente y tu equipo.Colaboración efectiva entre desarrolladores del cliente y tu equipo.
Colaboración efectiva entre desarrolladores del cliente y tu equipo.
Software Guru
 
Pruebas de integración con Docker en Azure DevOps
Pruebas de integración con Docker en Azure DevOpsPruebas de integración con Docker en Azure DevOps
Pruebas de integración con Docker en Azure DevOps
Software Guru
 
Elixir + Elm: Usando lenguajes funcionales en servicios productivos
Elixir + Elm: Usando lenguajes funcionales en servicios productivosElixir + Elm: Usando lenguajes funcionales en servicios productivos
Elixir + Elm: Usando lenguajes funcionales en servicios productivos
Software Guru
 
Así publicamos las apps de Spotify sin stress
Así publicamos las apps de Spotify sin stressAsí publicamos las apps de Spotify sin stress
Así publicamos las apps de Spotify sin stress
Software Guru
 
Achieving Your Goals: 5 Tips to successfully achieve your goals
Achieving Your Goals: 5 Tips to successfully achieve your goalsAchieving Your Goals: 5 Tips to successfully achieve your goals
Achieving Your Goals: 5 Tips to successfully achieve your goals
Software Guru
 
Acciones de comunidades tech en tiempos del Covid19
Acciones de comunidades tech en tiempos del Covid19Acciones de comunidades tech en tiempos del Covid19
Acciones de comunidades tech en tiempos del Covid19
Software Guru
 
De lo operativo a lo estratégico: un modelo de management de diseño
De lo operativo a lo estratégico: un modelo de management de diseñoDe lo operativo a lo estratégico: un modelo de management de diseño
De lo operativo a lo estratégico: un modelo de management de diseño
Software Guru
 

Más de Software Guru (20)

Hola Mundo del Internet de las Cosas
Hola Mundo del Internet de las CosasHola Mundo del Internet de las Cosas
Hola Mundo del Internet de las Cosas
 
Estructuras de datos avanzadas: Casos de uso reales
Estructuras de datos avanzadas: Casos de uso realesEstructuras de datos avanzadas: Casos de uso reales
Estructuras de datos avanzadas: Casos de uso reales
 
Building bias-aware environments
Building bias-aware environmentsBuilding bias-aware environments
Building bias-aware environments
 
El secreto para ser un desarrollador Senior
El secreto para ser un desarrollador SeniorEl secreto para ser un desarrollador Senior
El secreto para ser un desarrollador Senior
 
Cómo encontrar el trabajo remoto ideal
Cómo encontrar el trabajo remoto idealCómo encontrar el trabajo remoto ideal
Cómo encontrar el trabajo remoto ideal
 
Automatizando ideas con Apache Airflow
Automatizando ideas con Apache AirflowAutomatizando ideas con Apache Airflow
Automatizando ideas con Apache Airflow
 
How thick data can improve big data analysis for business:
How thick data can improve big data analysis for business:How thick data can improve big data analysis for business:
How thick data can improve big data analysis for business:
 
Introducción al machine learning
Introducción al machine learningIntroducción al machine learning
Introducción al machine learning
 
Democratizando el uso de CoDi
Democratizando el uso de CoDiDemocratizando el uso de CoDi
Democratizando el uso de CoDi
 
Gestionando la felicidad de los equipos con Management 3.0
Gestionando la felicidad de los equipos con Management 3.0Gestionando la felicidad de los equipos con Management 3.0
Gestionando la felicidad de los equipos con Management 3.0
 
Taller: Creación de Componentes Web re-usables con StencilJS
Taller: Creación de Componentes Web re-usables con StencilJSTaller: Creación de Componentes Web re-usables con StencilJS
Taller: Creación de Componentes Web re-usables con StencilJS
 
El camino del full stack developer (o como hacemos en SERTI para que no solo ...
El camino del full stack developer (o como hacemos en SERTI para que no solo ...El camino del full stack developer (o como hacemos en SERTI para que no solo ...
El camino del full stack developer (o como hacemos en SERTI para que no solo ...
 
¿Qué significa ser un programador en Bitso?
¿Qué significa ser un programador en Bitso?¿Qué significa ser un programador en Bitso?
¿Qué significa ser un programador en Bitso?
 
Colaboración efectiva entre desarrolladores del cliente y tu equipo.
Colaboración efectiva entre desarrolladores del cliente y tu equipo.Colaboración efectiva entre desarrolladores del cliente y tu equipo.
Colaboración efectiva entre desarrolladores del cliente y tu equipo.
 
Pruebas de integración con Docker en Azure DevOps
Pruebas de integración con Docker en Azure DevOpsPruebas de integración con Docker en Azure DevOps
Pruebas de integración con Docker en Azure DevOps
 
Elixir + Elm: Usando lenguajes funcionales en servicios productivos
Elixir + Elm: Usando lenguajes funcionales en servicios productivosElixir + Elm: Usando lenguajes funcionales en servicios productivos
Elixir + Elm: Usando lenguajes funcionales en servicios productivos
 
Así publicamos las apps de Spotify sin stress
Así publicamos las apps de Spotify sin stressAsí publicamos las apps de Spotify sin stress
Así publicamos las apps de Spotify sin stress
 
Achieving Your Goals: 5 Tips to successfully achieve your goals
Achieving Your Goals: 5 Tips to successfully achieve your goalsAchieving Your Goals: 5 Tips to successfully achieve your goals
Achieving Your Goals: 5 Tips to successfully achieve your goals
 
Acciones de comunidades tech en tiempos del Covid19
Acciones de comunidades tech en tiempos del Covid19Acciones de comunidades tech en tiempos del Covid19
Acciones de comunidades tech en tiempos del Covid19
 
De lo operativo a lo estratégico: un modelo de management de diseño
De lo operativo a lo estratégico: un modelo de management de diseñoDe lo operativo a lo estratégico: un modelo de management de diseño
De lo operativo a lo estratégico: un modelo de management de diseño
 

Último

Catalogo Cajas Fuertes BTV Amado Salvador Distribuidor Oficial
Catalogo Cajas Fuertes BTV Amado Salvador Distribuidor OficialCatalogo Cajas Fuertes BTV Amado Salvador Distribuidor Oficial
Catalogo Cajas Fuertes BTV Amado Salvador Distribuidor Oficial
AMADO SALVADOR
 
Computacion cuántica y sus ventajas y desventajas
Computacion cuántica y sus ventajas y desventajasComputacion cuántica y sus ventajas y desventajas
Computacion cuántica y sus ventajas y desventajas
sofiahuarancabellido
 
edublogs info.docx asdasfasfsawqrdqwfqwfqwfq
edublogs info.docx asdasfasfsawqrdqwfqwfqwfqedublogs info.docx asdasfasfsawqrdqwfqwfqwfq
edublogs info.docx asdasfasfsawqrdqwfqwfqwfq
larapalaciosmonzon28
 
SISTESIS RETO4 Grupo4 co-creadores .ppsx
SISTESIS RETO4 Grupo4 co-creadores .ppsxSISTESIS RETO4 Grupo4 co-creadores .ppsx
SISTESIS RETO4 Grupo4 co-creadores .ppsx
tamarita881
 
Informació Projecte Iniciativa TIC SOPRA STERIA.pdf
Informació Projecte Iniciativa TIC SOPRA STERIA.pdfInformació Projecte Iniciativa TIC SOPRA STERIA.pdf
Informació Projecte Iniciativa TIC SOPRA STERIA.pdf
Festibity
 
IA en entornos rurales aplicada a la viticultura
IA en entornos rurales aplicada a la viticulturaIA en entornos rurales aplicada a la viticultura
IA en entornos rurales aplicada a la viticultura
Miguel Rebollo
 
Catalogo Buzones BTV Amado Salvador Distribuidor Oficial Valencia
Catalogo Buzones BTV Amado Salvador Distribuidor Oficial ValenciaCatalogo Buzones BTV Amado Salvador Distribuidor Oficial Valencia
Catalogo Buzones BTV Amado Salvador Distribuidor Oficial Valencia
AMADO SALVADOR
 
Catalogo General Electrodomesticos Teka Distribuidor Oficial Amado Salvador V...
Catalogo General Electrodomesticos Teka Distribuidor Oficial Amado Salvador V...Catalogo General Electrodomesticos Teka Distribuidor Oficial Amado Salvador V...
Catalogo General Electrodomesticos Teka Distribuidor Oficial Amado Salvador V...
AMADO SALVADOR
 
Informació Projecte Iniciativa TIC HPE.pdf
Informació Projecte Iniciativa TIC HPE.pdfInformació Projecte Iniciativa TIC HPE.pdf
Informació Projecte Iniciativa TIC HPE.pdf
Festibity
 
herramientas de sitio web 3.0 2024
herramientas de sitio web 3.0  2024herramientas de sitio web 3.0  2024
herramientas de sitio web 3.0 2024
julio05042006
 
Actividad Conceptos básicos de programación.pdf
Actividad Conceptos básicos de programación.pdfActividad Conceptos básicos de programación.pdf
Actividad Conceptos básicos de programación.pdf
NajwaNimri1
 
Inteligencia Artificial
Inteligencia ArtificialInteligencia Artificial
Inteligencia Artificial
YashiraPaye
 
Refrigeradores Samsung Modo Test y Forzado
Refrigeradores Samsung Modo Test y ForzadoRefrigeradores Samsung Modo Test y Forzado
Refrigeradores Samsung Modo Test y Forzado
NicandroMartinez2
 
Presentación de Tic en educación y sobre blogger
Presentación de Tic en educación y sobre bloggerPresentación de Tic en educación y sobre blogger
Presentación de Tic en educación y sobre blogger
larapalaciosmonzon28
 
HERRAMIENTAS WEB--------------------.pptx
HERRAMIENTAS WEB--------------------.pptxHERRAMIENTAS WEB--------------------.pptx
HERRAMIENTAS WEB--------------------.pptx
maralache30
 
Second Life, informe de actividad del maestro Tapia
Second Life, informe de actividad del maestro TapiaSecond Life, informe de actividad del maestro Tapia
Second Life, informe de actividad del maestro Tapia
al050121024
 
REVISTA TECNOLOGICA PARA EL DESARROLLO HUMANO
REVISTA TECNOLOGICA PARA EL DESARROLLO HUMANOREVISTA TECNOLOGICA PARA EL DESARROLLO HUMANO
REVISTA TECNOLOGICA PARA EL DESARROLLO HUMANO
gisellearanguren1
 
modelosdeteclados-230114024527-aa2c9553.pptx
modelosdeteclados-230114024527-aa2c9553.pptxmodelosdeteclados-230114024527-aa2c9553.pptx
modelosdeteclados-230114024527-aa2c9553.pptx
evelinglilibethpeafi
 
Manual de Soporte y mantenimiento de equipo de cómputos
Manual de Soporte y mantenimiento de equipo de cómputosManual de Soporte y mantenimiento de equipo de cómputos
Manual de Soporte y mantenimiento de equipo de cómputos
cbtechchihuahua
 
Nuevos tiempos, nuevos espacios.docxdsdsad
Nuevos tiempos, nuevos espacios.docxdsdsadNuevos tiempos, nuevos espacios.docxdsdsad
Nuevos tiempos, nuevos espacios.docxdsdsad
larapalaciosmonzon28
 

Último (20)

Catalogo Cajas Fuertes BTV Amado Salvador Distribuidor Oficial
Catalogo Cajas Fuertes BTV Amado Salvador Distribuidor OficialCatalogo Cajas Fuertes BTV Amado Salvador Distribuidor Oficial
Catalogo Cajas Fuertes BTV Amado Salvador Distribuidor Oficial
 
Computacion cuántica y sus ventajas y desventajas
Computacion cuántica y sus ventajas y desventajasComputacion cuántica y sus ventajas y desventajas
Computacion cuántica y sus ventajas y desventajas
 
edublogs info.docx asdasfasfsawqrdqwfqwfqwfq
edublogs info.docx asdasfasfsawqrdqwfqwfqwfqedublogs info.docx asdasfasfsawqrdqwfqwfqwfq
edublogs info.docx asdasfasfsawqrdqwfqwfqwfq
 
SISTESIS RETO4 Grupo4 co-creadores .ppsx
SISTESIS RETO4 Grupo4 co-creadores .ppsxSISTESIS RETO4 Grupo4 co-creadores .ppsx
SISTESIS RETO4 Grupo4 co-creadores .ppsx
 
Informació Projecte Iniciativa TIC SOPRA STERIA.pdf
Informació Projecte Iniciativa TIC SOPRA STERIA.pdfInformació Projecte Iniciativa TIC SOPRA STERIA.pdf
Informació Projecte Iniciativa TIC SOPRA STERIA.pdf
 
IA en entornos rurales aplicada a la viticultura
IA en entornos rurales aplicada a la viticulturaIA en entornos rurales aplicada a la viticultura
IA en entornos rurales aplicada a la viticultura
 
Catalogo Buzones BTV Amado Salvador Distribuidor Oficial Valencia
Catalogo Buzones BTV Amado Salvador Distribuidor Oficial ValenciaCatalogo Buzones BTV Amado Salvador Distribuidor Oficial Valencia
Catalogo Buzones BTV Amado Salvador Distribuidor Oficial Valencia
 
Catalogo General Electrodomesticos Teka Distribuidor Oficial Amado Salvador V...
Catalogo General Electrodomesticos Teka Distribuidor Oficial Amado Salvador V...Catalogo General Electrodomesticos Teka Distribuidor Oficial Amado Salvador V...
Catalogo General Electrodomesticos Teka Distribuidor Oficial Amado Salvador V...
 
Informació Projecte Iniciativa TIC HPE.pdf
Informació Projecte Iniciativa TIC HPE.pdfInformació Projecte Iniciativa TIC HPE.pdf
Informació Projecte Iniciativa TIC HPE.pdf
 
herramientas de sitio web 3.0 2024
herramientas de sitio web 3.0  2024herramientas de sitio web 3.0  2024
herramientas de sitio web 3.0 2024
 
Actividad Conceptos básicos de programación.pdf
Actividad Conceptos básicos de programación.pdfActividad Conceptos básicos de programación.pdf
Actividad Conceptos básicos de programación.pdf
 
Inteligencia Artificial
Inteligencia ArtificialInteligencia Artificial
Inteligencia Artificial
 
Refrigeradores Samsung Modo Test y Forzado
Refrigeradores Samsung Modo Test y ForzadoRefrigeradores Samsung Modo Test y Forzado
Refrigeradores Samsung Modo Test y Forzado
 
Presentación de Tic en educación y sobre blogger
Presentación de Tic en educación y sobre bloggerPresentación de Tic en educación y sobre blogger
Presentación de Tic en educación y sobre blogger
 
HERRAMIENTAS WEB--------------------.pptx
HERRAMIENTAS WEB--------------------.pptxHERRAMIENTAS WEB--------------------.pptx
HERRAMIENTAS WEB--------------------.pptx
 
Second Life, informe de actividad del maestro Tapia
Second Life, informe de actividad del maestro TapiaSecond Life, informe de actividad del maestro Tapia
Second Life, informe de actividad del maestro Tapia
 
REVISTA TECNOLOGICA PARA EL DESARROLLO HUMANO
REVISTA TECNOLOGICA PARA EL DESARROLLO HUMANOREVISTA TECNOLOGICA PARA EL DESARROLLO HUMANO
REVISTA TECNOLOGICA PARA EL DESARROLLO HUMANO
 
modelosdeteclados-230114024527-aa2c9553.pptx
modelosdeteclados-230114024527-aa2c9553.pptxmodelosdeteclados-230114024527-aa2c9553.pptx
modelosdeteclados-230114024527-aa2c9553.pptx
 
Manual de Soporte y mantenimiento de equipo de cómputos
Manual de Soporte y mantenimiento de equipo de cómputosManual de Soporte y mantenimiento de equipo de cómputos
Manual de Soporte y mantenimiento de equipo de cómputos
 
Nuevos tiempos, nuevos espacios.docxdsdsad
Nuevos tiempos, nuevos espacios.docxdsdsadNuevos tiempos, nuevos espacios.docxdsdsad
Nuevos tiempos, nuevos espacios.docxdsdsad
 

Machine Learning con Tensorflow y R, presentado por RStudio

  • 1. Aprendizaje Automático con Tensorflow y R Edgar Ruiz edgararuiz theotheredgar edgararuiz
  • 2. Tensorflow ❏ Aprendizaje automático y profundo. ❏ Computación de alto desempeño ❏ Librería de código abierto ❏ Variedad de plataformas y dispositivos Fuente: https://www.tensorflow.org/
  • 3. Keras ❏ Facilita el desarrollo de modelos ❏ Se integra con Tensorflow y otros ❏ El mismo código funciona en CPU o GPU ❏ Redes convolucionales y recurrentes Fuente: https://github.com/rstudio/keras
  • 4. AccesarTF Fácil integración de R, Tensorflow y Keras Accesar Keras
  • 6. Aprendizaje Automático es de varios pasos Leér datos Pre-procesar datos Entrenar modelo Validar modelo Compartir resultados
  • 7. Entrenar el modelo es solo un paso... Leér datos Pre-procesar datos Entrenar modelo Validar modelo Compartir resultados
  • 8. R se especializa en todos los pasos Leér datos Pre-procesar datos Entrenar modelo Validar modelo Compartir resultados
  • 11. Análisis original Ejemplo basado en el artículo: “Deep Learning With Keras To Predict Customer Churn”, publicado por Matt Dancho. https://blogs.rstudio.com/tensorflow/posts/2018-01-11-keras-customer-churn/
  • 12. Objetivo Analizar datos de pérdida de clientes de una compañía de telecomunicaciones con R, Keras y Tensorflow.
  • 13. Instale TF y Keras desde R install.packages("tensorflow") install.packages("keras") library(keras) install_tensorflow() install_keras() Instale los paquetes de R Cargue el paquete keras Instalar TF y Keras
  • 14. Paquetes de R para cada paso
  • 16. Leér datos # A tibble: 7,043 x 21 customerID gender SeniorCitizen Partner Dependents tenure PhoneService <chr> <chr> <dbl> <chr> <chr> <dbl> <chr> 1 7590-VHVEG Female 0 Yes No 1 No 2 5575-GNVDE Male 0 No No 34 Yes 3 3668-QPYBK Male 0 No No 2 Yes 4 7795-CFOCW Male 0 No No 45 No 5 9237-HQITU Female 0 No No 2 Yes 6 9305-CDSKC Female 0 No No 8 Yes 7 1452-KIOVK Male 0 No Yes 22 Yes 8 6713-OKOMC Female 0 No No 10 No 9 7892-POOKP Female 0 Yes No 28 Yes 10 6388-TABGU Male 0 No Yes 62 Yes # ... with 7,033 more rows, and 14 more variables: MultipleLines <chr> datos_perdimiento <- read_csv("customer_churn.csv")
  • 18. Pre-procesar - Muestra de datos separa_datos <- initial_split( datos_perdimiento, prop = 0.3 ) tbl_entrenar <- training(separa_datos) tbl_prueba <- testing(separa_datos)Prueba 70% Entrenar 30% Datos
  • 19. Pre-procesar - La receta! receta <- tbl_entrenar %>% recipe(Churn ~ .) %>% step_rm(customerID) %>% step_naomit(all_outcomes(), all_predictors()) %>% step_discretize(tenure,options = list(cuts = 6)) %>% step_log(TotalCharges) %>% step_mutate(Churn = ifelse(Churn=="Yes", 1, 0)) %>% step_dummy(all_nominal(), -all_outcomes()) %>% step_center(all_predictors(), -all_outcomes()) %>% step_scale(all_predictors(), -all_outcomes()) %>% prep() Remueve columnas Omitir NAs Partir en categorías Conversión logarítmica Conversión lógica Variables ficticias Centrar valores Escalar valores
  • 20. Pre-procesar - “Cocinar” receta baked_test <- bake(receta, tbl_prueba) x_tbl_prueba <- baked_test %>% select(-Churn) %>% as.matrix() y_vec_prueba <- baked_test %>% select(Churn) %>% pull() x_tbl_entrenar <- receta %>% juice(all_predictors(), composition = "matrix") y_vec_entrenar <- receta %>% juice(all_outcomes()) %>% pull() La muestra de entrenamiento es extraída La porción para prueba is procesada
  • 22. Entrenar el modelo - Preparación model_keras <- keras_model_sequential() %>% layer_dense(units = 16, kernel_initializer = "uniform", activation = "relu", input_shape = ncol(x_tbl_entrenar)) %>% layer_dropout(rate = 0.1) %>% layer_dense(units = 16, kernel_initializer = " uniform", activation = "relu") %>% layer_dropout(rate = 0.1) %>% layer_dense(units = 1, kernel_initializer = "uniform", activation = "sigmoid") %>% compile(optimizer = 'adam', loss = 'binary_crossentropy', metrics = c('accuracy')) Capa densa Capa de pérdida Capa densa Capa de pérdida Capa densa Compilar
  • 23. Entrenar el modelo - Entrenar el modelo history <- fit( object = model_keras, x = x_tbl_entrenar, y = y_vec_entrenar, batch_size = 50, epochs = 35, validation_split = 0.30, verbose = 0 )
  • 24. yhat_keras_class_vec <- model_keras %>% predict_classes(x_tbl_prueba) %>% as.factor() %>% fct_recode(yes = "1", no = "0") yhat_keras_prob_vec <- model_keras %>% predict_proba(x_tbl_prueba) %>% as.vector() test_truth <- y_vec_prueba %>% as.factor() %>% fct_recode(yes = "1", no = "0") estimates_keras_tbl <- tibble( truth = test_truth, estimate = yhat_keras_class_vec, class_prob = yhat_keras_prob_vec) estimates_keras_tbl Entrenar el modelo - Predicciones # A tibble: 4,920 x 3 truth estimate class_prob <fct> <fct> <dbl> 1 no yes 0.765 2 yes no 0.368 3 yes yes 0.749 4 yes yes 0.782 5 no yes 0.565 6 no no 0.106 7 yes yes 0.579 8 no no 0.00366 9 no no 0.221 10 no no 0.0118 # ... with 4,910 more rows
  • 26. Validar modelo - Mediciones conf_mat(estimates_keras_tbl, truth, estimate) metrics(estimates_keras_tbl, truth, estimate) roc_auc(estimates_keras_tbl, truth, class_prob) estimates_keras_tbl %>% precision(truth, estimate) %>% bind_rows(estimates_keras_tbl %>% recall(truth, estimate)) f_meas(estimates_keras_tbl, truth, estimate, beta = 1) Truth Prediction no yes no 3205 547 yes 420 748 # A tibble: 2 x 3 .metric .estimator .estimate <chr> <chr> <dbl> 1 accuracy binary 0.803 2 kap binary 0.477 # A tibble: 1 x 3 .metric .estimator .estimate <chr> <chr> <dbl> 1 roc_auc binary 0.843 # A tibble: 2 x 3 .metric .estimator .estimate <chr> <chr> <dbl> 1 precision binary 0.640 2 recall binary 0.578 # A tibble: 1 x 3 .metric .estimator .estimate <chr> <chr> <dbl> 1 f_meas binary 0.607
  • 27. Validar modelo - Valores significativos explainer <- x_tbl_entrenar %>% as_tibble() %>% lime(model_keras, bin_continuous = FALSE) explanation <- x_tbl_entrenar %>% as.data.frame() %>% head(40) %>% lime::explain( explainer = explainer, n_labels = 1, N_features = 4, kernel_width = 0.5)
  • 30. Compartir resultados - Aplicación
  • 32. ¡Pruébalo en tu teléfono! rstd.io/clientes