You are a seasoned marketing analyst at a major consumer goods company responsible for maximizing the return on investment (ROI) of marketing campaigns. The company has just launched an ambitious multi-channel campaign – email, social media, and online advertising – to promote a new product line. However, past campaigns have yielded inconsistent results, and there's a growing need for a more data-driven approach to customer targeting. The marketing budget is substantial, and the pressure to deliver measurable results is intense. You have been entrusted with the task of transforming the company's marketing strategy.
Using data from past and present campaigns – customer demographics, purchase history, campaign interactions (e.g., email opens, clicks, website visits), and response rates – your primary goal is to build a robust predictive model that identifies customers most likely to respond positively to the campaign. By accurately targeting potential responders with tailored messages and offers, the company can significantly increase the campaign's effectiveness, reduce wasted marketing spend, and drive incremental sales growth. Your analysis will also help identify the most effective marketing channels and messaging strategies for different customer segments, leading to a more personalized and impactful customer experience and a substantial improvement in marketing ROI.
Goal: The aim of this project is to analyze data from a marketing campaign and build a model to predict which customers are most likely to respond (e.g., make a purchase, click a link, sign up for a newsletter). This allows the company to target its marketing efforts more efficiently, reducing costs and increasing revenue. We will focus on binary outcome, purchase or no purchase.
This dataset contains information about customers and their responses to a marketing campaign.
age: Customer's age (numeric).job: Type of job (categorical: "admin.","unknown","unemployed","management","housemaid","entrepreneur","student","blue-collar","self-employed","retired","technician","services").marital: Marital status (categorical: "married","divorced","single"; note: "divorced" means divorced or widowed).education: Education level (categorical: "unknown","secondary","primary","tertiary").default: Has credit in default? (binary: "yes","no").balance: Average yearly balance, in euros (numeric).housing: Has housing loan? (binary: "yes","no").loan: Has personal loan? (binary: "yes","no").contact: Contact communication type (categorical: "unknown","telephone","cellular").day: Last contact day of the month (numeric).month: Last contact month of year (categorical: "jan", "feb", "mar", ..., "nov", "dec").duration: Last contact duration, in seconds (numeric). Important note: this attribute highly affects the output target (e.g., if duration=0 then y='no'). Yet, the duration is not known before a call is performed. Also, after the end of the call y is obviously known. Thus, this input should only be included for benchmark purposes and should be discarded if the intention is to have a realistic predictive model.campaign: Number of contacts performed during this campaign and for this client (numeric, includes last contact).pdays: Number of days that passed by after the client was last contacted from a previous campaign (numeric; 999 means client was not previously contacted).previous: Number of contacts performed before this campaign and for this client (numeric).poutcome: Outcome of the previous marketing campaign (categorical: "unknown","other","failure","success").deposit: Has the client subscribed a term deposit? (binary: "yes","no"). This is your target variable.Data Source: UCI Machine Learning Repository - Bank Marketing Dataset
Download DataYour task is to build a machine learning model to predict whether a customer will respond to the marketing campaign.
Python Libraries: Pandas, NumPy, scikit-learn, Matplotlib/Seaborn.