作者:Sambodhi,海边的拾遗者

导读: 机器学习涉及到机器学习算法和模型的使用。对于初学者来说,这很容易让人混淆,因为“机器学习算法”经常与“机器学习模型”交替使用。这两个到底是一样的东西呢,还是不一样的东西?作为开发人员,你对排序算法、搜索算法等“算法”的直觉,将有助于你厘清这个困惑。在本文中,我将阐述机器学习“算法”和“模型”之间的区别。

机器学习中的“算法”是什么?

机器学习中的“算法”是在数据上运行以创建机器学习“模型”的过程。

机器学习算法执行“模式识别”。算法从数据中“学习”,或者对数据集进行“拟合”。

机器学习算法有很多。比如,我们有分类的算法,如 K- 近邻算法;回归的算法,如线性回归;聚类的算法,如 K- 均值算法。

下面是机器学习算法的例子:

  • 线性回归
  • 逻辑回归
  • 决策树
  • 人工神经网络
  • K- 最近邻
  • K- 均值

你可以把机器学习算法想象成计算机科学中的任何其他算法。

例如,你可能熟悉的一些其他类型的算法包括用于数据排序的冒泡排序和用于搜索的最佳优先排序。

因此,机器学习算法具有许多特性:

  • 机器学习计算法可以用数学和伪代码来描述。
  • 可以对机器学习算法的效率进行分析和描述。
  • 机器学习算法可以用任何一种现代编程语言来实现。

例如,你可能会在研究论文和教科书中看到用伪代码或 线性代数 描述的机器学习算法。你可以看到一个特定的机器学习算法与另一个特性算法相比的计算效率。

学术界可以设计出全息你的机器学习算法,而机器学习实践者可以在他们的项目中使用标准的机器学习算法。这就像计算机科学的其他领域一样,学者可以设计出全新的排序算法,程序员可以在应用程序中使用标准的排序算法。

你还可能会看到多个机器学习算法实现,并在一个具有标准 API 的库中提供。一个流行的例子是 scikit-learn 库,它在 Python 中提供了许多分类、回归和聚类机器学习算法的实现。

机器学习中的“模型”是什么?

机器学习中的“模型”是运行在数据上的机器学习算法的输出。

模型表示机器学习算法所学到的内容。

模型是在训练数据上运行机器学习算法后保存的“东西”,它表示用于进行预测所需的规则、数字和任何其他特定于算法的数据结构。

我举一些例子,可能会让人更清楚地明白这一点:

  • 线性回归算法的结果是一个由具有特定值的稀疏向量组成的模型。
  • 决策树算法的结果是一个由具有特定值的 if-then 语句树组成的模型。
  • 神经网络 / 反向传播 / 梯度下降算法一起产生一个由具有特定值的向量或权重矩阵和特定值的图结构组成的模型。

机器学模型对于初学者来说更具挑战性,因为它与计算机科学中的其他算法没有明确的类比。

例如,排序算法的排序列表输出并不是真正的模型。

最好的类比是将机器学习模型想象成一个“程序”。

机器学习模型“程序”由数据和利用数据进行预测的过程组成。

例如,考虑线性回归算法和由此产生的模型。该模型由系数(数据)向量组成,这些系数(数据)与作为输入的一行新数据相乘并求和,以便进行预测(预测过程)。

我们将数据保存为机器学习模型,以备后用。

我们经常使用机器学习库提供的机器学习模型的预测过程。有时候,我们可以自己实现预测过程作为我们应用程序的一部分。考虑到大多数预测过程都非常简单,这通常都是直截了当的。

算法与模