Machine Learning: From Theory to Applications