This is a machine learning project that focuses on water pump status prediction in Tanzania using various ML algorithms, custom preprocessing pipelines, and Optuna-based hyperparameter optimization.
# Water Pump Status Prediction
This is a machine learning project that focuses on water pump status prediction in Tanzania using various ML algorithms, custom preprocessing pipelines, and Optuna-based hyperparameter optimization.
This is a coursework for Artificial Intelligence Practice at University of St Andrews.
## Project Structure
``` bash
repo/
├── my_classifier/ # Main package directory
│ ├── analysis/ # Analysis notebooks and results
│ │ ├── hpo_300.db # Hyperparameter optimization results
│ │ ├── model_train_scores.csv # Cross validation results
│ │ ├── part1_analysis.ipynb # Part 1 analysis notebook
│ │ ├── part2_analysis.ipynb # Part 2 analysis notebook
│ | ├── requirements.txt # Run analysis notebook dependencies
│ │ └── row_data_analysis.ipynb # Raw data analysis notebook
│ ├── hpo.py # Hyperparameter optimization mplementation
│ ├── my_classifier.py # Main classifier implementation
│ ├── my_transformers/ # Custom transformers
│ │ └── my_transformers.py # Transformer implementations
│ ├── requirements.txt # Package dependencies
│ └── test_myCLF.py # Model testing script
├── requirements.txt # Project dependencies
└── train-and-predict.py # Main training script
```
## Setup
Install the required dependencies:
```bash
pip install -r requirements.txt
```
### Requirements
Main dependencies include:
- scikit-learn
- pandas
- numpy
- optuna
See at `requirements.txt`
## Usage
### Part 1: Training and Prediction
Use the `train-and-predict.py` script to train a model and generate predictions:
``` bash
python train-and-predict.py
# e.g.
# python train-and-predict.py ../data/training-input.csv ../data/training-labels.csv ../data/test-input.csv StandardScaler OrdinalEncoder HistGradientBoostingClassifier ../ …