在这篇文章中,我们Spark的其它机器学习API,名为Spark ML,如果要用数据流水线来开发大数据应用程序的话,这个是推荐的解决方案。
Spark ML(spark.ml)包提供了构建在DataFrame之上的机器学习API,它已经成了Spark SQL库的核心部分。这个包可以用于开发和管理机器学习流水线。它也可以提供特征抽取器、转换器、选择器,并支持分类、汇聚和分簇等机器学习技术。这些全都对开发机器学习解决方案至关重要。
在这里我们看看如何使用Apache Spark来做探索式数据分析(Exploratory Data Analysis)、开发机器学习流水线,并使用Spark ML包中提供的API和算法。
因为支持构建机器学习数据流水线,Apache Spark框架现在已经成了一个非常不错的选择,可以用于构建一个全面的用例,包括ETL、指量分析、实时流分析、机器学习、图处理和可视化等。
机器学习数据流水线
机器学习流水线可以用于创建、调节和检验机器学习工作流程序等。机器学习流水线可以帮助我们更加专注于项目中的大数据需求和机器学习任务等,而不是把时间和精力花在基础设施和分布式计算领域上。它也可以在处理机器学习问题时帮助我们,在探索阶段我们要开发迭代式功能和组合模型。
机器学习工作流通常需要包括一系列的处理和学习阶段。机器学习数据流水线常被描述为一种阶段的序列,每个阶段或者是一个转换器模块,或者是个估计器模块。这些阶段会按顺序执行,输入数据在流水线中流经每个阶段时会被处理和转换。
机器学习开发框架要支持分布式计算,并作为组装流水线模块的工具。还有一些其它的构建数据流水线的需求,包括容错、资源管理、可扩展性和可维护性等。
在真实项目中,机器学习工作流解决方案也包括模型导入导出工具、交叉验证来选择参数、为多个数据源积累数据等。它们也提供了一些像功能抽取、选择和统计等的数据工具。这些框架支持机器学习流水线持久化来保存和导入机器学习模型和流水线,以备将来使用。
机器学习工作流的概念和工作流处理器的组合已经在多种不同系统中越来越受欢迎。象scikit-learn和GraphLab等大数据处理框架也使用流水线的概念来构建系统。
一个典型的数据价值链流程包括如下步骤:
机器学习数据流水线所用的方法都是类似的。下图展示了在机器学习流水线处理中涉及到的不同步骤。
原文链接:
https://mp.weixin.qq.com/s?__biz=MzA5NzkxMzg1Nw==&mid=2653162044&idx=1&sn=3273704648b4346a0e41526b24dadb08&chksm=8b493752bc3ebe4476638ae84de67b25c579cc07b6e552506508e6b51d2432fc07827a6b52da&scene=0&pass_ticket=HgAssQ7FbPxKwrnVZT6BkaXztv6wem74kG5fSADbJyo%3D#rd