东亚银行、岚图汽车带你解锁 AIGC 时代的数字化人才培养各赛道新模式! 了解详情
写点什么

选择机器学习模型,要注意这 7 个问题

  • 2021-08-13
  • 本文字数:1765 字

    阅读完需:约 6 分钟

选择机器学习模型,要注意这7个问题

本文最初发表于 Towards Data Science 博客,经原作者 Santiago Valdarrama 授权,InfoQ 中文站翻译并分享。


和很多人的想法相反,性能最好的机器学习模型未必是最好的解决方案。在 Kaggle 竞赛中,性能是你需要的全部。实际上,这也是另一个需要考虑的因素。下面让我们从模型的性能开始,并重新考虑一些其他考虑因素,以便在选择模型来解决问题时牢记在心。

1. 性能

模型结果的质量是选择模型时应考虑的基本因素。优先选择能够使性能最大化的算法。取决于问题,不同的度量标准可能对分析模型的结果有所帮助。举例来说,最流行的度量有正确率、准确率、查全率和 F1 分数。


切记,并非每一个度量都适用于所有的情况。例如,在处理不平衡的数据集时,正确率是不适当的。在我们准备开始模型选择过程之前,选择一种良好的度量(或一组指标)来评估模型性能是一项至关重要的任务。

2. 可解释性

很多情况下,对模型结果的解释是至关重要的。遗憾的是,很多算法就像黑盒子一样工作,无论结果如何,都很难解释。在这些情况下,缺乏可解释性可能是成功或失败的决定性条件。


如果存在可解释性问题,线性回归和决策树是很好的选择。神经网络则不然。选择好的候选者之前,一定要知道每种模型的结果是否易于解释。有意思的是,可解释性和复杂性通常存在于两个极端,所以接下来我们来看看复杂性。

3. 复杂性

一种复杂的模型在数据中可能会发现更多有趣的模式,但是,这会使维护和解释更加困难。


这里有一些不严谨的概括,需要记住:


  • 复杂性越高,性能就越好,但是成本也越高。

  • 复杂性与可解释性成反比。模型越复杂,解释结果就越困难。


抛开可解释性不谈,构建和维护模型的成本是项目成功的关键因素。复杂的设置会对模型的整个生命周期产生更大的影响。

4. 数据集大小

可用的训练数据量是选择模型时要考虑的主要因素之一。


神经网络在处理和合成大量数据方面确实很出色。KNN(K-Nearest Neighbors,K- 最近邻)模型更好,示例也更少。除了可用的数据量外,还有一个重要的考虑因素是,为了获得好的结果,你真正需要多少数据。有时候,你可以通过 100 个训练例子来建立一个很好的解决方案;有时候,你需要 100000 个例子。


利用这些与你的问题和数据量有关的信息,选择一个模型来处理它。

5. 维度

从两个不同的角度看待维度是有用的:数据集的垂直大小代表我们拥有的数据量。水平大小代表特征的数量。


我们已经讨论了垂直维度如何影响优秀模型的选择。事实证明,水平维度也是需要考虑的因素。如果你的模型有更多的特征,就会有更好的解决方案。越多的特征也会增加模型的复杂性。


维度的诅咒”(Curse of dimensionality)很好地介绍了维度如何影响模型的复杂性。可以想象,并非每一个模型对高维数据集的扩展都是相同的。在将高维数据作为问题进行集成时,我们可能也需要引入特定的降维算法。PCA 是这方面最流行的算法之一。

6. 训练时间与成本

训练一个模型需要多长时间,需要多少钱?你会选择一个正确率为 98%、训练成本为 10 万美元的模型,还是选择一个准确率为 97%、成本为 1 万美元的模型?


这个问题的答案当然取决于你的个人情况。


需要在接近实时的情况下结合新知识的模型,很难适应长周期的训练。举例来说,推荐系统需要根据每个用户的动作不断更新,才能从廉价的训练周期中获益。在设计可扩展的解决方案时,平衡时间、成本和性能非常重要。

7. 推理时间

运行一个模型并作出预测需要多长时间?想象一下自动驾驶系统:它需要实时作出决策,因此任何时间过长的模型都无法被考虑。


