From c382b655367ba7ba419da6bb6a63a6b9b5478036 Mon Sep 17 00:00:00 2001 From: K Om Senapati Date: Sat, 29 Jun 2024 03:36:05 +0000 Subject: [PATCH] Added README.md for Student Stress Levels Detection project --- .../Model/README.md | 0 Student Stress Levels Detection/README.md | 71 +++++++++++++++++++ 2 files changed, 71 insertions(+) delete mode 100644 Student Stress Levels Detection/Model/README.md create mode 100644 Student Stress Levels Detection/README.md diff --git a/Student Stress Levels Detection/Model/README.md b/Student Stress Levels Detection/Model/README.md deleted file mode 100644 index e69de29bb..000000000 diff --git a/Student Stress Levels Detection/README.md b/Student Stress Levels Detection/README.md new file mode 100644 index 000000000..082681da1 --- /dev/null +++ b/Student Stress Levels Detection/README.md @@ -0,0 +1,71 @@ +## Student Stress Levels Detection + +### ๐ŸŽฏ **Goal** + +To understand the influence of the headache, study load, academic performance etc on students stress level. + +### ๐Ÿงต **Dataset** + +https://www.kaggle.com/datasets/samyakb/student-stress-factors/data + +### ๐Ÿงพ **Description** + +By using Data Analysis, Data Visualization and then applying various Regression Algorithms from Machine Learning to predict a students stress level. + +### ๐Ÿงฎ **What I had done!** + +1. Checked the shape of dataset, types of columns and basic statistics +2. Then checked the histplots and boxplot of all the features +3. Then checked distribution of stress level +4. Then checked reg plots of other features with stress level +5. Then checked pair plots and correlation heatmap of all the features +6. Then divided the dataset into features and target and normalised features and splitted dataset into training and testing sets +7. Then trained on each model and checked the MAE and R2 on testing dataset +8. Then selected Decision Tree Regressor and did hyper parameter tuning on that and got the best model and saved it. + +### ๐Ÿš€ **Models Implemented** + +- Linear Regression +- Decision Tree +- Random Forest +- Gradient Boosting +- Support Vector Regressor +- XGBoost Regressor + +### ๐Ÿ“š **Libraries Needed** + +- matplotlib +- seaborn +- numpy +- pandas +- scikit_learn +- xgboost + +### ๐Ÿ“Š **Exploratory Data Analysis Results** + +![Box Plots](./Images/box_plots.png) +![Reg Plots](./Images/reg_plots.png) +![Stress KDE](./Images/stress_level_kde.png) + +### ๐Ÿ“ˆ **Performance of the Models based on the Accuracy Scores** + +| Model | R^2 Score | MAE | +|-------------------------|-----------|------| +| Linear Regression | 0.23 | 1.01 | +| Decision Tree | 0.91 | 0.13 | +| Random Forest | 0.90 | 0.18 | +| Gradient Boosting | 0.74 | 0.55 | +| Support Vector Regressor| 0.60 | 0.60 | +| XGBoost Regressor | 0.91 | 0.13 | + + +### ๐Ÿ“ข **Conclusion** + +Both Decision Tree and XGBoost have similar performance in terms of R^2 score and MAE. +Selecting **Decision Tree Regressor** as its easier to interpret as you can visualize the tree and understand the decision-making process. + +### โœ’๏ธ **Your Signature** + +K Om Senapati
+[![GitHub](https://img.shields.io/badge/GitHub-kom--senapati-blue?style=flat&logo=github)](https://github.com/kom-senapati) +[![Twitter](https://img.shields.io/badge/Twitter-kom__senapati-blue?style=flat&logo=twitter)](https://twitter.com/kom_senapati)