question archive AD654: Marketing Analytics Boston University Assignment III: Classification: Will this Traveler Be Satisfied? For this assignment, you will use the file euro_hotels
Subject:Computer SciencePrice:15.89 Bought3
AD654: Marketing Analytics Boston University Assignment III: Classification: Will this Traveler Be Satisfied? For this assignment, you will use the file euro_hotels.csv, which can be found on our course Blackboard page. Once you have completed this assignment, you will upload two files into Blackboard: The .ipynb file that you create in Jupyter Notebook, and an .html file that was generated from your .ipynb file. If you run into any trouble with submitting the .html file to Blackboard, you can submit it as a PDF instead. For any question that asks you to perform some particular task, you just need to show your input and output in Jupyter Notebook. Tasks will always be written in regular, non-italicized font. For any question that asks you to include interpretation, write your answer in a Markdown cell in Jupyter Notebook. Any homework question that needs interpretation will be written in italicized font. Do not simply write your answer in a code cell as a comment, but use a Markdown cell instead. Remember to be resourceful! There are many helpful resources available to you, including the video library, the lecture notes on Blackboard, the facilitator-led sessions, office hours, and the web. Part I: Logistic Regression Model: A. Bring the dataset into your environment, and use the head() function to explore the variables. B. Which of the variables here are categorical? Which are numerical? C. Use the value_counts() function from pandas to learn more about the outcome variable, satisfaction. Describe your findings -- what are the different outcome classes here, and how common are each of them in the dataset? D. The outcome variable in this model will be satisfaction. If satisfaction is not currently in numeric format, use scikit-learn’s Label Encoder to make this change. Then, call the head() function again on your dataframe. a. Comparing the first five rows now, vs. the way they looked when you originally called the head() function, what changed? E. For your categorical input variables, do you need to take any steps to convert them into dummies, in order to build a logistic regression model? Why or why not? a. If you answered “yes” to the previous question, dummify your categorical inputs now, being sure to drop one level as you do. F. Create a data partition. For your random_state value, use a number based on either your work, home, or school address, or just a number that you like (For example, I live at 200 Market St, I work at 1010 Commonwealth Avenue, and my lucky number is 80, so I could use either 200, 1010, or 80). Assign 40% of your rows to your test set, and 60% to your training set. a. How did you pick your seed value? G. Build a logistic regression model using Python, with the outcome variable satisfaction. Use the rest of the variables from the dataset as inputs (except ID). Remember to use only your training data to build this model. H. Show your model’s coefficients. a. Which of your numeric variables appear to influence the outcome variable the most? Which ones have the least impact? Choose any three variables that seem to matter for this model, and write a sentence or two for each with your thoughts about their importance. You can think about your own experience as a traveler as you write this. b. Now look at the categorical variables and their coefficients. Write a paragraph with your opinion about the ‘type of travel’ and ‘purpose of travel’ coefficients shown here. I. Assess the performance of your model against the test set. Build a confusion matrix, and answer the following questions about your model. You can use Python functions to answer any of these questions or you can use your confusion matrix to determine the answers in a slightly more manual way. The ‘positive’ class in this model is represented by the “1” outcome. a. What is your model’s accuracy rate? b. What is your model’s sensitivity rate? c. What is your model’s specificity rate? d. What is your model’s precision? e. What is your model’s balanced accuracy? J. Compare your model’s accuracy against the training set vs. accuracy against the test set (just use accuracy for this). a. What is the purpose of comparing those two values? b. In this case, what does the comparison of those values suggest about the model that you have built? K. Make up a traveler. Assign this person a value for each predictor variable in this model, and store the results in a new dataframe. Now, put your person through this model. a. What did your model predict -- will this person be satisfied? b. According to your model, what is the probability that the person will be satisfied? L. When using a logistic regression model to make predictions, why is it important to only use values within the range of the dataset used to build the model? a. Make a new dataframe, but this time, for the numeric predictor variables, select some numbers that are outside the range of the dataset. Use your model to make a prediction for this new dataframe. What do you notice about the result? (To answer this, don’t simply state the predicted outcome, but also write 1-2 sentences of explanation for what you see). Part II: Random Forest Model M. Read the dataset back into Python. Again, use the Label Encoder to convert the outcome variable into 0 or 1 format. Dummify the categorical inputs again, but this time, don’t drop any levels. N. Re-partition the data, using the same seed value that you used in the previous part of this assignment. O. Build a random forest model in Python with your training set. Use the same input variables, and same output variable, as you used in the logistic regression model (the only difference here is that the categories should not have any levels dropped). Use GridSearch CV to help you determine the best hyperparameter settings for your model. P. How did your random forest model rank the variables in order of importance, from highest to lowest? For a random forest model, how can you interpret feature importance? Q. Assess the performance of your model against the test set. Build a confusion matrix to do this. You can use Python functions to answer any of these questions or you can use your confusion matrix to determine the answers in a slightly more manual way. The ‘positive’ class in this model is represented by the “1” outcome. a. What is your model’s accuracy rate? b. What is your model’s sensitivity rate? c. What is your model’s specificity rate? d. What is your model’s precision? e. What is your model’s balanced accuracy? R. Compare your model’s accuracy against the training set vs. your model’s accuracy against the test set. How different were these results? S. Use the predict() function with your model to classify the person who you invented in Step I. Does the model think this person will be satisfied? T. For this question, no Python code is required -- just use a Markdown cell to answer. Assume that Lobster Land is thinking about opening an on-site hotel on its theme park property. Write a 3-5 sentence paragraph that speculates about why Lobster Land might care about being able to use this model. There is not a single “correct” answer to this question. Be thoughtful and be creative, and consider the impact of being able to predict a particular customer’s likely satisfaction. You can mention a marketing angle, an operations angle, or anything else that comes to mind.
Purchased 3 times