超详细!上线一个机器学习项目你需要哪些准备?

摘要: Canvas是用于设计和记录机器学习系统的模板。它比简单的文本文档具有优势,因为Canvas用简单的部件通过部件之间的相关性来寻找机器学习系统的关键组件。这个工具已经很流行,因为它对复杂项目进行了可视化操作。 在本文中,我们通过列举数据科学家遇到的实际问题和实用的技巧来描述Canvas的每个部分。


价值主张

机器学习应该以满足用户需求为目的进行设计

  • 谁是预测系统的最终用户?
  • 我们需要他们做些什么?
  • 服务的目标是什么?目标的意义又是什么?
    只有在回答这3W问题之后,你才能开始思考一些关于数据收集、特征工程、建模、评估和监测系统的问题。

从数据中学习

让我们继续看看专门用于从数据中学习的Canvas的流程,它是由数据源、收集数据、特征工程、建模等几部分组成的。

数据源

这一部分提出了一个关于我们可以使用哪些原始数据源的问题。这一步不需要具体计划收集哪些数据,但会迫使你开始思考要使用的数据源。你需要考虑的一些数据源示例包括内部数据库、开放数据、域中的研究论文、API、网页抓取以及其他机器学习系统的输出等。

收集数据

这一部分主要解决收集和准备数据的问题。如果没有训练数据集,机器学习项目就不可能存在。并且,训练集最好包含大量已标记数据。这意味着你的学习系统将需要示例输入和他们期望的输出。只有从标有正确答案的数据中学习之后,机器学习模型才能用于对新数据进行预测。
通常,数据最初并不是以标注形式提供的,制定数据集的计划非常重要,该数据集将特征过程用作预测的实际数据。只有输入的数据正确,所开发的学习算法才具有良好的性能。
例如,如果你想建立一个算法来预测一个Instagram帐户是假的还是真的,首先你需要人类将帐户标记为真或假。对于一个人来说这不是一项复杂的任务,但是根据你需要的数据量,这可能会变得很昂贵。
但是,你可以通过更具成本效益的方式获取数据。例如,Instagram允许其用户将其消息中的图像和配置文件报告为垃圾邮件。用户免费为Instagram算法标记数据,给喜欢的帖子点赞并将不当内容报告为垃圾邮件。然后,Instagram使用这些用户反馈来打击欺诈和垃圾邮件帐户,并为每位客户提供个性化的消息。
需要指出的是,迄今为止最准确的机器学习系统都采用了“人为介入”方法。这种方法利用了机器和人的智能。当机器不确定它做出的预测是否正确时,它会依赖于人,然后将人的答案添加到其模型中。“人为介入”这一方法有助于获得高质量的新数据,并随着时间的推移提高模型的准确性。
还有一些项目可以在没有标注数据集的情况下启动,。这些是关于无监督机器学习任务的项目,例如异常检测或观众分类。

特征工程

一旦拥有已标注的数据,你需要将其转换为算法可接受的格式。在机器学习中,这个过程被称为特征工程。最初的一组原始特征可能是冗余、海量而无法管理。因此,数据科学家需要选择最重要的信息特征来促进学习。特征工程需要大量的实验,并将自动化技术与直觉和领域专业知识相结合。

InDataLabs的数据科学家Eugeny表示:

我们使用简单的机器学习技术,如梯度提升或线性回归来选择和解释特征。回归模型的系数自动提供对特征重要性的评估估计。我们使用不同的超参数配置多次训练模型,以确保特征的排序是可靠的,并且从实验到实验并没有显着变化。

如果你是领域专家(不是数据科学家),你应该从自己的角度指定哪些特征是最重要的,这对未来的数据工程师非常有用。如果发现自己列出了太多功能,请尝试将它们组合到特征系列中。
许多机器学习专家认为,正确选择的特征是有效构建模型的关键。

建立和更新模型

