Agriculture is the major source for living for the people of India.Agriculture research is the major source of economy for the country.Soil is an important key factor for agriculture .There are several soil varieties in India.In order to predict the type of crop that can be cultivated in that particular soil type we need to understand the features and characteristics of the soil type.Machine learning techniques provides a flexible way in this case.Classifying the soil according to the soil nutrients is much beneficial or the famers to predict which crop can be cultivated in a particular soil type.Data mining and machine learning is still an emerging technique in the field of agriculture and horticulture.In this paper we have proposed a method for classifying the soil according to the macro nutrients and micro nutrients and predicting the type of crop that can be cultivate in that particular soil type.Several type of machine learning algorithms are used such as K-Nearest Neighbour (k-NN), Bagged tree, Support vector machine(SVM) and logistic regression.