COMP90049, Introduction to Machine Learning, Fall 2025
Group: Phoenix (G06)
School of Computing and Information Systems, The University of Melbourne
This project analyzes the Diabetes Health Indicators Dataset using various machine learning classification algorithms to predict diabetes status. The target variable has three classes: No diabetes, Prediabetes, and Diabetes.
We implement and compare four different machine learning models with comprehensive preprocessing, feature selection, and hyperparameter tuning to achieve optimal classification performance.
You can read the full research paper here:
The complete implementation and analysis can be found in the Jupyter notebook:
Note: GitHub renders Jupyter notebooks natively, so you can view the code, visualizations, and results directly in the browser without downloading the file.
The dataset used is the Diabetes Health Indicators Dataset from Kaggle:
- Source: Kaggle Dataset
- File:
data/dataset.csv - Description: Contains health indicators and demographic information used to predict diabetes status
The project implements and compares the following machine learning models:
- K-Nearest Neighbors (KNN)
- Logistic Regression
- Decision Tree
- Multilayer Perceptron (MLP) Neural Network
All models utilize:
- Feature Selection: Mutual information-based feature selection
- Class Imbalance Handling: SMOTE (Synthetic Minority Oversampling Technique) and undersampling
- Hyperparameter Tuning: GridSearchCV with cross-validation
- Evaluation Metrics: Accuracy, Precision, Recall, F1-score, and ROC-AUC
- Python 3.7+
- Jupyter Notebook or JupyterLab
- pip (Python package manager)
-
Clone or download this repository:
git clone <repository-url> cd MLproject
-
Install the required dependencies:
pip install -r requirements.txt
- Ensure the dataset file
data/dataset.csvexists in the project directory - Open
MachineLearning_DiabitesPredictionsCode.ipynbin Jupyter Notebook - Run all cells sequentially to reproduce the analysis
All required Python packages are listed in requirements.txt. Key dependencies include:
pandas- Data manipulation and analysisnumpy- Numerical computingscikit-learn- Machine learning algorithms and utilitiesimbalanced-learn- Handling class imbalancematplotlib&seaborn- Data visualizationjupyter- Notebook environment
- Xinyang Sun – xinyang.sun.3@student.unimelb.edu.au
- Nina Lock – ninalock@student.unimelb.edu.au
- Vadym Musiienko – vmusiienko@student.unimelb.edu.au
- Dataset provided by Kaggle
- This project was completed for COMP90049 Introduction to Machine Learning at The University of Melbourne, Fall 2025