写点什么

如何从 8 个维度全面比较机器学习算法?

  • 2020-04-07
  • 本文字数:1898 字

    阅读完需:约 6 分钟

如何从8个维度全面比较机器学习算法?

人类发明的机器学习(ML)算法简直数不胜数。当然,大多数时候只有一小部分被用于研究和工业。然而,对于个人来说,理解并记住所有这些 ML 模型的细节仍然有点困难。有些人可能会有一个错误的印象,认为所有这些算法都是完全不相关的。更重要的是,当两种算法似乎都有效时,如何选择使用算法 A,还是 B?


本文最初发布于 Towards Data Scienc 博客,经原作者授权由 InfoQ 中文站翻译并分享。



图片来源:https://unsplash.com/photos/qwtCeJ5cLYs


人类发明的机器学习(ML)算法简直数不胜数。当然,大多数时候只有一小部分被用于研究和工业。然而,对于个人来说,理解并记住所有这些 ML 模型的细节仍然有点困难。有些人可能会有一个错误的印象,认为所有这些算法都是完全不相关的。更重要的是,当两种算法似乎都有效时,如何选择使用算法 A,还是 B?


这篇文章的目的是为读者提供一个不同的角度来看待 ML 算法。有了这些角度,算法可以在同样的维度上进行比较,并且可以很容易地进行分析。本文在撰写时考虑了两个主要的 ML 任务——回归和分类。


时间复杂度

RAM模型下,算法所花费的“时间”是由算法的基本运算来度量的。虽然用户和开发人员可能更关心算法用于训练模型的挂钟时间,但在比较模型用于训练的时间时,使用最坏情况下的计算时间复杂度更公平。使用计算复杂度的好处是,可以忽略运行时使用的计算机能力、架构以及底层编程语言等的差异,允许用户关注算法基本操作的基本差异。


注意,在训练和测试期间,时间复杂度可能差别很大。例如,像线性回归这样的参数模型可能训练时间很长,但它们在测试期间很高效。


空间复杂度

空间复杂度根据输入大小度量算法运行需要多少内存。如果 ML 算法将太多数据加载到机器的工作内存中,则 ML 程序将无法成功运行。


样本复杂度

样本复杂度度量为了保证训练的网络可以有效的泛化所需的训练样本量。例如,深度神经网络需要大量的训练数据来训练,因此,具有较高的样本复杂度。


偏差-方差权衡

不同的 ML 算法会有不同的偏差-方差权衡。偏差误差来自于模型偏向于特定解或假设的事实。例如,在非线性数据上拟合线性决策边界时,偏差较大。另一方面,方差测量模型方差带来的误差。它是模型预测与期望模型预测的均方差



偏差-方差权衡,图片来源:https://www.cs.cornell.edu/courses/cs4780/2018fa/lectures/lecturenote12.html


不同的模型做出了不同的偏差-方差权衡。例如,朴素贝叶斯被认为是一个高偏差、低方差的模型,因为它所做的假设过于简单。


在线和离线

在线和离线学习是指机器学习软件学习更新模型的方式。在线学习意味着可以一次提供一条训练数据,以便在获得新数据时立即更新参数。而离线学习为了更新参数,需要在新数据出现时重新训练(重新训练整个模型)。如果一个算法是在线的,那么它应该是高效的,因为在生产中使用的参数可以实时更新,以反映新数据的影响。


ID3 决策树算法是离线学习的一个例子。ID3 的工作方式是查看全局数据并进行贪婪搜索以最大化信息增益。当新的数据点出现时,整个模型需要重新训练。而随机梯度下降法(SGD)是一种在线算法,可以在新数据到达时更新训练模型的参数。


并行性

并行算法是指一个算法可以在给定的时间内完成多个操作。这可以通过将工作负载分配到不同的工作者(如单机或多机中的处理器)来实现。像梯度增强决策树(GBDT)这样的序列算法很难并行化,因为下一个决策树是根据前一个决策树的误差构建的。


K 近邻(k-NN)模型的特性让它可以轻松地在多台机器上同时运行。这是在机器学习中使用 MapReduce 的一个经典例子。


参数化

虽然参数模型的定义并不严格,但是这种模型分类在统计学习领域中得到了广泛的应用。简单地说,参数化模型是指模型的参数数量是固定的,而非参数化模型的参数数量随着数据的增加而增加。另一种定义参数化模型的方法是基于其对数据概率分布形状的基本假设。如果没有给出假设,则为非参数化模型。


