Il progetto consiste nell’analizzare un dataset contenente segnali elettroencefalografici (EEG) e spettrogrammi utilizzando AutoML come tecnica di Machine Learning.
Nello specifico, il dataset utilizzato è stato preso da una competizione di Kaggle e il framework AutoML usato è AutoPyTorch.
Il dataset contiene le valutazioni fornite da alcuni esperti sulla base di diversi campioni EEG della durata di 50 secondi con i rispettivi spettrogrammi ricavati da pazienti ospedalieri critici.
L’obiettivo è stimare, attraverso l’uso della regressione, sei valori target:
- seizure_vote
- lpd_vote → lpd = lateralized periodic discharges
- gpd_vote → gpd = generalized periodic discharges
- lrda_vote → lrda = lateralized rhythmic delta activity
- grda_vote → grda = generalized rhythmic delta activity
- other_vote
Ognuno di questi numeri reali rappresenta la frequenza relativa dei voti ottenuti per ciascuna categoria, ed è dunque un numero compreso tra 0 ed 1.
Inoltre, la somma delle frequenze relative deve essere pari ad 1.
E' possibile visualizzare i notebook su Kaggle con i link nelle rispettive sezioni.
Tuttavia, se si desidera eseguire il codice sulla propria macchina, è necessario:
- Installare le librerie necessarie per l'esecuzione del codice
- Scaricare i dataset utilizzati dai notebook su Kaggle (si possono scaricare dai notebook stessi)
Il link per il notebook di Kaggle che utilizza CatBoost è disponibile qui.
Nel caso non fosse già installata, si può scaricare la libreria tramite il seguente comando
pip install catboostSe non si dispone di una GPU, è possibile modificare la seguente porzione di codice
Sostituendo
task_type="GPU",
devices='0:1'con
task_type="CPU"Il link per il notebook di Kaggle che utilizza AutoPyTorch è disponibile qui.
Nel momento in cui è stato sviluppato questo progetto, la normale installazione di AutoPyTorch creava dei problemi con le versioni di python successive alla 3.9.
Per riuscire ad installare e ad utilizzare correttamente AutoPyTorch si può procedere in questi due modi:
Con python 3.9 i problemi creati dalle dipendenze di AutoPyTorch non sussistono, dunque creando un virtual environment si può facilmente risolvere il problema.
apt-get update
apt install -y python3.9
pip install virtualenv
virtualenv venv -p $(which python3.9)
/venv/bin/pip install autopytorchNel codice utilizzato in questo progetto è stato necessario anche installare le seguenti librerie per interagire con i file che contenevano i dati
/venv/bin/pip install pyarrow
/venv/bin/pip install fastparquetUna volta che il setup dell'ambiente di lavoro è terminato, è possibile proseguire salvando il proprio codice in un file python (in questo caso HMSAutoPyTorch.py) ed eseguirlo con il seguente comando
/venv/bin/python3.9 HMSAutoPyTorch.pyGrazie all'intervento di un altro utente (Borda), che ha modificato le dipendenze come è possibile vedere qui, è possibile utilizzare il seguente comando per installare AutoPyTorch
pip install "git+https://github.com/Borda/Auto-PyTorch.git@bump/sklearn-1.0+"Una documentazione più approfondita del lavoro è visualizzabile nel file D10 - AutoML for Brain Predictor.pdf