例如,使用 KNN 开发预测所需的大部分处理都在推理过程中进行。因此运行它的成本非常高。但决策树的推理时间较短,在训练过程中需要较长的时间。

结语

很多人专注于他们最喜欢的模型。常常是他们最熟悉的那个,在前一个项目中给他们带来了好效果。


但是机器学习中没有免费的午餐。任何一种模型都不能同时适用于所有情况,尤其是当我们考虑现实生活中的系统限制时。


当选择一个好的模型时,了解几个不同的考虑因素对确保项目的成功至关重要。作为总结,下面列出了我们刚才讨论的内容:


  1. 模型的性能

  2. 结果的可解释性

  3. 模型的复杂性

  4. 数据集的大小

  5. 数据的维度

  6. 训练时间和成本

  7. 推理时间


作者介绍:


Santiago Valdarrama,专注于机器学习系统。


原文链接:


https://towardsdatascience.com/considerations-when-choosing-a-machine-learning-model-aa31f52c27f3?gi=b42e581fe448

公众号推荐:

2024 年 1 月,InfoQ 研究中心重磅发布《大语言模型综合能力测评报告 2024》,揭示了 10 个大模型在语义理解、文学创作、知识问答等领域的卓越表现。ChatGPT-4、文心一言等领先模型在编程、逻辑推理等方面展现出惊人的进步,预示着大模型将在 2024 年迎来更广泛的应用和创新。关注公众号「AI 前线」,回复「大模型报告」免费获取电子版研究报告。

AI 前线公众号
2021-08-13 11:002765
用户头像
刘燕 InfoQ高级技术编辑

发布了 1112 篇内容, 共 492.4 次阅读, 收获喜欢 1966 次。

关注

评论

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

基于Magma构建灵活、低成本无线接入网

俞凡

架构 网络 通信

Go应用服务疑似内存泄露问题排查

SFLYQ

Go 容器 内存溢出

架构训练营模块六作业-拆分电商系统为微服务

张Dave

泼辣修图2023永久版安装包下载

茶色酒

泼辣修图2023

软件测试/测试开发 | web前端的HTML浅析

测试人

软件测试 自动化测试 测试开发 web测试

毕业项目 - 设计电商秒杀系统

in9

parallels desktop2023汉化版虚拟机下载

茶色酒

parallels desktop2023

软件动力学:我理解的可演进架构

agnostic

可演进架构

支持30+,这款文档提取工具太好用了!

Jackpop

为什么字节跳动选择使用 Go 语言?

Jackpop

开源免费!一款性能和体验超棒的编程IDE

Jackpop

parallels desktop18新许可证和升级

茶色酒

parallels desktop18

Nostr 协议详解(科普篇)

Rayjun

分布式 nostr

软件测试/测试开发 | 测试环境搭建

测试人

软件测试 自动化测试 测试开发 测试环境

Java学习路线阅读计划时间线

kcodez

后端开发 Java 开发

JUC 常用 4 大并发工具类

鱼找水需要时间

Java spring JUC

这才是机器学习正确高效的学习路线!

Jackpop

为什么放弃Vim而选择Neovim?

Jackpop

2023汉化和谐版camtasia电脑屏幕录制软件

茶色酒

Camtasia Studio2023

管理者既要安定内部,也要团结外部

石云升

极客时间 2月月更 技术领导力实战笔记

第九期-毕业设计

wuli洋

Nginx unexpected end of file 配置证书遇到问题,如何解决?

程序员泥瓦匠

nginx

从技术专家到总经理,在不确定中探索和成长

石云升

极客时间 2月月更 技术领导力实战笔记

响应式操作实战

老周聊架构

响应式编程 2月月更

效率倍增!VS Code瞬间好用多了

Jackpop

寄存器和移位寄存器分析与建模

timerring

FPGA

设计模式之模板模式

程序员大彬

设计模式

后GameFi时代下的新宠Umi'Friends,能否成为下一个Axie Infinity?

股市老人

C/C++ 操作注册表与服务

编程界的劣驱良现象有哪些? 圆桌收录 用代码构建世界

Jackpop

20K+ Star!一款开源免费B站视频下载工具

Jackpop

选择机器学习模型,要注意这7个问题_AI&大模型_Santiago Valdarrama_InfoQ精选文章