1.) Python 3.3 or above
2.) sklearn python library
3.) Numpy
4.) Pandas
5.) Matplotlib
I used different Machine Learning models and found Xgboost and Logistic Regression gave the best testing accuracy after manipulating and testing different parameters. Xgboost gave 95.1% testing accuracy and Logistic Regression gave 96.7% testing accuracy. ( This problem is available on Kaggle with the datasets )