There has been an upsurge recently in investigating machine learning techniques for activity recognition (AR) problems as they have been very effective in extracting and learning knowledge from the activity datasets. The technique ranges from heuristically derived hand-crafted 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 that 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 the 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 AR research.