{"id":27111920,"url":"https://github.com/akhdandann/machinelearningbikedemand-forecasting","last_synced_at":"2026-04-26T23:31:06.241Z","repository":{"id":286398079,"uuid":"961289193","full_name":"akhdandann/machineLearningBikeDemand-Forecasting","owner":"akhdandann","description":"This project explores machine learning techniques to predict bike-sharing demand using Kaggle's dataset. It includes preprocessing, feature engineering, and model training with KNN, Naive Bayes, Linear/Non-linear Regression, AdaBoost, Bagging, and Mutual Information-based feature selection.","archived":false,"fork":false,"pushed_at":"2025-04-06T07:49:30.000Z","size":1585,"stargazers_count":0,"open_issues_count":0,"forks_count":0,"subscribers_count":1,"default_branch":"main","last_synced_at":"2025-04-06T08:27:23.984Z","etag":null,"topics":["classification","data-science","forecasting","machine-learning","python","regression"],"latest_commit_sha":null,"homepage":"","language":"Jupyter Notebook","has_issues":true,"has_wiki":null,"has_pages":null,"mirror_url":null,"source_name":null,"license":"mit","status":null,"scm":"git","pull_requests_enabled":true,"icon_url":"https://github.com/akhdandann.png","metadata":{"files":{"readme":"README.md","changelog":null,"contributing":null,"funding":null,"license":"LICENSE","code_of_conduct":null,"threat_model":null,"audit":null,"citation":null,"codeowners":null,"security":null,"support":null,"governance":null,"roadmap":null,"authors":null,"dei":null,"publiccode":null,"codemeta":null}},"created_at":"2025-04-06T07:25:40.000Z","updated_at":"2025-04-06T07:50:21.000Z","dependencies_parsed_at":"2025-04-06T08:27:26.555Z","dependency_job_id":"9504fdbc-c8c4-406b-9ce3-f3a79948af89","html_url":"https://github.com/akhdandann/machineLearningBikeDemand-Forecasting","commit_stats":null,"previous_names":["akhdandann/machinelearningbikedemand-forecasting"],"tags_count":0,"template":false,"template_full_name":null,"repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/akhdandann%2FmachineLearningBikeDemand-Forecasting","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/akhdandann%2FmachineLearningBikeDemand-Forecasting/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/akhdandann%2FmachineLearningBikeDemand-Forecasting/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/akhdandann%2FmachineLearningBikeDemand-Forecasting/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/akhdandann","download_url":"https://codeload.github.com/akhdandann/machineLearningBikeDemand-Forecasting/tar.gz/refs/heads/main","host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":248119296,"owners_count":21050755,"icon_url":"https://github.com/github.png","version":null,"created_at":"2022-05-30T11:31:42.601Z","updated_at":"2022-07-04T15:15:14.044Z","host_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub","repositories_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories","repository_names_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repository_names","owners_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners"}},"keywords":["classification","data-science","forecasting","machine-learning","python","regression"],"created_at":"2025-04-07T01:25:19.425Z","updated_at":"2026-04-26T23:31:06.198Z","avatar_url":"https://github.com/akhdandann.png","language":"Jupyter Notebook","funding_links":[],"categories":[],"sub_categories":[],"readme":"# Bike Sharing Demand Forecasting using Machine Learning\n\nThis project analyzes and predicts the demand for bike sharing services using machine learning techniques. The dataset used comes from [Kaggle's Bike Sharing Demand competition](https://www.kaggle.com/datasets/joebeachcapital/seoul-bike-sharing/data), which contains historical data including weather, seasonal, and temporal features to predict the count of rental bikes.\n\n## Project Description\n\nThe goal of this project is to explore various machine learning algorithms and feature selection techniques to improve predictive accuracy for bike rental demand. By experimenting with different feature subsets and models, we aim to find the most effective approach for both classification and regression tasks.\n\nKey machine learning models such as K-Nearest Neighbors (KNN), Naive Bayes, Linear and Non-linear Regression, and ensemble methods like AdaBoost and Bagging are applied. The project also integrates Mutual Information-based feature selection to optimize model inputs.\n\n## Features\n\n- *Data Source*: Kaggle’s Bike Sharing Demand dataset *(included in the repo under Dataset/ folder)*\n- *Preprocessing*: Handling of categorical features, missing values, and feature engineering based on date/time\n- *Modeling*:\n  - K-Nearest Neighbors (KNN)\n  - Naive Bayes\n  - Linear Regression\n  - Non-linear Regression\n  - AdaBoost\n  - Bagging Meta Estimator\n- *Feature Selection*:\n  - Manual exclusion of features like temperature, weather, and categorical variables\n  - Mutual Information to identify most relevant features\n- *Evaluation*:\n  - Cross-validation (KFold)\n  - Classification reports\n  - Confusion matrices\n  - Performance analysis on multiple feature subsets\n\n## Visualization\n\nBelow is an example visualization showing the trend of bike rentals over time:\n\n\u003cimg src=\"trendofBikeRental.png\" alt=\"Bike Rental Trend\" width=\"600\"/\u003e\n\n## Results \u0026 Discussion\n\nEach machine learning model was evaluated using metrics like accuracy, precision, recall, and F1-score through cross-validation. \n\nKey findings include:\n\n- *K-Nearest Neighbors (KNN)* with 10-fold cross-validation showed promising results, achieving a decent balance between bias and variance with tuned neighbors (e.g., n_neighbors=8).\n- *Linear and Non-linear Regression* models were tested to understand their predictive power on the continuous Count variable, with varying levels of performance depending on feature combinations.\n- *Naive Bayes* was fast and lightweight but underperformed compared to ensemble methods in terms of accuracy.\n- *AdaBoost and Bagging* demonstrated strong performance, especially when noise and irrelevant features were removed.\n- Using *Mutual Information-based feature selection*, models showed measurable improvement in both accuracy and generalization when redundant or less-informative features were excluded.\n- Subsets of features (e.g., removing temperature, weather conditions, or categorical variables) revealed how sensitive each algorithm is to specific data aspects.\n\nOverall, ensemble methods combined with proper feature selection yielded the best and most consistent results.\n\n## Technologies Used\n\n- *Languages*: Python\n- *Libraries*:\n  - Pandas, NumPy\n  - Matplotlib, Seaborn\n  - Scikit-learn\n  - CatBoost\n- *Environment*: Google Colab / Jupyter Notebook\n\n## How to Run\n\n1. Clone this repository or open the .ipynb file in Google Colab.\n2. Make sure all required libraries are installed (scikit-learn, catboost, etc.).\n3. Run the notebook cells step-by-step to perform data preprocessing, training, and evaluation.\n4. The dataset is already included in the Dataset/ folder.\n\n## Skills Demonstrated\n\n- End-to-end machine learning pipeline\n- Working with real-world time series and categorical data\n- Comparative analysis across multiple ML models\n- Feature selection and engineering\n- Model evaluation with proper metrics and validation\n\n---\n\nThis project highlights a comprehensive approach to model comparison and feature evaluation for predictive analytics using bike-sharing demand as a real-world case study.\n","project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fakhdandann%2Fmachinelearningbikedemand-forecasting","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Fakhdandann%2Fmachinelearningbikedemand-forecasting","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fakhdandann%2Fmachinelearningbikedemand-forecasting/lists"}