Skip to content

About

IoT-based room occupancy prediction using machine learning, XGBoost, and data preprocessing tools.

Resources

Stars

0 stars

Watchers

1 watching

Forks

Latest commit

 

History

11 Commits

Folders and files

Repository files navigation

LinkedIn

IoT Occupancy Estimation

This repository contains the implementation of an IoT-based occupancy estimation system. Using advanced data preprocessing techniques and machine learning models, it aims to estimate occupancy in real-time based on environmental sensor data. The primary focus is to improve the accuracy and efficiency of predictions, making it suitable for smart building applications.

Table of Contents

Features

  • Preprocessing of environmental sensor data (e.g., temperature, humidity, light).
  • Implementation of advanced machine learning algorithms, including XGBoost.
  • Tools for feature engineering and model evaluation.
  • Real-time prediction capabilities.
  • Modular and extensible codebase.

Installation

  1. Clone the repository:

    git clone https://github.com/pepperumo/IoT_Occupancy_Estimation.git
  2. Navigate to the project directory:

    cd IoT_Occupancy_Estimation
  3. Create a new conda environment:

    conda create --name iot_occupancy_env python=3.10
    conda activate iot_occupancy_env
  4. Install the required dependencies:

    conda env update --file conda_environment_requirements.yml

Usage

  1. Prepare the dataset by placing it in the data/ directory.

  2. Open the Jupyter notebook for preprocessing and training:

    jupyter notebook notebooks/Preprocessing_and_XGBoost.ipynb
  3. Follow the steps in the notebook to preprocess the data, train the model, and evaluate it.

  4. The trained model is saved as models/xgboost_model.pkl and can be used for predictions.

Repository Structure

IoT_Occupancy_Estimation/
├── data/
│   └── Occupancy_Estimation.csv    # Dataset used for training and evaluation
├── models/
│   └── xgboost_model.pkl           # Trained XGBoost model
├── notebooks/
│   └── Preprocessing_and_XGBoost.ipynb  # Jupyter notebook for preprocessing and modeling
├── conda_environment_requirements.yml   # Conda environment configuration file
├── requirements.txt               # Additional Python dependencies
├── README.md                      # Project documentation
└── LICENSE                        # License information

Data

The dataset used for this project includes:

  • Environmental features such as temperature, PIR, and light intensity.
  • Occupancy labels indicating whether a room is occupied or not.

Ensure the dataset is properly formatted and placed in the data/ directory.

Modeling

The primary model used for occupancy estimation is XGBoost. The pipeline includes:

  • Feature engineering
  • Model training
  • Hyperparameter optimization
  • Evaluation metrics (accuracy, precision, recall, F1-score)

Contributing

Contributions are welcome! To contribute:

  1. Fork the repository.
  2. Create a new branch:
    git checkout -b feature-name
  3. Make your changes and commit them:
    git commit -m "Add new feature"
  4. Push your changes:
    git push origin feature-name
  5. Create a pull request.

License

This project is licensed under the MIT License. See the LICENSE file for details.

About

IoT-based room occupancy prediction using machine learning, XGBoost, and data preprocessing tools.

Resources

Stars

0 stars

Watchers

1 watching

Forks

Releases

Packages

Contributors

Languages