-
Notifications
You must be signed in to change notification settings - Fork 0
yakshithkd23/Weather-Play-Predictor
Folders and files
| Name | Name | Last commit message | Last commit date | |
|---|---|---|---|---|
Β | Β | |||
Β | Β | |||
Β | Β | |||
Repository files navigation
**# Weather-Play-Predictor**
Flask-based web application that predicts whether it's a good idea to play outside based on weather conditions.
**Description:**
This project is a Flask-based web application that predicts whether it's a good idea to play outside based on weather conditions. It utilizes a Decision Tree Model trained on weather data and takes user inputs such as outlook, temperature, humidity, and wind status to make predictions.
**Features:**
β
User-friendly Web Interface π¨
β
Machine Learning Model (Decision Tree) π€
β
Real-time Weather Prediction π¦οΈ
β
Flask Backend & HTML/CSS Frontend π
**Technologies Used:**
Python π (Flask, NumPy, Pickle)
HTML, CSS π¨ (for UI)
Machine Learning (Decision Tree Classifier)
***What is Decision tree ?***
Decison tree is the type of machine learning . it can used for the classification and regression .it will split the data into the different branches based on the feature condition and final calss represent the predicted class or value.
**how it works?**
The tree is built using a recursive partitioning approach, selecting the best attribute at each step based on Entropy and Information Gain.
π note: Recursive partioning approach-is popular predictive modeling techniques.it creates a tree like structure based on data splits. it is simple to interpret using βif-thenβ rules.Handles classification and regression tasks.Efficient in pattern recognition for medical and data science applications.
Mathematical Calculation for Decision Tree Construction (ID3 Algorithm
**formulas:**
Entropy (E): Measures data impurity.
E(s)= -(p1*log2(p1)+p2*log2(p2)) .....equ(1)
p1 and p2 are positive and negative samples
information gain:
IG= E(s)-E(after) ......equ(2)
whereae , E(s)- total value entropy
E(after)-weigted avaerage entropy
E(after)= β (|Sv|/|s| *E(Sv)) ......equ(3)
π
|S|= Total number of instance
|Sv|=number of instance in Sv (example under total, 5 number of rainy is there so it is |Sv| is 5)
sv = subset data value of s(example : weather it may be sunny or rainy entropy value )
**Example: Play cricket Decision Tree**
| Day | Outlook | Temperature | Humidity | Windy | Play |
|------|---------|------------|----------|--------|------|
| D1 | Rainy | Hot | High | False | No |
| D2 | Rainy | Hot | High | True | No |
| D3 | Overcast| Hot | High | False | Yes |
| D4 | Sunny | Mild | High | False | Yes |
| D5 | Sunny | Cool | Normal | False | Yes |
| D6 | Sunny | Cool | Normal | True | No |
| D7 | Overcast| Cool | Normal | True | Yes |
| D8 | Rainy | Mild | High | False | No |
| D9 | Rainy | Cool | Normal | False | Yes |
| D10 | Sunny | Mild | Normal | False | Yes |
| D11 | Rainy | Mild | Normal | True | Yes |
| D12 | Overcast| Mild | High | True | Yes |
| D13 | Overcast| Hot | Normal | False | Yes |
| D14 | Sunny | Mild | High | True | No |
step 1: Compute Entropy of the Whole Dataset by using equation 1
p+=9/14
p-=5/14
so ,E(S)=0.940
step 2: compute entropy for each attribute.
1. Entropy of Outlook
Outlook has 3 possible values: Sunny, Overcast, Rainy
| Outlook | Play Yes | Play No | Total |
|----------|---------|---------|-------|
| Sunny | 2 | 3 | 5 |
| Overcast | 4 | 0 | 4 |
| Rainy | 3 | 2 | 5 |
by applying equation 1 you will get entropy of sunny, overcast,rainy as 0.971,0,0.971
after these apply equation 3
so, E(After) is 0.692
apply equation 2 :
IG(weather)=0.247
2. Entropy of Humidity
| Humidity | Play Yes | Play No | Total |
|----------|---------|---------|-------|
| High | 3 | 4 | 7 |
| Normal | 6 | 1 | 7 |
Entropy is 0.985 and 0.592
E(After) =0.789
IG(humidity)=0.151
3. Entropy of Windy
| windy | Play Yes | Play No | Total |
|----------|---------|---------|-------|
| True | 3 | 3 | 6 |
| Normal | 6 | 2 | 8 |
Entropy is 1.0 and 0.811
E(After) =0.891
IG(windy)=0.049
4. Entropy of Temperature
|Tempara | Play Yes | Play No | Total |
|----------|---------|---------|-------|
| hot | 2 | 2 | 4 |
| mild | 4 | 2 | 6 |
| cool | 3 | 1 | 4 |
Entropy is 1.0 and 0.918
E(After) =0.91
IG(temp)=0.029
Step 3: Choosing the Best Attribute
Outlook has the highest Information Gain (0.247), we split the dataset based on Outlook first.
Step 4: Constructing the Decision Tree
Outlook
/ | \
Sunny Overcast Rainy
/ \ | / \
Humidity No Yes Windy Yes
/ \ / \
High Normal False True
No Yes Yes No
1.If Outlook = Overcast β Play = Yes
2.If Outlook = Sunny:
If Humidity = High β Play = No
If Humidity = Normal β Play = Yes
3.If Outlook = Rainy:
If Windy = False β Play = Yes
If Windy = True β Play = No
*** performance evaluation:***
Decision tree used for classification tasks, but their performance need to be ensure properly that's why performance mease
is came in picture i.e recall , precision, accuracy
1.Recall(sensitivity)- measure how well we find all positive cases
Recall =TP/TP+FN
TP= True positive
FN= False negative
NOTE:
actual prediction
1 0 FN
0 1 FP
0 0 TN
1 1 TP
2. Precision
Measures how many predicted positives are actually correct.
precision= TP/TP+FP
οΈ3. Accuracy
Measures overall correctness (both positives & negatives).
Accuracy= TP+TN/TP+TN+FP+FN
******
| Day | Actual (Play?) | Predicted (Play?) | Category |
|------|--------------|------------------|----------|
| D1 | No | No | TN β
|
| D2 | No | No | TN β
|
| D3 | Yes | Yes | TP β
|
| D4 | Yes | Yes | TP β
|
| D5 | Yes | Yes | TP β
|
| D6 | No | Yes | FP β |
| D7 | Yes | Yes | TP β
|
| D8 | No | No | TN β
|
| D9 | Yes | Yes | TP β
|
| D10 | Yes | Yes | TP β
|
| D11 | Yes | Yes | TP β
|
| D12 | Yes | Yes | TP β
|
| D13 | Yes | No | FN β |
| D14 | No | No | TN β
|
Final Results
Recall = 0.8889 (88.89%)
Precision = 0.8889 (88.89%)
Accuracy = 0.8571 (85.71%)
References:
https://www.sciencedirect.com/topics/psychology/recursive-partitioning
https://leetcode.com/explore/learn/card/decision-tree/501/evaluation/2638/
https://developers.google.com/machine-learning/decision-forests/growing
About
A machine learning web app that predicts playability based on weather using a Decision Tree. π³πΎ
Resources
Stars
Watchers
Forks
Releases
No releases published