机器学习涉及到机器学习算法和模型的使用,又由于“机器学习算法”经常与“机器学习模型”交替使用,不少初学者觉得混淆。那今天就一起盘一盘机器学习“算法”和“模型”之间的区别。
机器学习中的“算法”
机器学习中的“算法”是在数据上运行以创建机器学习“模型”的过程。机器学习算法执行“模式识别”。算法从数据中“学习”,或者对数据集进行“拟合”。机器学习算法有很多。比如,我们有分类的算法,如K-近邻算法;回归的算法,如线性回归;聚类的算法,如K-均值算法。
下面是机器学习算法的例子:
线性回归逻辑回归决策树人工神经网络K-最近邻K-均值你可以把机器学习算法想象成计算机科学中的任何其他算法。例如,你可能熟悉的一些其他类型的算法包括用于数据排序的冒泡排序和用于搜索的最佳优先排序。
因此,机器学习算法具有许多特性:
机器学习计算法可以用数学和伪代码来描述。可以对机器学习算法的效率进行分析和描述。机器学习算法可以用任何一种现代编程语言来实现。机器学习中的“模型”
机器学习中的“模型”是运行在数据上的机器学习算法的输出。模型表示机器学习算法所学到的内容。模型是在训练数据上运行机器学习算法后保存的“东西”,它表示用于进行预测所需的规则、数字和任何其他特定于算法的数据结构。
举一些例子,可能会让人更清楚地明白这一点:
线性回归算法的结果是一个由具有特定值的稀疏向量组成的模型。决策树算法的结果是一个由具有特定值的if-then语句树组成的模型。神经网络/反向传播/梯度下降算法一起产生一个由具有特定值的向量或权重矩阵和特定值的图结构组成的模型。机器学模型对于初学者来说更具挑战性,因为它与计算机科学中的其他算法没有明确的类比。
最贴切的类比是将机器学习模型想象成一个“程序”。机器学习模型“程序”由数据和利用数据进行预测的过程组成。
算法与模型框架
现在我们已经熟悉了机器学习的“算法”和机器学习的“模型”。具体来说,就是对数据运行算法来创建模型。
机器学习=机器学习模型我们还了解到,模型由数据和如何使用数据对新数据进行预测的过程组成。如果你愿意的话,你也可以将这一过程视为一种预测算法。
机器学习模型==模型数据+预测算法这种区分对于理解广泛的算法非常有帮助。
通常情况下,算法是某种优化程序,即在训练数据集上使模型(数据+预测算法)的误差最小化。线性回归算法就是一个很好的例子。它执行一个优化过程(或用线性代数进行分析求解),找到一组权重,使训练数据集上的误差之和平方最小化。
举个例子:
线性回归——算法:在训练数据集上找到误差最小的系数集。
模型:
模型数据:整个训练数据集。
预测算法:找出K个最相似的行,取其目标变量的平均值。
K-最近邻算法除了保存整个训练数据集外没有其他的算法。因此,弄醒数据就是整个训练数据集,所有的工作都在预测算法中,即,一行新数据如何与保存的训练数据集交互以作出预测。
K-最近邻——算法:保存训练数据。
模型:
模型数据:整个训练数据集。
预测过程:找出K个最相似的行,取其目标变量的平均值。
你可以把这个分解作为一个框架来理解任何机器学习算法。
其实,机器学习是以实现自动编程为目的,所以真正想要一个机器学习的“模型”,而“算法”就是我们获得模型的路径。从这个意义上来说,机器学习模型是一个由机器学习算法自动编写、或创建、或学习的程序,用来解决我们的问题。总的来说,机器学习算法执行自动编程,而机器学习模型是为了创建的程序。
文章部分素材来源:人工智能与算法学习