This document provides a comprehensive survey of machine learning techniques for weather forecasting. It begins with an introduction to weather forecasting and the benefits of applying machine learning methods. Supervised, unsupervised, and reinforcement learning approaches are described. Popular algorithms for regression, classification, time series analysis, ensemble methods and deep learning are examined. Applications like numerical weather prediction, pattern recognition, short-term forecasting and extreme event prediction are discussed. Challenges like data quality and model interpretability are also outlined. The survey concludes that machine learning opens new possibilities for more accurate weather forecasting but challenges remain that warrant further research.