最具影响力的数字化技术在线社区

168大数据

 找回密码
 立即注册

QQ登录

只需一步,快速开始

1 2 3 4 5
打印 上一主题 下一主题
开启左侧

[基础知识] 机器学习中算法与模型的区别

[复制链接]
跳转到指定楼层
楼主
发表于 2021-3-18 17:06:34 | 只看该作者 回帖奖励 |倒序浏览 |阅读模式

马上注册,结交更多数据大咖,获取更多知识干货,轻松玩转大数据

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

x
来自微信公众号:AI前线
作者 | Jason Brownlee 译者 | Sambodhi 策划&编辑 | 刘燕
原文链接:请点击
文章仅用于学习交流,如有侵权请联系删除
机器学习涉及到机器学习算法和模型的使用。对于初学者来说,这很容易让人混淆,因为“机器学习算法”经常与“机器学习模型”交替使用。这两个到底是一样的东西呢,还是不一样的东西?作为开发人员,你对排序算法、搜索算法等“算法”的直觉,将有助于你厘清这个困惑。在本文中,我将阐述机器学习“算法”和“模型”之间的区别。
机器学习中的“算法”是什么?
机器学习中的“算法”是在数据上运行以创建机器学习“模型”的过程。
机器学习算法执行“模式识别”。算法从数据中“学习”,或者对数据集进行“拟合”。
机器学习算法有很多。比如,我们有分类的算法,如 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/


楼主热帖
分享到:  QQ好友和群QQ好友和群 QQ空间QQ空间 腾讯微博腾讯微博 腾讯朋友腾讯朋友
收藏收藏 转播转播 分享分享 分享淘帖 赞 踩

168大数据 - 论坛版权1.本主题所有言论和图片纯属网友个人见解,与本站立场无关
2.本站所有主题由网友自行投稿发布。若为首发或独家,该帖子作者与168大数据享有帖子相关版权。
3.其他单位或个人使用、转载或引用本文时必须同时征得该帖子作者和168大数据的同意,并添加本文出处。
4.本站所收集的部分公开资料来源于网络,转载目的在于传递价值及用于交流学习,并不代表本站赞同其观点和对其真实性负责,也不构成任何其他建议。
5.任何通过此网页连接而得到的资讯、产品及服务,本站概不负责,亦不负任何法律责任。
6.本站遵循行业规范,任何转载的稿件都会明确标注作者和来源,若标注有误或遗漏而侵犯到任何版权问题,请尽快告知,本站将及时删除。
7.168大数据管理员和版主有权不事先通知发贴者而删除本文。

您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

关闭

站长推荐上一条 /1 下一条

关于我们|小黑屋|Archiver|168大数据 ( 京ICP备14035423号|申请友情链接

GMT+8, 2024-4-26 08:47

Powered by BI168大数据社区

© 2012-2014 168大数据

快速回复 返回顶部 返回列表