Implementation of random forest and decision trees from scratch based on Gini index as measure for information gain. Analysis of various boosting and bagging techniques on the accuracy of random forest model.