Overview
The purpose of this assignment is to get familiar with the basic concepts and techniques of data mining and gain experience in R and data mining applications. In this group project, you are expected to apply data mining techniques to predict hotel reservation cancellations using the R programming language.
Dataset
Online hotel booking platforms have made it easier for guests to cancel hotel reservations for free or at low cost, but this can lead to lost revenue for hotels. In this project, we will use data mining techniques to analyze hotel reservation data and help hotel owners better predict whether a customer will accept or cancel a reservation. The dataset used in this assignment contains information on around 18,000 hotel reservation records. In the hotel_reservation.csv file, each row contains information about one reservation record. The columns are explained in a separate file named Variables description.txt.
Requirements and Tasks
Given the datasets, you are expected to finish the following tasks using R programming language. You are allowed to use existing R libraries to solve the following tasks. Tasks 1 and 2 are group work; Tasks 3 and 4 are individual work. Please include all the source code and results for T1 and T2 in a group pdf file; include all the source code, results and evaluation report for T3 and T4 in an individual pdf file. Please also explain anything that is not obvious in the pdf files.
T1. Exploratory Data Analysis – Group (25 marks)
T1-1: Load the CSV file; show the dimensionality, structure and summary of the dataset.
T1-2: Calculate and visualize the number of guests from different countries.
T1-3: Calculate and visualize the average number of nights the guests stayed per month.
T1-4: Calculate and visualize the number of guests per month for both Resort Hotel and City Hotel.
T1-5: Calculate and visualize the average hotel price (adr) of each month for both Resort Hotel and City Hotel.
T1-6: Analyze data visualization results and summarize your findings in the pdf file.
T2. Data Pre-processing – Group (25 marks)
In task 2, you need to perform the following data pre-processing tasks on the given dataset. Each pre-processing task may be handled with different methods, e.g., fill or drop missing values. Please discuss with your team members and select a suitable method for those tasks.
T2-1: Check for missing values and handle them if they exist. T2-2: Check for duplicates and remove them if they exist.
T2-3: Plot data distribution, check for outliers and remove them if they exist.
T2-4: Apply data normalization.
T2-5: Encode categorical values. T2-6: Store the preprocessed dataset into a new CSV file.
T3. Modelling – Individual (30 marks)
In Task 3, you need to build one data mining model based on the pre-processed dataset in Task 2. If you made further pre-processing steps for better model performance, please explain the steps in your individual pdf file.
T3-1: Each team member applies one different data mining model (e.g., kNN, logistic regression, decision tree, random forest, SVM, etc.) to predict if a hotel reservation will be cancelled (attribute in the second column of the dataset) using the remaining attributes.
T3-2: Use k-fold cross validation with k = 5 folds to evaluate performance. T3-3: Select features and/or tune model parameters to achieve the optimal performance. Show (or plot) model performance under different feature selection and/or parameter tuning settings.
T3-4: Report the best prediction results (i.e., Accuracy, Precision, Recall, F1-score) and the corresponding running time.
T4. Evaluation – Individual (20 marks)
T4-1: Use one example from the given dataset and draw plots or figures to explain how the input is processed by you model to generate prediction results.
T4-2: Discuss the performance of your model with your team members, i.e., Accuracy, Precision, Recall, F1-score and running time (Run the models under the same setting if necessary). Analyze the performance of your model.
T4-3: Discuss the advantages and disadvantages of the model you choose and point out some future directions to further improve model performance.