Questa repository contiene il codice per un progetto di Machine Learning che utilizza un modello di Random Forest per classificare diverse attività motorie come driving, running, stationary e walking. Oltre all'addestramento esegue anche una parte di preprocessing dei dati.
csv_edit.py: Script per unire più file CSV contenenti dati raccolti dall'accelerometro in 4 file, uno per ogni attività. tali file sono stati ottenuti dalla repository presente al seguente link: STMicroelectronics Human activities dataset, apparte per i dati di driving che sono stati raccolti personalmente.csv_index.py: Aggiunge l'header (X (mg);Y (mg); Z (mg)) ai file csv.preprocessing.py: Raccoglie i dati dell'accelerometro dai filedriving.csv,running.csv,stationary.csvewalking.csv, ogni 60 campioni calcola, per ogni coordinata: le medie, le varianze, i valori picco picco ed il numero di zero crossings, creando un unico dataframe e memorizzandolo nel filedataset.csv.random_forest.py: Usa i dati raccolti nel filedataset.csvper addestrare un modello di Random Forest e per valutarne le prestazioni stampando in terminale l'accuratezza e il classification report (formato dai valori diprecision,recall,f1-scoreesupport). Infine crea lamatrice di confusionetramite matplotlib e seaborn.random_forest.onnx: Modello di Random Forest addestrato, serializzato e memorizzato in un formato compatibile con il linguaggioKotlin.
- Preprocessing: Gli script
csv_index.py,csv_edit.pyepreprocessing.pypreparano i dati grezzi dell'accelerometro per formare le feature di addestramento, ottenendo così un unico DataFrame e memorizzandolo indataset.csv. - Addestramento del modello: Lo script
random_forest.pycarica il filedataset.csv, separa le feature dal target, divide i dati in set di addestramento e test, addestra un modello di Random Forest e visualizza le sue prestazioni. - Valutazione del modello: Le prestazioni valutate consistono in: accuratezza del modello, report di classificazione e matrice di confusione per le diverse classi di attività.
- Python 3.x
- pandas
- scikit-learn
- numpy
- matplotlib
- seaborn
- Eseguire in ordine
csv_index.py,csv_edit.pyepreprocessing.pyper generare il filedataset.csv. - Eseguire
random_forest.pyper addestrare il modello di Random Forest, generare il filerandom_forest.onnxe visualizzarne le prestazioni.