机器学习应该以知足用户需求为目的进行设计算法
只有在回答这3W问题以后,你才能开始思考一些关于数据收集、特征工程、建模、评估和监测系统的问题。数据库
让咱们继续看看专门用于从数据中学习的Canvas的流程,它是由数据源、收集数据、特征工程、建模等几部分组成的。机器学习
数据源
这一部分提出了一个关于咱们可使用哪些原始数据源的问题。这一步不须要具体计划收集哪些数据,但会迫使你开始思考要使用的数据源。你须要考虑的一些数据源示例包括内部数据库、开放数据、域中的研究论文、API、网页抓取以及其余机器学习系统的输出等。性能
收集数据
这一部分主要解决收集和准备数据的问题。若是没有训练数据集,机器学习项目就不可能存在。而且,训练集最好包含大量已标记数据。这意味着你的学习系统将须要示例输入和他们指望的输出。只有从标有正确答案的数据中学习以后,机器学习模型才能用于对新数据进行预测。
一般,数据最初并非以标注形式提供的,制定数据集的计划很是重要,该数据集将特征过程用做预测的实际数据。只有输入的数据正确,所开发的学习算法才具备良好的性能。
例如,若是你想创建一个算法来预测一个Instagram账户是假的仍是真的,首先你须要人类将账户标记为真或假。对于一我的来讲这不是一项复杂的任务,可是根据你须要的数据量,这可能会变得很昂贵。
可是,你能够经过更具成本效益的方式获取数据。例如,Instagram容许其用户将其消息中的图像和配置文件报告为垃圾邮件。用户免费为Instagram算法标记数据,给喜欢的帖子点赞并将不当内容报告为垃圾邮件。而后,Instagram使用这些用户反馈来打击欺诈和垃圾邮件账户,并为每位客户提供个性化的消息。
须要指出的是,迄今为止最准确的机器学习系统都采用了“人为介入”方法。这种方法利用了机器和人的智能。当机器不肯定它作出的预测是否正确时,它会依赖于人,而后将人的答案添加到其模型中。“人为介入”这一方法有助于得到高质量的新数据,并随着时间的推移提升模型的准确性。
还有一些项目能够在没有标注数据集的状况下启动,。这些是关于无监督机器学习任务的项目,例如异常检测或观众分类。学习
特征工程
一旦拥有已标注的数据,你须要将其转换为算法可接受的格式。在机器学习中,这个过程被称为特征工程。最初的一组原始特征多是冗余、海量而没法管理。所以,数据科学家须要选择最重要的信息特征来促进学习。特征工程须要大量的实验,并将自动化技术与直觉和领域专业知识相结合。测试
InDataLabs的数据科学家Eugeny表示:阿里云
咱们使用简单的机器学习技术,如梯度提高或线性回归来选择和解释特征。回归模型的系数自动提供对特征重要性的评估估计。咱们使用不一样的超参数配置屡次训练模型,以确保特征的排序是可靠的,而且从实验到实验并无显着变化。翻译
若是你是领域专家(不是数据科学家),你应该从本身的角度指定哪些特征是最重要的,这对将来的数据工程师很是有用。若是发现本身列出了太多功能,请尝试将它们组合到特征系列中。
许多机器学习专家认为,正确选择的特征是有效构建模型的关键。设计
创建和更新模型
该部分解决了什么时候使用新数据建立/更新模型的问题。主要有两个缘由不断使得你的模型不断更新。首先,新数据能够改善模型。其次,它容许捕捉模型运行中的任何变化。模型须要用更新的频率取决于预测内容。
若是模型预测了短语的情感,就不须要天天或每周更新它。文本的结构变化很是缓慢甚至没有改变。若是你得到了更多的训练数据,这是你须要大规模的更新模型。
另外一方面,有一些模型在快速变化的状况中工做。例如,若是对客户行为作出预测,则应常常检查这一模型是否适用于新用户。受众规模和受众结构的重大变化可能使得咱们须要使用新数据更新模型。
有时更新须要更多的时间和更多的处理能力。在这种状况下,咱们须要在成本、时间和模型质量之间取舍。
这个部分的关键之处在于,你的模型不是一次性构建的,它应该随着时间而改变,就像世界上的全部事物同样。排序
Canvas主要致力于进行预测,并由机器学习任务、决策、预测、离线评估等部件组成。
机器学习任务
该部分旨在根据输入、输出和问题类型定义机器学习任务。最多见的机器学习任务是分类、排名和回归。
若是你预测某些物体是什么,要预测的输出的是类标签。在二进制分类中,有两种可能的输出类别。在多类分类中,有两个以上的可能类。咱们前面讨论过的伪造Instagram帐户的预测问题是二元分类的一个例子。输入数据可能包括我的资料名称、我的资料描述、帖子数量、关注者数量、输出标签多是“真的”或“假的“。
若是你试图预测数值,那么你正在处理回归任务。例如,当咱们试图根据价格历史和有关建筑和市场的其余信息来预测将来几天的房地产价格时,咱们能够将其视为回归任务。
决策
如何使用预测来向最终用户的决策提供建议?
在收集培训数据并创建模型以前,你和团队不得不阐述如何使用这些预测来作出为最终用户提供价值的决策。对于每一个项目来讲,这是一个很是重要的问题,由于它与项目的盈利能力密切相关。如前文所述,一个成功的机器学习系统应该为其用户创造额外的价值。
机器学习系统必须以真正有意义的方式影响决策过程,预测必须按时交付。许多公司犯的一个常见错误是创建一个机器学习模型,该模型应该能够在线进行预测,而后发现他们没法得到实时数据。因此,在计划您的机器学习项目时要注意时间,并确保在正确的时间提供正确的数据以提供您能够采起行动的预测。
机器学习系统的输出并不老是用户正在寻找的结果。例如,流失预测模型有助于预测一个月内谁可能流失,但最终用户须要的是流失预防(以具备成本效益的方式阻止客户流失)。从流失预测到流失预防须要作不少步骤,机器学习项目的拥有者必须可以事先描述这些步骤。若是你不能解释如何使用预测来作出为最终用户提供价值的决策,那么在这里停下来,不要向前走,除非你找到答案。
进行预测
该部分解决了如下问题:“咱们何时对新投入作出预测?”以及“咱们须要多长时间来设计新的投入并进行预测?”
有些模型容许分别更新每一个用户的预测。在这种状况下,你能够考虑几种模型更新方法:
还有一些系统,其中对不一样用户的预测是相互关联的,而且在不更新整个系统的状况下没法为一个用户进行更新。这种通用更新须要更多时间和更多处理能力,所以须要更多计划。预测更新所需的时间必须符合所需的更新频率。
例如,若是您要构建影片推荐系统,请首先考虑建议应该多久更新一次新输入,以便与用户相关且有价值。那么你应该检查这是否可能,由于你的机器学习系统的速度有限。若是您想天天更新而且更新须要两个小时,这对您来讲是个好消息。若是您认为您的建议只有每小时更新一次才有价值,而更新须要两个小时,则您须要再次在成本,时间和模型质量之间妥协。
离线评估
该模块在投入生产以前解决模型性能评估的问题。规划方法和指标以在部署以前评估系统很是重要。若是没有验证指标,您将没法选择可以作出最佳预测并回答的模型,模型是否足够好以及什么时候能够投入生产。所以,请确保您具备表明您正在努力实现的指标。
要评估一个有监督的机器学习算法,咱们一般使用k-fold交叉验证。该方法意味着对可用训练数据的(k-1)个子集上的几个机器学习模型进行训练,并对保留用于评估的补充子集进行评估。这个过程重复k次,每次都有不一样的验证数据。这种技术有助于避免过分拟合,同时使用全部可用的数据进行训练
InDataLabs的数据科学家Eugeny如是说。
离线评估的另外一种方法是对实时数据进行离线评估。例如,若是您正在创建预测房地产价格的模型,则只需等待实际销售数据可用,并将您的预测与实时数据进行比较。
Canvas 的最后部分涵盖了模型的在线评估和监测。在这里,您将指定度量标准来监控部署后的系统性能(跟踪度量标准),并衡量价值建立(业务度量标准)。调整这两种指标将使公司中的每一个人都更快乐。理想状况下,模型的质量与业务结果之间应有直接关系。
在线阶段有其本身的测试程序。A/B测试是最经常使用的在线测试形式。这种方法至关简单,但它有一些棘手的规则和原则,您须要遵循才能正确设置并解释结果。
A/B测试的一个有但愿的替代方法是称为多臂博弈的算法。若是您有多个竞争型号,而且您的目标是最大限度地提升用户的总体满意度,那么您能够尝试运行多臂博弈算法。
当模型投入生产时,它与真实用户进行交互,他们也能够提供关于模型准确性信息。您能够收集这种现场反馈,进行客户访谈或分析评论和支持请求。
您还应该继续跟踪模型在实时数据验证度量上的性能,并在模型质量对最终用户不满意以前进行模型更新。
本文由阿里云云栖社区组织翻译。
文章原标题《How to Design Better Machine Learning Systems with Machine Learning Canvas》
详情请阅读原文