Machine learning in agriculture: a review of crop management applications