Skip to the content.

CSE 450 - Machine Learning

Repository for Team NorthWind’s coursework in CSE 450 Machine Learning at BYU-Idaho.


Team Members

Caleb Dilley
Caleb Dilley
Dallin Wagner
Dallin Wagner
Jonathan Oliphant
Jonathan Oliphant
Nels Buhrley
Nels Buhrley

Module 2 - Bank Marketing Prediction

Objective: Predict which bank clients will subscribe to a term deposit, turning an unprofitable phone campaign into a profitable one.

We built three classifiers on the UCI Bank Marketing dataset (37k records, 11.4% positive rate). The core challenge is class imbalance – a model that always says “no” scores 89% accuracy but generates zero revenue. We tackled this with SMOTE oversampling, class weighting, and probability threshold tuning, evaluating models on business value rather than accuracy.

Model Technique Key Idea
RF + SMOTE Random Forest Synthetic oversampling + manual class weights
RF Balanced Random Forest Automatic balanced class weights
Stacking (RF + KNN) Ensemble stacking RF and KNN base learners feed a logistic regression meta-learner; threshold tuned to 0.61

Highlights

Campaign Value

Golden List / Black List

The models concentrate the call list on high-conversion groups (previously converted clients, students, retirees) and filter out low-yield contacts (landline-reached, blue-collar workers), boosting precision from 11.5% to 47.2%.

Full technical writeup, per-model breakdowns, and detailed results in module_2-bank/README.md.


Repository Structure

module_2-bank/       Bank marketing prediction project 
tools/               Shared utility scripts
notebooks/           Exploratory Jupyter notebooks
nels_b/              Nels's working directory
dallin_w/            Dallin's working directory
caleb_d/             Caleb's working directory
jonathan_o/          Jonathan's working directory