Diabetes, a chronic disease affects various organs of human body including the retina. Diabetic Retinopathy (DR) results from the Diabetes Mellitus (DM). In literature various machine learning algorithms have been applied in detection of DR. This involves two steps; Feature extraction and Classification. This paper reviews the various techniques used for detecting DR based on the features like blood vessels, microaneurysms, haemorrhages etc. In most of the experiments retinal fundus images were used in which images of retina were captured by fundus camera. This review bifurcates the detection of DR into two approaches; Blood vessels segmentation and Identification of lesions. This paper compares the experimental results of various machine learning techniques based on parameters like sensitivity, specificity, Area Under Curve (AUC), Accuracy. The results are also compared with the deep neural networks and analysis of best technique has been provided.