Reviewing Data Access Patterns and Computational Redundancy for Machine Learning Algorithms