Il progetto indaga l'applicazione di tecniche di machine learning per la classificazione delle condizioni meteorologiche utilizzando un dataset tabellare sintetico. Il dataset non rispecchia dati realistici, sono stati tutti generati sinteticamente includendo volutamente outliers e valori anomali. L'obiettivo principale è sviluppare un modello predittivo in grado di classificare con precisione diversi tipi di condizioni meteorologiche, quali sole, pioggia, neve e nuvolosità.
Per maggiori informazioni sul progetto è possibile consultare il report finale a questo link.
È necessario aver installato miniconda sul proprio dispositivo Windows. Tutte le librerie e i pacchetti necessari sono già configurati all'interno dell'ambiente conda fornito.
NOTA: Il progetto è stato pensato per essere eseguito sul sistema operativo Windows, non si garantisce il completo funzionamento su sistemi operativi differenti.
-
Scaricare i file dal repository GitHub tramite Git Clone o download diretto del file .zip;
-
Aprire il terminale di Conda, spostarsi nella cartella contenente i file del progetto (basta anche solo WP_requirements.yml) e digitare il comando
conda env create -f WP_requirements.yml. Questo creerà l'ambiente e darà inizio all'installazione di tutte le librerie necessarie per l'esecuzione del progetto. -
Una volta terminata l'installazione dell'ambiente e delle librerie è neccessario, qualora non lo si fosse già, dirigersi nella cartella contenente i file del progetto e attivare l'ambiente col comando
conda activate WeatherProject. -
La procedura di installazione è completata, ora è possibile eseguire il progetto col comando
python main.py, assicurandosi sempre di aver attivato l'ambiente WeatherProject e di trovarsi nella directory del progetto.
Il progetto è stato organizzato in più file in base ai modelli e alle operazioni da effettuare:
| Nome File | Descrizione |
|---|---|
WP_requirements.yml |
File per l'installazione dell'ambiente su Conda |
main.py |
File principale da cui è possibile eseguire l'applicazione completa |
Imports.py |
Contiene gli import più ricorrenti tra tutti gli altri file |
AnalisiDataset.py |
Contiene le funzioni relative alle varie analisi del dataset |
Shared_Utilities.py |
Contiene le funzioni condivise ricorrenti tra i vari file |
Models.py |
Contiene le funzioni necessarie per l'esecuzione e i confronti tra modelli |
DecisionTree.py |
Contiene le funzioni necessarie per l'esecuzione di modelli DecisionTree |
NaiveBayes.py |
Contiene le funzioni necessarie per l'esecuzione di modelli NaiveBayes |
SVM.py |
Contiene le funzioni necessarie per l'esecuzione di modelli SVM |
CustomKNN.py |
Contiene le funzioni necessarie per l'esecuzione di modelli KNN custom |
CustomEnsemble.py |
Contiene le funzioni necessarie per l'esecuzione di modelli Ensemble custom |
Preprocessing.py |
Contiene tutte le varie funzioni di pre-processing del dataset |
È stato utilizato python 3.10.4 e nell'ambiente Conda sono state installate le seguenti librerie:
| Nome Libreria | Versione | Utilizzo |
|---|---|---|
dython |
0.6.7 | Plot della matrice di correlazione completa |
imbalanced-learn |
0.12.3 | Tecniche di Oversampling |
matplotlib |
3.5.2 | Plot dei grafici dei risultati |
numpy |
1.21.5 | Operazioni aritmetiche varie |
pandas |
1.4.4 | Gestione del dataset come dataframe |
scikit-learn |
1.1.1 | Per i modelli di machine learning |
seaborn |
0.13.2 | Plot dei boxplot |