作者:禅与计算机程序设计艺术
1.背景介绍
近年来,随着云计算、大数据、人工智能等技术的不断发展,基于大规模数据处理的机器学习算法也在迅速发展壮大。机器学习(Machine Learning)是一门融合了统计、模式识别、计算机科学、数据挖掘等多领域知识而成的交叉学科,其目的是利用已知的数据,对未知的数据进行预测、分类、聚类、降维等任务,从而提高计算机程序的学习能力,改善自身的决策能力,解决实际问题。随着数据的量级、复杂度和多样性的增加,传统的单机内存机器学习算法已经无法应付如此庞大的海量数据集。为了解决这个问题,许多研究者、企业及行业巨头纷纷抛弃传统的本地机器学习算法,转向更加通用化的分布式机器学习算法,比如Apache Spark 生态圈中的 Apache Spark MLLib 等框架。本文将介绍如何利用Spark MLLib框架来训练、评估和预测分布式机器学习算法模型。
2.核心概念与联系
2.1 数据
首先,我们需要定义什么是数据。在机器学习中,数据就是输入到模型中的信息。通常情况下,数据可以分为两类:结构化数据和非结构化数据。结构化数据是指有固定的格式的数据,如CSV文件,XML文档;非结构化数据则指没有固定格式的数据,如图像、文本等。在本文中,我们只关