IoT devices (wireless sensors, actuators, computer devices) produce large volume and variety of data and the data produced by the IoT devices are transient. In order to overcome the problem of traditional IoT architecture where data is sent to the cloud for processing, an emerging technology known as fog computing is proposed recently. Fog computing brings storage, computing and control near to the end devices. Fog computing complements the cloud and provide services to the IoT devices. Hence, data used by the IoT devices must be cached at the fog nodes in order to reduce the bandwidth utilization and latency. This chapter discusses the utility of data caching at the fog nodes. Further, various machine learning techniques can be used to reduce the latency by caching the data near to the IoT devices by predicting their future demands. Therefore, this chapter also discusses various machine learning techniques that can be used to extract the accurate data and predict future requests of IoT devices.