该部分解决了何时使用新数据创建/更新模型的问题。主要有两个原因不断使得你的模型不断更新。首先,新数据可以改善模型。其次,它允许捕捉模型运行中的任何变化。模型需要用更新的频率取决于预测内容。
如果模型预测了短语的情感,就不需要每天或每周更新它。文本的结构变化非常缓慢甚至没有改变。如果你获得了更多的训练数据,这是你需要大规模的更新模型。
另一方面,有一些模型在快速变化的情况中工作。例如,如果对客户行为做出预测,则应经常检查这一模型是否适用于新用户。受众规模和受众结构的重大变化可能使得我们需要使用新数据更新模型。
有时更新需要更多的时间和更多的处理能力。在这种情况下,我们需要在成本、时间和模型质量之间取舍。
这个部分的关键之处在于,你的模型不是一次性构建的,它应该随着时间而改变,就像世界上的所有事物一样。

进行预测

Canvas主要致力于进行预测,并由机器学习任务、决策、预测、离线评估等部件组成。

机器学习任务

该部分旨在根据输入、输出和问题类型定义机器学习任务。最常见的机器学习任务是分类、排名和回归。
如果你预测某些物体是什么,要预测的输出的是类标签。在二进制分类中,有两种可能的输出类别。在多类分类中,有两个以上的可能类。我们前面讨论过的伪造Instagram账户的预测问题是二元分类的一个例子。输入数据可能包括个人资料名称、个人资料描述、帖子数量、关注者数量、输出标签可能是“真的”或“假的“。
如果你试图预测数值,那么你正在处理回归任务。例如,当我们试图根据价格历史和有关建筑和市场的其他信息来预测未来几天的房地产价格时,我们可以将其视为回归任务。

决策

如何使用预测来向最终用户的决策提供建议?
在收集培训数据并建立模型之前,你和团队不得不阐述如何使用这些预测来做出为最终用户提供价值的决策。对于每个项目来说,这是一个非常重要的问题,因为它与项目的盈利能力密切相关。如前文所述,一个成功的机器学习系统应该为其用户创造额外的价值。
机器学习系统必须以真正有意义的方式影响决策过程,预测必须按时交付。许多公司犯的一个常见错误是建立一个机器学习模型,该模型应该可以在线进行预测,然后发现他们无法获得实时数据。所以,在计划您的机器学习项目时要注意时间,并确保在正确的时间提供正确的数据以提供您可以采取行动的预测。
机器学习系统的输出并不总是用户正在寻找的结果。例如,流失预测模型有助于预测一个月内谁可能流失,但最终用户需要的是流失预防(以具有成本效益的方式阻止客户流失)。从流失预测到流失预防需要做很多步骤,机器学习项目的拥有者必须能够事先描述这些步骤。如果你不能解释如何使用预测来做出为最终用户提供价值的决策,那么在这里停下来,不要向前走,除非你找到答案。

进行预测

该部分解决了以下问题:“我们什么时候对新投入做出预测?”以及“我们需要多长时间来设计新的投入并进行预测?”
有些模型允许分别更新每个用户的预测。在这种情况下,你可以考虑几种模型更新方法:

  • 每次用户打开您的应用程序时都会进行新的预测
  • 新的预测是根据请求做出的,用户可以通过点击应用程序中的特殊按钮来请求更新
  • 预测更新由某个事件触发,例如用户提交新的重要信息
  • 对所有用户按计划进行新的预测,例如每周一次
    还有一些系统,其中对不同用户的预测是相互关联的,并且在不更新整个系统的情况下无法为一个用户进行更新。这种通用更新需要更多时间和更多处理能力,因此需要更多计划。预测更新所需的时间必须符合所需的更新频率。

例如,如果您要构建影片推荐系统,请首先考虑建议应该多久更新一次新输入,以便与用户相关且有价值。那么你应该检查这是否可能,因为你的机器学习系统的速度有限。如果您想每天更新并且更新需要两个小时,这对您来说是个好消息。如果您认为您的建议只有每小时更新一次才有价值,而更新需要两个小时,则您需要再次在成本,时间和模型质量之间妥协。

离线评估

该模块在投入生产之前解决模型性能评估的问题。规划方法和指标以在部署之前评估系统非常重要。如果没有验证指标,您将无法选择能够做出最佳预测并回答的模型,模型是否足够好以及何时可以投入生产。因此,请确保您具有代表您正在努力实现的指标。

要评估一个有监督的机器学习算法,我们通常使用k-fold交叉验证。该方法意味着对可用训练数据的(k-1)个子集上的几个机器学习模型进行训练,并对保留用于评估的补充子集进行评估。这个过程重复k次,每次都有不同的验证数据。这种技术有助于避免过度拟合,同时使用所有可用的数据进行训练

