写点什么

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

2020 年 4 月 07 日

如何从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 年 4 月 07 日 15:141109

评论

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

架构师训练营第 05周—— 练习

李伟

第五周学习总结

CP

一致性哈希算法&Java实现

Lane

极客大学架构师训练营

免费的GPU,还有全系列的OpenJDK

孙苏勇

Java 学习 gpu Openjdk Colab

Week05 学习心得 - 技术选型

极客大学架构师训练营

架构师训练营Week5总结

平淡人生

第5周总结

远方

架构师训练营第五周作业

James-Pang

极客大学架构师训练营

第5周总结

andy

架构师第五周作业

suke

极客大学架构师训练营

一致性哈希算法简单实现

Jerry Tse

源码 极客大学架构师训练营 作业 一致性哈希

架构师训练营 第五周 个人感想

且听且吟

架构师训练营第五周作业

fenix

LeetCode 3. Longest Substring Without Repeating Characters

liu_liu

算法 Leetc

LeetCode 12. Integer to Roman

liu_liu

算法 LeetCode

架构师培训 -05 缓存、消息和负载均衡

刘敏

区块链大规模应用“补位”开始了

CECBC区块链专委会

架构师训练营第五周学习总结

fenix

架构师第五周总结

suke

极客大学架构师训练营

架构师训练营 Week5作业

平淡人生

第五周作业

倪惠华

一致性哈希算法分析与go语言实现

superman

golang 极客大学架构师训练营 一致性Hash算法

第5周:作业一

远方

第5周-总结

Dawn

架构师训练营第五周总结

James-Pang

极客大学架构师训练营

再谈大型网站技术应用——上篇

Jerry Tse

网站架构 分布式系统 极客大学架构师训练营 作业

架构师训练营-第五章-一致性hash算法

而立

极客大学架构师训练营

第五周作业

CP

week5. 总结心得

dj_cd

极客大学架构师训练营

第5周作业

andy

week5. 课后作业

dj_cd

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