Term Deposit Prediction is an important use case in the banking industry. Term deposits represent a significant source of income for banks, and efficient targeting of potential customers for term deposits is vital to optimize marketing efforts. This project focuses on utilizing data from direct marketing campaigns to predict whether a client will subscribe to a term deposit, enabling the bank to target the right audience and reduce costs associated with telephonic marketing campaigns.
- Analyze bank marketing campaign data to identify patterns and insights.
- Use predictive modeling techniques to forecast customer behavior.
- Optimize targeting strategies for telephonic marketing campaigns.
- Improve marketing efficiency and reduce unnecessary expenses.
The dataset is derived from the direct marketing campaigns of a Portuguese banking institution. The data includes client details, campaign information, and the final outcome (whether the client subscribed to a term deposit).
- train.csv: Contains 40,000 rows and 17 columns, including the target variable
y. - test.csv: Contains 5,211 rows and 16 columns, excluding the target variable
y.
- age: Age of the client (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").
- Education: Level of education (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 the year (categorical: "jan", "feb", "mar", ..., "nov", "dec").
- duration: Last contact duration in seconds (numeric).
- campaign: Number of contacts performed during this campaign (numeric).
- pdays: Days since last contact from a previous campaign (numeric, -1 means no previous contact).
- previous: Number of contacts performed before this campaign (numeric).
- poutcome: Outcome of the previous marketing campaign (categorical: "unknown", "other", "failure", "success").
- y: Indicates if the client subscribed to a term deposit (binary: "yes", "no").
project-directory/
├── train.csv
├── test.csv
├── Train_data_EDA.ipynb
├── Test_data_EDA.ipynb
├── model_training.ipynb
├── requirements.txt
├── README.md
└── outputs/
├── predictions.csv
└── presentation.pptx
- Programming Language: Python
- Libraries: Pandas, NumPy, Matplotlib, Seaborn, Scikit-learn
- Visualization Tools: Power BI, Excel
- Deployment Platform: Streamlit
- Version Control: Git/GitHub
👷Contributors :
- Vardhan Chavan
- Ashish Dabas
- Tejas Patil
We thank the mentors and peers who provided valuable feedback during the development of this project. Special thanks to the dataset contributors and the platform hosting this project.
- Incorporate more advanced machine learning algorithms for improved predictions.
- Add a feature for real-time prediction using live customer data.
- Expand the dataset to include additional customer demographic and behavioral attributes.
- Develop an API for seamless integration with the bank’s CRM system.





