University of Pisa – Department of Computer Science
Academic Year: 2025/2026
- Abderrahmane Salmi
- Aymene Chafai
- Omrane Yakoubi
This project was developed for the Machine Learning course and follows the Type B (Model Comparison) guidelines.
The goal is to compare different machine learning models on:
- 🧩 MONK Datasets (Binary Classification)
- 📊 ML-CUP 2025 Dataset (Multi-Target Regression)
The main objective is not achieving state-of-the-art performance, but demonstrating:
- Correct validation methodology
- Proper model selection
- Rigorous performance evaluation
- Critical analysis of inductive bias
.
├── src/
│ ├── knn/ # Jupyter notebooks for KNN
│ ├── linear/ # Jupyter notebooks for Linear Regression
│ ├── nn/ # Jupyter notebooks for Neural Networks
│ ├── svm/ # Jupyter notebooks for Support Vector Machines
│ ├── common/ # Utility scripts for data loading and preprocessing
│ └── data/ # Datasets (ML-CUP and MONK)
├── SYC-ML-CUP25-TS.csv # Final Blind Test Predictions
├── Report_Salmi_Yakoubi_Chafai.pdf # Detailed technical report
└── SYC_abstract.txt # Project abstract
- 3 binary classification tasks
- Used for:
- Verifying model correctness
- Studying non-linear separability
- Understanding inductive bias
Metrics:
- Accuracy
- MSE (for monitoring training)
- 500 training samples
- 12 input features
- 4 continuous targets
- 1000 blind test samples
Task:
Multi-output regression
Evaluation Metric:
Mean Euclidean Error (MEE) computed in the original (unscaled) output space.
To ensure unbiased performance estimation:
- 90% → Development Set
- 10% → Internal Test Set (used only once)
- 5-Fold Cross-Validation on Development Set
- Grid Search over hyperparameters
- Selection based on average Validation MEE
- Retrain best model on full Development Set
- Evaluate once on Internal Test Set
- Ridge Regression (Linear Baseline)
- Neural Network (MLP)
- Support Vector Machine (SVR)
- K-Nearest Neighbors (KNN)
Python 3.10+ recommended.
Main dependencies:
numpy
pandas
scikit-learn
matplotlib
seaborn
jupyter