During this week i was able to complete a project called rain prediction. The purpose of this project is to predict if rain will fall the next day...the DATA for this project can be gotten from kaggle using this link:
https://www.kaggle.com/datasets/trisha2094/weatheraus
this data is based on Australia weather.with 49 unique location in Australia.
This project was very challenging because i went through a lot of preprocessing phases.which include:
- Data analysis: under this aspect i did the following:
- splitting the features into numerical(discrete and continuous) and categorical features
- Handling of missing values, which was very technical
- handling categorical features, which i have to use some mapping methods on my features and so on.
- Feature Engineering: at this point, i got really exhausted but i was able to continue because I was explaining my code as if i was taking a class, which was very fantastic and interesting because i love to teach.After that, i decided to visualize the heatmap plot of the data to see the data's correlation.i also do a Q-Q plot to know if the features have normal distribution.
Model building:i built the model using different machine learning libraries which includes:
a) RandomForest classifier with an accuracy of 85.05% and AUC of 0.88
b)KNeighbor classifier with an accuracy of 82.019% and AUC of 0.77
c) guassian Naive bayes with an accuracy of 80.60% and AUC of 82
d) XGboost performed brilliantly with an accuracy of 85.73% and AUC of 89
e) Catboost performed well compare all the other libraries which gives an accuracy of 86.12% and AUC of 89.so i saved both the Xgbost and catboost model..this was because they both performed awesomelly compare to others.
I still believe i can get higher accuracy and AUC value by doing hyperparamters tunning.
The next part of the project is to build a flask app that people an input their values and get the predictions on whether it will rain the next day or not.
If you would love to see the app, you can let me know by commenting so that I can be motivated to make the app.