参数化模型在机器学习中很常见。例如线性回归、神经网络以及许多其他 ML 模型。另一方面,k-NN 和 SVM(支持向量机)是非参数化模型。


方法、假设和目标

本质上,所有的机器学习问题都是最优化问题。在机器学习模型或需要优化的潜在目标函数背后,总是有一种方法。对算法背后的主要思想进行比较,可以增强算法的合理性。


例如,线性回归模型的目标是最小化预测的平方误差和实际值(均方误差,MSE),而 Lasso 回归的目标是最小化 MSE,同时通过添加额外的正则化项来限制学习的参数,防止过拟合。


总之,ML 算法可以根据不同的标准进行分析。这些标准实际上有助于度量不同 ML 模型的有效性和效率。


你能想到其他比较 ML 算法的视角吗?


原文链接:


How to Compare Machine Learning Algorithms


2020-04-07 15:141509

评论

发布
暂无评论
发现更多内容

支持 10 亿日流量的基础设施:当 Apahce APISIX 遇上腾讯

Apache APISIX 中国社区

案例 API网关 APISIX Meetup 腾讯游戏

SphereEx CEO 张亮:数据库上云是大势所趋|初心·问

SphereEx

数据库 开源

FL Studio基本功能介绍

懒得勤快

从 FFmpeg 性能加速到端云一体媒体系统优化

阿里云视频云

开源 ffmpeg 视频处理 视频流 视频云

Android SDK 之用户路径采集

神策技术社区

数据 路径规划 分析 行为数据

容器监控薅光了头发?这篇你再也不能错过!

观测云

json Docker 云计算 Linux 容器

原来一条select语句在MySQL是这样执行的《死磕MySQL系列 一》

咔咔

MySQL 数据库

架構實戰營 - 畢業設計

Frank Yang

架构实战营

神策 Android 全埋点插件介绍

神策技术社区

程序员 数据分析 埋点

揭秘环境管理 Noah 的技术实现

Qunar技术沙龙

测试 Dev QA 环境 资源池

2021 年 8 月国产数据库排行榜:秋日胜春朝

墨天轮

数据库 TiDB oceanbase 国产数据库 达梦

其实TCP聪明得很!详解TCP常见的五个异常处理场景

Java 编程 架构 程序人生 架构师

大数据实战训练营-sparkcore作业

Clarke

MySQL 系列教程之(十二)扩展了解 MySQL 的存储过程,视图,触发器

若尘

MySQL 数据库 8月日更

架构实战营 模块六作业

孫影

架构实战营 #架构实战营

神策分析 Web JS SDK 功能介绍

神策技术社区

程序员 代码 埋点

LeetCode刷题07-简单 整数翻转

ベ布小禅

8月日更

书单 | 无所不能的Python,从技术到办公,总有一款适合你!

博文视点Broadview

微信小程序图片流&本地图片转base64处理方案

页面仔小杨

微信小程序

2021年堡垒机采购就选国内知名品牌行云管家!

行云管家

云计算 云安全 堡垒机 云计算运维

iOS SDK 架构解析

神策技术社区

程序员 数据 埋点

4轮技术面+1轮HR面,成功拿到腾讯40k*16的Offer ,详解面试流程和真题解析

Java 程序员 架构 面试

LeetCode题解:28. 实现 strStr(),暴力法,JavaScript,详细注释

Lee Chen

算法 大前端 LeetCode

写作——开启技术成长之路

神策技术社区

程序员 写作 日志

TronChain波场链智能合约开发详情|智能合约DAPP搭建

量化系统19942438797

智能合约 波场链

烂大街的Spring循环依赖该如何回答?

Java spring 程序员 架构 面试

新思科技推出Rapid Scan新功能帮助开发团队在编写云原生应用的同时确保安全性

InfoQ_434670063458

新思科技 静态应用安全

硬核分析 Java 内存 Cache 设计与最佳实践 - GuavaCache 篇

普普通通程序员

神策分析 iOS SDK 代码埋点解析 | 数据采集

神策技术社区

程序员 数据 代码 埋点

Golang高并发:生产者消费者模型

Regan Yue

Go 语言 8月日更 生产者消费者模型

如何从8个维度全面比较机器学习算法?_文化 & 方法_garychl_InfoQ精选文章