This project aims to develop a unique identification system for individuals using data from accelerometers and gyroscopes. The system leverages machine learning models, data preprocessing, and ensemble techniques to achieve accurate identification.
- Getting Started
- Prerequisites
- Data Preparation
- Code Structure
- Running the Code
- Results Interpretation
- Further Improvement
- Authors
Before running the code, make sure you have the following prerequisites installed:
- Python 3.x
- Pandas
- Scikit-learn
- Imbalanced-learn (imblearn)
- Collect accelerometer and gyroscope data of multiple individuals.
- Run featureExtraction.py to extract the features from both acceleromer and gyroscope data seperately. It'll also add an label with it.
- Ensure you have two CSV files:
accelerometer_data.csv
andgyroscope_data.csv
. These files should contain your accelerometer and gyroscope data, respectively. - Your data should be structured such that each row represents a data sample, and the last column (label) contains the class information.
- I have added 4 sample data of 4 individuals that can be use for feature extraction.
- The code is organized into sections, each corresponding to a specific task. These tasks include data loading, data splitting, imputation, oversampling, classifier training, and ensemble creation.
- The code is divided into two main parts, one for accelerometer data and the other for gyroscope data. Both parts follow a similar structure.
- A Voting Classifier ensemble is created for both accelerometer and gyroscope data using individual classifiers.
-
Data Preparation: Place your
accelerometer_data.csv
andgyroscope_data.csv
files in the same directory as the script. -
Running the Script: Run the script to execute the complete workflow. Ensure that you have the required libraries installed as mentioned in the prerequisites.
-
Results: The script will provide results for individual classifiers and ensemble models. It will display accuracy scores and classification reports.
-
The script evaluates individual classifiers for both accelerometer and gyroscope data and provides their respective accuracy scores and classification reports.
-
Ensemble models (Voting Classifiers) are also evaluated, and their accuracy scores and classification reports are displayed.
To further improve the performance of the system, consider the following steps:
-
Explore additional feature engineering techniques to create more informative features.
-
Experiment with different machine learning algorithms or hyperparameter tuning to optimize model performance.
-
Collect more data to increase the diversity and size of your dataset.
[Affan Rahman]