Understanding Random Forests: From Theory To Practice