Acceration and rotation were used to create a model that classifies the driving behaviour in two categories: Normal and Agressive.
An Exploratory data analysis was done, followed by the delevepment of an AI model using machine learning and deep Learning
The jupyter notebook outline:
-
EDA Training dataset
-
EDA Testing dataset
-
Data cleaning and preprocessing
-
Data Loader
- Denoising data
- Dataloader class
-
ML models
- ML base class
- Logistic Regression
- SVM
- Random Forest
- Naive Bayes
- XGBRegressor
-
DL models
-
MLP models
-
CNN model following [1] with recurrence plot aproach
-
Transfer learning - MobileNetV2
-
RNN models (GRU,LSTM)
-
Hyperparams Finetunnig
For data filtering was implemented 3 methods was in the data loader, gaussian filter, exponential decay, and rolling average.
Few signal processing methods were applied in the EDA of each sample.
The dataset was retrieved from Kaggle
The best model found using accuracy, balanced accuracy, AUC, precision and recall was a GRU.
Metric | Mean (%) | Std (%) |
---|---|---|
Balanced Accuracy | 77 | 1 |
Recall | 76 | 4 |
Precision | 55 | 4 |
Accuracy | 77 | 2 |
AUC | 77 | 1 |
Since we a very concerned to detect properly the agrevisse behaviour the higher recall was prioritaized.
A package was created contaning the dataloader codes and the machine learning and deep learning base code which speed up the trainning, validation, testing and evalution process.
Also, there are few code for hyperparams finetuning using Keras-tunner. It was implementaded a random search CV, and GridSearch CV.