/aps-fault-detection

This project contains the production ready Machine Learning solution to make the prediction on the batch of data coming from Air Pressure system (APS) sensors

Primary LanguagePythonMIT LicenseMIT

Air Pressure System (APS) Fault Detection

Typing SVG

Typing SVG

License Build Last Commit Code Size Repo Size License

Following are the major contents to follow, you can jump to any section:

Problem Statement

The Air Pressure System (APS) is a critical component of a heavy-duty vehicle that uses compressed air to force a piston to provide pressure to the brake pads, slowing the vehicle down. The benefits of using an APS instead of a hydraulic system are the easy availability and long-term sustainability of natural air.

This is a Binary Classification problem, in which the affirmative class indicates that the failure was caused by a certain component of the APS, while the negative class indicates that the failure was caused by something else.

Solution Proposed

In this project, the system in focus is the Air Pressure system (APS) which generates pressurized air that are utilized in various functions in a truck, such as braking and gear changes. The datasets positive class corresponds to component failures for a specific component of the APS system. The negative class corresponds to trucks with failures for components not related to the APS system.

The problem is to reduce the cost due to unnecessary repairs. So it is required to minimize the false predictions.

Model Training Pipeline

image

Batch(Offline) Prediction Worflow

image

CICD on Circleci

image image

DagsHub Data Pipeline

image
Complete Project Data Pipeline is available at DagsHub Data Pipeline

Tech Stack Used

  1. Python
  2. Data Version Control (DVC)
  3. Distributed Computing
  4. Machine learning algorithms
  5. MLFlow
  6. MongoDB
  7. SMTP Server

Infrastructure

  1. AWS S3
  2. Google Cloud Storage (GCS)
  3. Databricks
  4. GitHub
  5. DaghsHub
  6. CircleCi

Run Locally

  • Ensure you have Python 3.7+ installed.

  • Create a new Python Conda environment:

conda create -n venv python=3.10  
conda activate venv 

OR

  • Create a new Python virtual environment with pip:
virtualenv venv --python=python3.10 
source venv/bin/activate

Install dependencies

  pip install -r requirements.txt

Clone the project

  git clone https://github.com/Hassi34/aps-fault-detection.git

Go to the project directory

  cd aps-fault-detection

Export the environment variable

#s3
AWS_ACCESS_KEY_ID_ENV_KEY=""
AWS_SECRET_ACCESS_KEY_ENV_KEY=""

#MONGO_DB
MONGO_DATABASE_NAME=""
MONGO_DB_URL=""

# MLFlow
MLFLOW_TRACKING_URI=""
MLFLOW_TRACKING_USERNAME=""
MLFLOW_TRACKING_PASSWORD=""

#GCP
JSON_DCRYPT_KEY=""
GCLOUD_SERVICE_KEY=""
CLOUDSDK_CORE_PROJECT=""
GOOGLE_COMPUTE_REGION=""
GOOGLE_COMPUTE_ZONE=""

#Email Alerts
EMAIL_PASS=""
SERVER_EMAIL=""
EMAIL_RECIPIENTS=""

Start Training and Serving Pipeline

  dvc repro

Conclusion

This project is production ready to be used for the similar use cases and it will provide the automated and orchesrated production ready pipelines(Training & Serving)

Thank you for visiting 🙏 If you find this project useful then don't forget to star the repo ✨⭐🤖

📃 License

MIT © Hasanain

Let's connect on LinkedIn