InDataLabs的数据科学家Eugeny如是说。
离线评估的另一种方法是对实时数据进行离线评估。例如,如果您正在建立预测房地产价格的模型,则只需等待实际销售数据可用,并将您的预测与实时数据进行比较。

实时评估和监测

Canvas 的最后部分涵盖了模型的在线评估和监测。在这里,您将指定度量标准来监控部署后的系统性能(跟踪度量标准),并衡量价值创建(业务度量标准)。调整这两种指标将使公司中的每个人都更快乐。理想情况下,模型的质量与业务结果之间应有直接关系。
在线阶段有其自己的测试程序。A/B测试是最常用的在线测试形式。这种方法相当简单,但它有一些棘手的规则和原则,您需要遵循才能正确设置并解释结果。
A/B测试的一个有希望的替代方法是称为多臂博弈的算法。如果您有多个竞争型号,并且您的目标是最大限度地提高用户的整体满意度,那么您可以尝试运行多臂博弈算法。
当模型投入生产时,它与真实用户进行交互,他们也可以提供关于模型准确性信息。您可以收集这种现场反馈,进行客户访谈或分析评论和支持请求。
您还应该继续跟踪模型在实时数据验证度量上的性能,并在模型质量对最终用户不满意之前进行模型更新。

原文链接

干货好文,请关注扫描以下二维码:



本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/news/521879.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

漫画:什么是插入排序?

戳蓝字“CSDN云计算”关注我们哦!————— 第二天 —————————————————人们如何进行扑克牌的排序呢?举个例子,比如我手中有红桃6,7,9,10这四张牌,已经处于升序排列:这时候,我又抓到了一…

(vue基础试炼_03)使用vue.js实现TodoList

接上一篇:(vue基础试炼_02)使用vue.js实现隔2秒显示不同内容https://gblfy.blog.csdn.net/article/details/103841818 指令作用v-for循环数据v-on绑定事件v-model数据的双向绑定文章目录一、需求说明① 案例文档② 基础代码③ 基础效果图二、…

Python API快餐教程(1) - 字符串查找API

摘要: 字符串查找API 字符串处理相关API 字符串是7种序列类型中的一种。除了序列的操作函数,比如len()来求字符串长度之外,Python还为字符串提供丰富到可以写个编辑器的API. 查找类API 首先,下面的查找API都是为了查找位置&#x…

因吵架总被骂,阿里程序猿一气之下发明“情侣吵架神器”

摘要: 最近,阿里有个叫虎跑的程序猿,发明了一个“吵架神器”。 到底是个什么黑科技? 最近,阿里有个叫虎跑的程序猿,发明了一个“吵架神器”。到底是个什么黑科技?和很多情侣一样,虎跑…

java中volatile关键字的含义_java中volatile关键字的含义

转自:http://www.cnblogs.com/aigongsi/archive/2012/04/01/2429166.html在java线程并发处理中,有一个关键字volatile的使用目前存在很大的混淆,以为使用这个关键字,在进行多线程并发处理的时候就可以万事大吉。Java语言是支持多线…

(vue基础试炼_04)使用组件改造TodoList

接上一篇:(vue基础试炼_03)使用vue.js实现TodoListhttps://gblfy.blog.csdn.net/article/details/103842233 指令说明v-bind传入绑定值文章目录一、前端页面组件化二、全局组件学习三、局部组件学习一、前端页面组件化 页面组件化&#xff1a…

我们到底该如何看待6G?

戳蓝字“CSDN云计算”关注我们哦!近日,加拿大媒体报道,华为已确认在加拿大渥太华开启6G网络研究,已与加拿大多所大学的研究者展开洽谈。华为表示,自家的渥太华研发实验室将引领华为全球6G发展。图片来源网络消息传出之…

两年AI研究经验(教训)总结,进来看看吧!

摘要: 本文以过来人的身份将自身2年的研究经验做了一下分享,希望本文对于即将开始从事人工智能研究的朋友有所帮助。人工智能研究这个领域是有一定门槛的。对于初学者来说,一般通常的做法是直接购买一些热门的书籍,比如“西瓜书”…

C语言:字符串字面量及其保存位置

