书名： Hands-On Machine Learning with Scikit-Learn and TensorFlow
第一部分主要基于 scikit-learn ，而第二部分则使用 TensorFlow 。 注意：不要太急于深入学习到核心知识：深度学习无疑是机器学习中最令人兴奋的领域之 一，但是你应该首先掌握基础知识。而且，大多数问题可以用较简单的技术很好地解决（而 不需要深度学习），比如随机森林和集成方法（我们会在第一部分进行讨论）。如果你拥有 足够的数据，计算能力和耐心，深度学习是最适合复杂的问题的，如图像识别，语音识别或 自然语言处理。
We are interested in the application of Machine Learning (ML) technology to improve mathematical software. It may seem that the probabilistic nature of ML tools would invalidate the exact results prized by such software, however, the algorithms which underpin the software often come with a range of choices which are good candidates for ML application. We refer to choices which have no effect on the mathematical correctness of the software, but do impact its performance. In the past we experimented with one such choice: the variable ordering to use when building a Cylindrical Algebraic Decomposition (CAD). We used the Python library Scikit-Learn (sklearn) to experiment with different ML models, and developed new techniques for feature generation and hyper-parameter selection. These techniques could easily be adapted for making decisions other than our immediate application of CAD variable ordering. Hence in this paper we present a software pipeline to use sklearn to pick the variable ordering for an algorithm that acts on a polynomial system. The code described is freely available online.