Explorer les Livres électroniques
Catégories
Explorer les Livres audio
Catégories
Explorer les Magazines
Catégories
Explorer les Documents
Catégories
Projet sous R
Prediction de l'annulation d'une réservation dans un hôtel
à l'aide de la méthode de classication naïve bayèsienne
Consignes générales :
1. Le mini-projet peut être réalisé en monome ou en binôme
2. Deux livrables à rendre :
• Le rapport contenant les réponses aux questions, nommé nom-prenom-rapport.pdf
• Un chier script sous R qui contient le code à générer demandé dans certaines questions.
ce chier doit être nommé nom-prenom-Rcode.R. Le code doit être bien documenté.
3. Ne pas hésiter à utiliser l'aide en ligne de R.
4. La notation prendra en compte la clarté des réponses
5. Date limite pour la remise du TP est : 08 Décembre 2020
1 Problématique
Dans les industries liées au tourisme et aux voyages, la plupart des recherches sur les problèmes
de prévision et de prédiction de la demande en matière de gestion des recettes utilisent des don-
nées provenant de l'industrie aéronautique, dans le format connu sous le nom de Passenger Name
Record (PNR). Il s'agit d'un format développé par l'industrie aéronautique. Cependant, les autres
secteurs du tourisme et des voyages, comme l'hôtellerie, les croisières, les parcs d'attractions, etc.,
ont des exigences et des particularités diérentes qui ne peuvent être pleinement explorées sans les
données spéciques de l'industrie. Par conséquent, deux ensembles de données sur les hôtels avec
des données sur la demande sont partagés pour aider à surmonter cette limitation.
L'article de Antonio et al. (2019) 1 , joint aux données de ce mini-projet, décrit les deux ensembles
de données contenant des données sur la demande des hôtels. L'un des hôtels (H1) est un resort
hotel et l'autre est un city hotel (H2). Les deux hôtels ont un classement ociel de 4 étoiles.
Les deux ensembles de données partagent la même structure, avec 31 variables décrivant les 40
060 observations de H1 et 79 330 observations de H2. Chaque observation représente une réservation
d'hôtel. Les deux ensembles de données comprennent les réservations devant arriver entre le 1er juillet
2015 et le 31 août 2017, y compris les réservations eectivement arrivées et les réservations annulées.
Comme il s'agit de données réelles de l'hôtel, tous les éléments de données concernant l'identication
de l'hôtel ou du client ont été supprimés. En raison de la rareté des données commerciales réelles à
des ns scientiques et éducatives, ces ensembles de données peuvent jouer un rôle important pour
la recherche et l'éducation dans la gestion des revenus, l'apprentissage automatique ou l'exploration
de données, ainsi que dans d'autres domaines.
1 Nuno Antonio, Ana de Almeida, Luis Nunes. Hotel booking demand datasets, Data in Brief , Volume 22,
1
Objectif du projet :
Les ensembles de données désormais disponibles ont été collectés dans le but de développer
des modèles de prédiction pour calculer la probabilité qu'une réservation d'hôtel soit
annulée.
3.1 Construire une nouvelle variable family_size à partir des trois variables suivantes : adults ,
children et babies selon les conditions suivantes :
• Single : la somme adults+children+babies est égale à 1
• Small : la somme adults+children+babies en comprise entre 2 et 3 inclus
• Big : la somme adults+children+babies est strictement supérieur à 3
Supprimer les réservations avec family_size = 0 car ça n'a pas de sens de réserver pour telle
conguration. Ensuite, décrire cette nouvelle variable et supprimer les trois variables utilisées
pour sa génération.
3.2 Convertir la variable is_canceled en type factor avec deux modalités Yes et No
3.3 Au lieu d'utiliser les trois types de réservations, supprimer les réservations de type No-Show
de la variable reservation_status_date an de garder que les réservations dont le résultat
nal est connu pour qu'elles soient utilisées pour former le modèle.
3.4 Dans la suite de notre projet et pour plus de simplicité, on va garder que les variables suivantes:
• hotel
• is_canceled
• arrival_date_month
• family_size
3.5 Donner les dimensions nales du tableau (nombres de variables et d'observations) retenu après
la phase Data Preparation
2
4 Analyse univariée et bivariée
• hotel
• is_canceled
• arrival_date_month
• family_size
4.2 A partir des résultats de la question (4.1), formuler une première hypothèse quant à l'annulation
de la réservation selon les diérentes valeurs des variables étudiées.
Coder une fonction ProbCond_2Param(), avec les arguments de votre choix, qui permet de
calculer la probabilité suivante :
P(Y = Y i et Xk = Xkj )
i
P(Y = Y |Xk = Xkj ) =
P(Xk = Xkj )
Indication : Vous pouvez utiliser les sorties des fonctions table() et prop.table() sous R.
3
6.1.1 En utilisant la fonction ProbCond_2Param(), calculer les probabilités conditionnelles
suivantes:
• P(Is_canceled == ‘Y es‘ | hotel == ‘ResortHotel‘)
• P(Is_canceled == ‘Y es‘ | hotel == ‘CityHotel‘)
• P(Is_canceled == ‘Y es‘ | f amily _size == ‘Single‘)
• P(Is_canceled == ‘Y es‘ | f amily _size == ‘Small‘)
• P(Is_canceled == ‘Y es‘ | f amily _size == ‘Big‘)
• P(Is_canceled == ‘Y es‘ | arrival_date_month == ‘January‘)
• P(Is_canceled == ‘Y es‘ | arrival_date_month == ‘July‘)
P(Y | X1 , X2 , X3 )
P(X1 , X2 , X3 | Y = Y 1 )P(Y = Y 1 )
P(Y = Y 1 | X1 , X2 , X3 ) = P i i
(1)
i P(X1 , X2 , X3 | Y = Y )P(Y = Y )
4
6.2.1 Coder une fonction ProbCond_3Param(), avec les arguments de votre choix, qui permet de
calculer la probabilité formulée dans (2)
6.2.2 Coder une fonction ProbCond_3Param_Inv(), avec les arguments de votre choix, qui per-
met de calculer la probabilité formulée dans (3)
6.2.3 En guise d'application, utiliser les fonctions que vous avez codé pour calculer les probabilités
suivantes :
• P(Is_canceled = ‘Y es‘ | hotel = ‘Resort Hotel‘, f amily _size = ‘Big‘, arrival_date_month = ‘July‘)
• P(Is_canceled = ‘Y es‘ | hotel = ‘Resort Hotel‘, f amily _size = ‘Small‘, arrival_date_month =
‘July‘)
• P(Is_canceled = ‘Y es‘ | hotel = ‘Resort Hotel‘, f amily _size = ‘Single‘, arrival_date_month =
‘July‘)
• P(Is_canceled = ‘Y es‘ | hotel = ‘City Hotel‘, f amily _size = ‘Big‘, arrival_date_month = ‘July‘)
• P(Is_canceled = ‘Y es‘ | hotel = ‘City Hotel‘, f amily _size = ‘Big‘, arrival_date_month = ‘January‘)
• P(Is_canceled = ‘Y es‘ | hotel = ‘Resort Hotel‘, f amily _size = ‘Single‘, arrival_date_month =
‘January‘)
• P(Is_canceled = ‘Y es‘ | hotel = ‘City Hotel‘, f amily _size = ‘Single‘, arrival_date_month = ‘January‘)