Agriculture is the backbone of the Indian Economy & it majorly contributes to the development of the country. Currently, farmers are facing a lot of challenges including infertile soil, poor yield, diseased crop, etc. If solutions to these problems are provided, then the profits along with the yields would increase drastically. In this paper, Our main goal is to look at three types of Machine learning techniques viz. Supervised, Unsupervised and Reinforced learning and their contribution in the field of agriculture. We also look at Deep learning and its application in agriculture. We look at the work previously done in these machine learning techniques including disease detection in plants, yield prediction, soil classification, etc. Most of the time language can be a barrier. So, this work needs to reach the farmers in their local language. Getting accurate data for agriculture-related analysis is difficult as sources are not always available or sometimes not reliable. So, if major issues of the language barrier and data acquisition are solved, a lot more progress is possible.