Graph-based machine learning: Part I