Machine learning fundamentals