Group project for the Introduction to Machine Learning course. Classical ML applied to blood cell anomaly detection using a synthetic dataset of 5880 samples described by morphological and clinical features without relying on image-based approaches.
- Binary classification: normal (0) vs anomaly (1) -
anomaly_labelcolumn - Multiclass classification: predict
disease_categoryacross 8 classes (Anemia, Artefact, Infection, Leukemia, Normal_Platelet, Normal_RBC, Normal_WBC, Sickle_Cell_Anemia)
blood_cell_anomaly_detection.csv - 5880 rows × 36 columns. Not available in this repository, download it from Kaggle and place it at the repo root.
Six models evaluated on both tasks:
| Category | Models |
|---|---|
| Baseline | Logistic Regression, Decision Trees, Non-linear SVM |
| Ensemble | Random Forest, Gradient Boosting, AdaBoost |
├── binary-classification/ # Binary task notebooks
│ ├── adaboost.ipynb
│ ├── adaboost_two_stage_multiclass.ipynb
│ ├── binary_classification.ipynb
│ ├── decision_trees.ipynb
│ ├── gradient_boosting.ipynb
│ ├── logistic_regression.ipynb
│ ├── nonlinear_svm.ipynb
│ ├── random_forests.ipynb
│ ├── summary_visualization.ipynb
│ └── voting_ensemble.ipynb
├── multi-class-classification/ # Multiclass task notebooks
│ ├── adaboost.ipynb
│ ├── decision_trees.ipynb
│ ├── gradient_boosting.ipynb
│ ├── logistic_regression.ipynb
│ ├── nonlinear_svm.ipynb
│ ├── oversampling_experiment.ipynb
│ ├── random_forest.ipynb
│ ├── summary_visualization.ipynb
│ └── voting_ensemble_adaboost_svm.ipynb
├── data-exploration/ # EDA notebooks
├── Documentation/ # Deliverables + Final Report + Presentation PDFs
└── README.md
python -m venv .venv
source .venv/bin/activate
pip install -r requirements.txt # or install manually: scikit-learn, pandas, numpy, matplotlib, seaborn, imbalanced-learn, jupyterPlace blood_cell_anomaly_detection.csv at the repo root, then:
jupyter notebookNotebooks in binary-classification/ and multi-class-classification/ load data from ../blood_cell_anomaly_detection.csv.