Taller Integrado I
DIPLOMADO EN MANEJO DE ERP
(SAP) Y BIG DATA
Arley Calero Cayopare
Universidad Andres Bello
Docente: Reinel Ruiz.
Contenido
1. Objetivo...................................................................................................................................................................... 4
2. Introducció n................................................................................................................................................................. 4
3. Validació n de la informació n............................................................................................................................5
3.1. Lectura datos, revisió n atributos y formatos.............................................................................................5
3.2. Identificació n de datos nulos.............................................................................................................................7
3.2.1. Grafica 1: datos nulos...................................................................................................................................7
3.3. Imputació n de datos faltantes...........................................................................................................................8
3.4. Aná lisis exploratorio de las variables............................................................................................................8
3.5. Aná lisis de correlaciones de las variables numéricas............................................................................9
3.5.1. grafica 2: Aná lisis de correlació n............................................................................................................9
3.6. Grafico de variables continuas vs variable de predicció n............................................................10
3.6.1 grafica 3: Booking status vs arrival month.......................................................................................10
3.6.2. grafica 4: Booking status vs no of especial requests....................................................................10
3.6.3. grafica 5: Booking status vs avg price per room............................................................................11
3.6.4. grafica 6: Booking status vs arrival date...........................................................................................11
3.6.5. grafica 7: Booking status vs Lead time...............................................................................................12
3.6.6. grafica 8: Booking status vs no of week nights..............................................................................12
3.6.7. grafica 9: Booking status vs no of weekend nights.......................................................................13
4. Modelamiento...................................................................................................................................................... 13
4.1. Separació n de las muestras de train y test..............................................................................................13
4.2. Validació n de las variables categoricas en train y test........................................................................14
4.3. Modelo de Regresió n Logística......................................................................................................................14
4.4. SUPORT VECTOR MACHINE............................................................................................................................15
4.5. Random Forest...................................................................................................................................................... 16
4.6. Modelo Á rbol Clasificació n........................................................................................................................17
4.7. Naive Bayes...................................................................................................................................................... 17
5. Evaluació n del modelos y selecció n mejor modelo.............................................................................18
6. Conclusiones......................................................................................................................................................... 18
7. Bibliografía............................................................................................................................................................ 18
Taller integrador
1. Objetivo
- Desarrollar un modelo predictivo para predecir clientes que serán considerados buenos
pagadores y malos pagadores para entregarles un crédito. Su trabajo deberá incluir los
siguientes puntos:
2. Introducción
La regresión logística es el conjunto de modelos estadísticos utilizados
cuando se desea conocer la relación entre
Una variable dependiente cualitativa, dicotómica (regresión logística
binaria o binomial) o con más de dos categorías (regresión logística
multinomial).
Una o más variables explicativas independientes,
llamadas covariables, ya sean cualitativas o cuantitativas.
Las covariables cualitativas deben ser dicotómicas, tomando valor 0 para su
ausencia y 1 para su presencia. Si la covariable tuviera más de dos
categorías debemos realizar una transformación de la misma en varias
covariables cualitativas dicotómicas ficticias (variables dummy). Al hacer
esta transformación cada categoría de la variable entraría en el modelo de
forma individual.
Los modelos de regresión logística tienen tres finalidades:
Cuantificar la importancia de la relación existente entre cada una de
las covariables y la variable dependiente.
Clarificar la existencia de interacción y confusión entre covariables
respecto a la variable dependiente (es decir, los odds ratio para cada
covariable).
Clasificar individuos dentro de las categorías (presente/ausente) de la
variable dependiente.
Por tanto, el objetivo de la regresión logística no es, como en regresión
lineal, predecir el valor de la variable Y a partir de una o varias variables
predictoras (Xs), sino que queremos predecir la probabilidad de que
ocurra Y conocidos los valores de las variables Xs.
3. Validación de la información
3.1. Lectura datos, revisión atributos y formatos
Se realiza la lectura de los datos,se revisa la estructura de los datos, tipo de datos y se
realizan las transformaciones necesarias para preparar los datos.
tibble [36,275 × 18] (S3: tbl_df/tbl/[Link])
$ no_of_adults : num [1:36275] 2 2 1 2 2 2 2 2 3 2 ...
$ no_of_children : num [1:36275] 0 0 0 0 0 0 0 0 0 0 ...
$ no_of_weekend_nights : num [1:36275] 1 2 2 0 1 0 1 1 0 0 ...
$ no_of_week_nights : num [1:36275] 2 3 1 2 1 2 3 3 4 5 ...
$ type_of_meal_plan : chr [1:36275] "Meal_plan1" "Not_selected" "Meal_plan1" "Meal_plan1" ...
$ required_car_parking_space : num [1:36275] 0 0 0 0 0 0 0 0 0 0 ...
$ room_type_reserved : chr [1:36275] "Room_Type 1" "Room_Type 1" "Room_Type 1"
"Room_Type 1" ...
$ lead_time : num [1:36275] 224 5 1 211 48 346 34 83 121 44 ...
$ arrival_year : num [1:36275] 2017 2018 2018 2018 2018 ...
$ arrival_month : num [1:36275] 10 11 2 5 4 9 10 12 7 10 ...
$ arrival_date : num [1:36275] 2 6 28 20 11 13 15 26 6 18 ...
$ market_segment_type : chr [1:36275] "Offline" "Online" "Online" "Online" ...
$ repeated_guest : num [1:36275] 0 0 0 0 0 0 0 0 0 0 ...
$ no_of_previous_cancellations : num [1:36275] 0 0 0 0 0 0 0 0 0 0 ...
$ no_of_previous_bookings_not_canceled: num [1:36275] 0 0 0 0 0 0 0 0 0 0 ...
$ avg_price_per_room : num [1:36275] 65 106.7 60 100 94.5 ...
$ no_of_special_requests : num [1:36275] 0 1 0 0 0 1 1 1 1 3 ...
$ booking_status : num [1:36275] 1 1 0 0 0 0 1 1 1 1 ...
tibble [36,275 × 18] (S3: tbl_df/tbl/[Link])
$ no_of_adults : num [1:36275] 2 2 1 2 2 2 2 2 3 2 ...
$ no_of_children : num [1:36275] 0 0 0 0 0 0 0 0 0 0 ...
$ no_of_weekend_nights : num [1:36275] 1 2 2 0 1 0 1 1 0 0 ...
$ no_of_week_nights : num [1:36275] 2 3 1 2 1 2 3 3 4 5 ...
$ type_of_meal_plan : Factor w/ 3 levels "Meal_plan1","Meal_plan2_Meal_plan3",..: 1 3 1 1 3 2 1
1 1 1 ...
$ required_car_parking_space : num [1:36275] 0 0 0 0 0 0 0 0 0 0 ...
$ room_type_reserved : Factor w/ 7 levels "Room_Type 1",..: 1 1 1 1 1 1 1 4 1 4 ...
$ lead_time : num [1:36275] 224 5 1 211 48 346 34 83 121 44 ...
$ arrival_year : num [1:36275] 2017 2018 2018 2018 2018 ...
$ arrival_month : num [1:36275] 10 11 2 5 4 9 10 12 7 10 ...
$ arrival_date : num [1:36275] 2 6 28 20 11 13 15 26 6 18 ...
$ market_segment_type : Factor w/ 5 levels "Aviation","Complementary",..: 4 5 5 5 5 5 5 5 4 5 ...
$ repeated_guest : num [1:36275] 0 0 0 0 0 0 0 0 0 0 ...
$ no_of_previous_cancellations : num [1:36275] 0 0 0 0 0 0 0 0 0 0 ...
$ no_of_previous_bookings_not_canceled: num [1:36275] 0 0 0 0 0 0 0 0 0 0 ...
$ avg_price_per_room : num [1:36275] 65 106.7 60 100 94.5 ...
$ no_of_special_requests : num [1:36275] 0 1 0 0 0 1 1 1 1 3 ...
$ booking_status : Factor w/ 2 levels "0","1": 2 2 1 1 1 1 2 2 2 2 ...
no_of_adults no_of_children no_of_weekend_nights no_of_week_nights type_of_meal_plan
required_car_parking_space
Min. :0.000 Min. : 0.0000 Min. :0.0000 Min. : 0.000 Meal_plan1 :27835 Min. :0.00000
1st Qu.:2.000 1st Qu.: 0.0000 1st Qu.:0.0000 1st Qu.: 1.000 Meal_plan2_Meal_plan3: 3310 1st
Qu.:0.00000
Median :2.000 Median : 0.0000 Median :1.0000 Median : 2.000 Not_selected : 5130
Median :0.00000
Mean :1.845 Mean : 0.1053 Mean :0.8107 Mean : 2.204 Mean :0.03099
3rd Qu.:2.000 3rd Qu.: 0.0000 3rd Qu.:2.0000 3rd Qu.: 3.000 3rd Qu.:0.00000
Max. :4.000 Max. :10.0000 Max. :7.0000 Max. :17.000 Max. :1.00000
room_type_reserved lead_time arrival_year arrival_month arrival_date market_segment_type
repeated_guest
Room_Type 1:28129 Min. : 0.00 Min. :2017 Min. : 1.000 Min. : 1.0 Aviation : 125
Min. :0.00000
Room_Type 4: 6057 1st Qu.: 17.00 1st Qu.:2018 1st Qu.: 5.000 1st Qu.: 8.0 Complementary: 391 1st
Qu.:0.00000
Room_Type 6: 966 Median : 57.00 Median :2018 Median : 8.000 Median :16.0 Corporate : 2017
Median :0.00000
Room_Type 2: 692 Mean : 85.23 Mean :2018 Mean : 7.424 Mean :15.6 Offline :10528 Mean
:0.02564
Room_Type 5: 265 3rd Qu.:126.00 3rd Qu.:2018 3rd Qu.:10.000 3rd Qu.:23.0 Online :23213 3rd
Qu.:0.00000
(Other) : 165 Max. :443.00 Max. :2018 Max. :12.000 Max. :31.0 NA's : 1 Max. :1.00000
NA's : 1 NA's :1
no_of_previous_cancellations no_of_previous_bookings_not_canceled avg_price_per_room
no_of_special_requests booking_status
Min. : 0.00000 Min. : 0.0000 Min. : 0.00 Min. :0.0000 0:11885
1st Qu.: 0.00000 1st Qu.: 0.0000 1st Qu.: 80.30 1st Qu.:0.0000 1:24390
Median : 0.00000 Median : 0.0000 Median : 99.45 Median :0.0000
Mean : 0.02335 Mean : 0.1534 Mean :103.42 Mean :0.6197
3rd Qu.: 0.00000 3rd Qu.: 0.0000 3rd Qu.:120.00 3rd Qu.:1.0000
Max. :13.00000 Max. :58.0000 Max. :540.00 Max. :5.0000
NA's :1
no_of_adults no_of_weekend_nights no_of_week_nights type_of_meal_plan lead_time
arrival_year arrival_month
Min. :0.000 Min. :0.0000 Min. : 0.000 Meal_plan1 :27835 Min. : 0.00 Min. :2017 Min. :
1.000
1st Qu.:2.000 1st Qu.:0.0000 1st Qu.: 1.000 Meal_plan2_Meal_plan3: 3310 1st Qu.: 17.00 1st
Qu.:2018 1st Qu.: 5.000
Median :2.000 Median :1.0000 Median : 2.000 Not_selected : 5130 Median : 57.00
Median :2018 Median : 8.000
Mean :1.845 Mean :0.8107 Mean : 2.204 Mean : 85.23 Mean :2018 Mean :
7.424
3rd Qu.:2.000 3rd Qu.:2.0000 3rd Qu.: 3.000 3rd Qu.:126.00 3rd Qu.:2018 3rd
Qu.:10.000
Max. :4.000 Max. :7.0000 Max. :17.000 Max. :443.00 Max. :2018
Max. :12.000
NA's :1
arrival_date market_segment_type avg_price_per_room no_of_special_requests booking_status
Min. : 1.0 Aviation : 125 Min. : 0.00 Min. :0.0000 0:11885
1st Qu.: 8.0 Complementary: 391 1st Qu.: 80.30 1st Qu.:0.0000 1:24390
Median :16.0 Corporate : 2017 Median : 99.45 Median :0.0000
Mean :15.6 Offline :10528 Mean :103.42 Mean :0.6197
3rd Qu.:23.0 Online :23213 3rd Qu.:120.00 3rd Qu.:1.0000
Max. :31.0 NA's : 1 Max. :540.00 Max. :5.0000
NA's :1
3.2. Identificación de datos nulos
Es necesario identificar las variables que tienen datos nulos
Para obtener los porcentajes de datos nulos y gráfico se utiliza la libreria inspectdf
3.2.1. Grafica 1: datos nulos
3.3. Imputación de datos faltantes
Para realizar la imputación de los datos utilizaremos la libreria mice y el metodo='cart'
3.4. Análisis exploratorio de las variables
Comportamiento de la variable dependiente
0 1
11885 24390
0 1
0.3276361 0.6723639
3.5. Análisis de correlaciones de las variables numéricas
3.5.1. grafica 2: Análisis de correlación
3.6. Grafico de variables continuas vs variable de predicción
3.6.1 grafica 3: Booking status vs arrival month
3.6.2. grafica 4: Booking status vs no of especial requests
3.6.3. grafica 5: Booking status vs avg price per room
3.6.4. grafica 6: Booking status vs arrival date
3.6.5. grafica 7: Booking status vs Lead time
3.6.6. grafica 8: Booking status vs no of week nights
3.6.7. grafica 9: Booking status vs no of weekend nights
4. Modelamiento
4.1. Separación de las muestras de train y test
Se realiza una selección aleatoria de 80% (train) de los datos limpios para realizar el
entrenamiento de los modelos y 20% para realizar el test de los modelos (calidad de
predicción que se utiliza para comparar entre modelos y realizar seleccion del modelo que
entrega un mejor nivel de predicción).
4.2. Validación de las variables categoricas en train y test
Esta validación se realiza para identificar que todas las categorias estan presentes en train
y test, con el fin de no tener problemas en los modelos cuando se realizan las
predicciones.
4.3. Modelo de Regresión Logística
4.4. SUPORT VECTOR MACHINE
4.5. Random Forest
4.6. Modelo Árbol Clasificación
4.7. Naive Bayes
5. Evaluación del modelos y selección mejor modelo
6. Criterio para elegir el modelo
El modelo elegido es el RamdonFores debido a:
El acurracy es superior a los demá s un 90%.
El f, es del 84% superior a los demá s.
Las métricas en general son má s altas comparadas con los demá s modelos.
7. Conclusiones
Del total de reservas (25.965), solo se cancelaron 11,885 (32.76%), mientras que se
confirmaron 24,390 (67.23%).
Según lo abalizado, un número significativo de reservas no tienen noches de fin de semana y
se quedan de 1 a 3 días entre semana. Alternativamente, hay una porción considerable de
reservas que abarcan todo el fin de semana, lo que indica una preferencia por escapadas de
fin de semana más largas.
La mayoría de las reservas consisten en 2 adultos y ningún niño.
La mayoría de los clientes normalmente no tienen solicitudes especiales para sus reservas.
8. Bibliografía
Introducción a la visualización con ggplot2
<[Link]
<[Link]
Análisis exploratorio de datos
<[Link]
Ejemplos de Machine Learning - Clasificación en R
<[Link]
<[Link]