Enabling Cognitive Smart Cities Using Big Data and Machine Learning: Approaches and Challenges