There has been an upsurge recently in investigating machine learning techniques for Activity Recognition (AR) problems as that have been very effective in extracting and learning knowledge from the activity datasets. The techniques ranges from heuristically derived handcrafted feature-based traditional machine learning algorithms to the recently developed hierarchically self-evolving feature-based deep learning algorithms. AR continues to remain a challenging problem in uncontrolled smart environments despite the amount of work contributed by the researcher in this field. The complex, volatile, and chaotic nature of the activity data presents numerous challenges which influence the performance of the AR systems in the wild. In this article, we present a comprehensive overview of recent machine learning and data mining techniques generally employed for AR and the underpinning problems and challenges associated with existing systems. We also articulate the recent advances and state-of-the-art techniques in this domain in an attempt to identify the possible directions for future activity recognition research.