相关阅读 C语言https://blog.csdn.net/weixin_45791458/category_12423166.html?spm1001.2014.3001.5482 虽然C语言中不存在字符串类型,但依然可以通过数组或指针的方式保存字符串,但字符串字面量却没有想象的这么简单,本文就将对此进行讨论…

system.argumentnullexception值不能为null_MySQL NULL 值如何处理?

我们已经知道 MySQL 使用 SQL SELECT 命令及 WHERE 子句来读取数据表中的数据,但是当提供的查询条件字段为 NULL 时,该命令可能就无法正常工作。为了处理这种情况,MySQL提供了三大运算符:IS NULL: 当列的值是 NULL,此运算符返回 true。IS NOT NULL: 当列…

神经网络的优缺点

摘要: 深度学习目前受到了追捧。人们想将神经网络应用到各个地方,但是它们真的适合每个地方吗?在本篇文章中,将对于这个问题以及深度学习现在如此受追捧的原因进行讨论。通过这篇文章,您将了解神经网络的主要缺点&…

(vue基础试炼_05)简单组件之间的传值

接上一篇:(vue基础试炼_04)使用组件改造TodoListhttps://gblfy.blog.csdn.net/article/details/103844256 文章目录一、上篇回顾① 代码欣赏② 代码分析二、子组件如何向父组件传值呢?① 需求案例文档② 需求案例效果图③ 思考与思…

漫画:程序员战力图鉴

戳蓝字“CSDN云计算”关注我们哦!看漫画了解程序员战斗力 are u ready?编程架构能力撕比嘴炮能力划水摸鱼能力花式甩锅能力画饼忽悠能力PPT吹比能力哈哈哈哈哈哈程序员哥哥上面说的是你吗 福利扫描添加小编微信,备注“姓名公司职位”&#xf…

Python数据挖掘与机器学习,快速掌握聚类算法和关联分析

摘要:前文数据挖掘与机器学习技术入门实战与大家分享了分类算法,在本文中将为大家介绍聚类算法和关联分析问题。分类算法与聚类到底有何区别?聚类方法应在怎样的场景下使用?如何使用关联分析算法解决个性化推荐问题?本…

评分9.7!这本Python书彻底玩大了?程序员:真香!

「超级星推官/每周分享」是一个围绕程序员生活、学习相关的推荐栏目。CSDN出品,每周发布,暂定5期。关键词:靠谱!优质!本期内容,我们将抽1人送出由我司程序员奉为“超级神作”的《疯狂Python讲义》1本&#…

vs 如何将源文件转换成可执行文件_如何将手机便签转换成word文本文档

如何将手机便签转换成word文本文档?实际上,很多手机自带的便签,虽然可以将单条便签内容,以文字或者图片的形式分享到xxx云文档,但却很少有支持直接转换成Word文档的。一般情况下,他们需要将手机便签里的内容…

端上智能——深度学习模型压缩与加速

摘要:随着深度学习网络规模的增大,计算复杂度随之增高,严重限制了其在手机等智能设备上的应用。如何使用深度学习来对模型进行压缩和加速,并且保持几乎一样的精度?本文将为大家详细介绍两种模型压缩算法,并…

jvm调优 java_opt_Java-100天知识进阶-JVM调优工具-JDK自带工具-知识铺《八》

原标题:Java-100天知识进阶-JVM调优工具-JDK自带工具-知识铺《八》JVM 监控分析工具一、JDK 自带工具1. jconsoleJDK/bin 目录下, jconsole.exe 双击打开, 自动搜索本机运行的虚拟机进程。选择其中一个进程即可,开始进行JVM监控1.…

这帮吃货程序猿,给阿里食堂来了一波骚操作

我叫宋爽,在别人眼里,我是一个程序猿。 别的程序猿,喜欢摁键盘,我嘛,就喜欢吃。 有一次,去医院体检,拿到CT片的我,看着自己的脊椎骨,脑子中一直在想:啊&#…

linux 查看shell脚本执行了多长时间

步骤说明命令①写一个1.sh脚本vim1.sh,把脚本内容复制进去②赋予1.sh可执行权限chmod u_x 1.sh③把要执行的命令复制到第4行,保存退出esc :wq④执行脚本./1sh⑤查看执行脚本,共消耗多长时间基础脚本模板 #!/bin/bash starttimedate %Y-%m-%d…