找回密码
 立即注册
搜索

机器学习中算法与模型的区别




来源:AI火线

本文约2528字,建议阅读6分钟。

本文引见机器学习“算法”和“模型”之间的区别。

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

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

机器学习算法执行“形式辨认”。算法从数据中“学习”,或者对数据集停止“拟合”。

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

下面是机器学习算法的例子:
    线性回归逻辑回归决策树人工神经网络K- 最近邻K- 均值

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

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

因此,机器学习算法具有许多特性:
    机器学习计算法可以用数学和伪代码来描画。可以对机器学习算法的效率停止分析和描画。机器学习算法可以用任何一种古代编程言语来完成。

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

学术界可以设计出全息你的机器学习算法,而机器学习实际者可以在他们的项目中运用标准的机器学习算法。这就像计算机迷信的其他范畴一样,学者可以设计出全新的排序算法,程序员可以在运用程序中运用标准的排序算法。

你还能够会看到多个机器学习算法完成,并在一个具有标准 API 的库中提供。一个盛行的例子是 scikit-learn 库,它在 Python 中提供了许多分类、回归和聚类机器学习算法的完成。
机器学习中的“模型”是什么?

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

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

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

我举一些例子,能够会让人更清楚地明白这一点:
    线性回归算法的结果是一个由具有特定值的稀疏向量组成的模型。决策树算法的结果是一个由具有特定值的 if-then 语句树组成的模型。神经网络 / 反向传播 / 梯度下降算法一同产生一个由具有特定值的向量或权重矩阵和特定值的图结构组成的模型。

机器学模型对于初学者来说更具应战性,由于它与计算机迷信中的其他算法没有明白的类比。

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

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

机器学习模型“程序”由数据和应用数据停止预测的过程组成。

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

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

我们常常运用机器学习库提供的机器学习模型的预测过程。有时分,我们可以本人完成预测过程作为我们运用程序的一部分。思索到大多数预测过程都非常简单,这通常都是直截了当的。
算法与模型框架

如今我们曾经熟习了机器学习的“算法”和机器学习的“模型”。

详细来说,就是对数据运转算法来创建模型。
    机器学习 =>机器学习模型

我们还了解到,模型由数据和如何运用数据对新数据停止预测的过程组成。假如你情愿的话,你也可以将这一过程视为一种预测算法。
    机器学习模型 == 模型数据 + 预测算法

这种区分对于了解广泛的算法非常有协助。

例如,大多数算法的一切工作都在“算法”中,而“预测算法”的工作很少。

通常状况下,算法是某种优化程序,即在训练数据集上使模型(数据 + 预测算法)的误差最小化。线性回归算法就是一个很好的例子。它执行一个优化过程(或用线性代数停止分析求解),找到一组权重,使训练数据集上的误差之和平方最小化。
线性回归

    算法:在训练数据集上找到误差最小的系数集。模型
      模型数据:整个训练数据集。预测算法:找出 K 个最相似的行,取其目的变量的平均值。


有些算法很琐碎,甚至什么都不做,一切的工作都在模型或预测算法中。

K- 最近邻算法除了保存整个训练数据集外没有其他的算法。因此,弄醒数据就是整个训练数据集,一切的工作都在预测算法中,即,一行新数据如何与保存的训练数据集交互以作出预测。
K- 最近邻

    算法:保存训练数据。模型
      模型数据:整个训练数据集。预测过程:找出 K 个最相似的行,取其目的变量的平均值。


你可以把这个分解作为一个框架来了解任何机器学习算法。
机器学习是自动编程

我们真的只是想要一个机器学习的“模型”,而“算法”就是我们获得模型的途径。

机器学习技术用于处理其他方法无法有效或高效处理的成绩。

例如,假如我们需求将电子邮件分类为渣滓邮件或非渣滓邮件,我们需求一个软件程序来完成此义务。

我们可以坐上去,手动查看大量的电子邮件,然后写 if 语句来完成合格义务。人们曾经试过这个方法。理想证明,这种方法是缓慢的、脆弱的,而且效果也不是很好。

相反,我们可以运用机器学习技术来处理这个成绩。详细来说,像 朴素贝叶斯(Naive Bayes)这样的算法就可以从大量的历史邮件样本数据集中学习如何将邮件分类为渣滓邮件和非渣滓邮件。

我们不想要“朴素的贝叶斯”,我们想要朴素贝叶斯给出的模型,就是我们可以用来对邮件停止分类的模型(概率向量和运用概率概率的预测算法)。我们想要的是模型,而不是用来创建模型的算法。

从这个意义下去说,机器学习模型是一个由机器学习算法自动编写、或创建、或学习的程序,用来处理我们的成绩。

作为开发人员,我们对人工智能意义上的机器学习算法的“学习”不太感兴味。我们并不关怀模拟学习过程。有些人能够会关怀,这很风趣,但这不是我们运用机器学习算法的缘由。

相反,我们更看重的是机器学习算法提供的自动编程才能更感兴味。我们希望可以有效地创建一个有效的模型,并将其融入到我们的软件项目中。

机器学习算法执行自动编程,而机器学习模型是为我们创建的程序。
作者引见
Jason Brownlee 博士是机器学习专家,他教授开发人员如何经过实际教程运用古代机器学习方法获得结果。
延伸阅读:
https://machinelearningmastery.com/difference-between-algorithm-and-model-in-machine-learning/

—完—

想要获得更多数据迷信范畴相关动态,诚邀关注清华-青岛数据迷信研讨院官方微信公众平台“ 数据派THU ”。

本帖子中包含更多资源

您需要 登录 才可以下载或查看,没有帐号?立即注册

x
回复

使用道具 举报

大神点评3

风云426 2020-7-16 07:09:26 显示全部楼层
我擦!我要沙发!
回复

使用道具 举报

乐﹎乐 2020-7-16 18:36:42 显示全部楼层
非常看好未来的发展!
回复

使用道具 举报

wangyhxl 2020-7-17 16:59:49 显示全部楼层
结束了嘛?有种还没完成的感觉,嘻嘻
回复

使用道具 举报

高级模式
B Color Image Link Quote Code Smilies