深度实践Spark机器学习

吴茂贵 等
前言 为什么写这本书 大数据、人工智能正在改变或颠覆各行各业,包括我们的生活。大数据、人工智能方面的人才已经供不应求,但作为人工智能的核心——机器学习,因涉及的知识和技能比较多,除了需要具备一定的数学基础、相关业务知识外,还要求有比较全面的技术储备,如操作系统、数据库、开发语言、数据分析工具、大数据计算平台等,无形中提高了机器学习的门槛。如何降低机器学习的门槛,让更多有志于机器学习、人工智能的人能更方便或顺畅地使用、驾驭机器学习? 很多企业也正在考虑和处理这方面的问题,本书也希望借Spark技术在这方面做一些介绍或总结。 如何使原本复杂、专业性强的工作或操作简单化?封装是一个有效方法。封装降低了我们操作照相机的难度、降低了我们维护各种现代设备的成本,同时也提升了我们使用这些设备的效率。除封装外,过程的标准化、流程化同样是目前现代企业用于提升生产效率,降低成本,提高质量的有效方法。 硬件如此,软件行业同样如此。目前很多机器学习的开发语言或平台,正在这些方面加大力度,比如:对特征转换、特征选择、数据清理、数据划分、模型评估及优化等算法的封装;对机器学习过程的进行流程化、标准化、规范化;给大家比较熟悉的语言或工具提供API等方法或措施,以简化机器学习中间过程,缩短整个开发周期,使我们能更从容地应对市场的变化。Spark在这方面可谓后来居上,尤其是最近发布的版本,明显加大了这方面的力度,我们可以从以下几个方面看出这种趋势: 1)Spark机器学习的API,正在由基于RDD过渡到基于Dataset或DataFrame,基于RDD的API在Spark2.2后处于维护阶段,Spark3.0后将停止使用(来自Spark官网); 2)建议大家使用Spark ML,尤其是它的Pipeline; 3)增加大量特征选择、特征转换、模型选择和优化等算法; 4)丰富、增强Spark与Java、Pyt…