azure 机器学习_如何在Azure机器学习中使用异常检测

azure 机器学习

微软在机器学习上的一大赌注是,这些技术需要实现民主化,并变成相对易于理解的构建基块,微软的开发人员可以在他们自己的应用程序中快速学习和使用这些技术。

这就是Azure认知服务的用武之地。不必了解ResNet50深度学习神经网络的培训层,也不必了解如何使用TensorFlow或Microsoft认知工具包(CNTK)构建学习平台,这些服务只是API,可以用了。 微软已经为这些服务训练了神经网络,并将继续对其进行调整,并使用实际操作作为未来改进的基础。 与构建和运行自己的机器学习算法的计算和存储成本相比,使用它们便宜。

[避免机器学习失败: 使机器学习失败的6种方法 。 • 机器学习课程:5家公司分享了他们的错误 。 ]

对于希望向应用程序添加基本人工智能的任何人,Azure上的机器学习工具已Swift成为重要资源。 重要的是要了解它们的局限性,重点放在三个关键领域:计算机视觉,文本分析和语音识别。 它们都是重要的领域,但是它们是现代机器学习可以完成的工作的有限子集。

Azure认知服务进入新的AI领域

幸运的是,探索机器学习其他方面的第一个新的认知服务最近进入了beta版: 将异常检测添加到名册中 。 异常检测是一种重要的AI工具,可以分析时序数据中数据源超出正常操作特性的项目。 这使它成为极其灵活的工具,因为现代企业拥有大量流数据,从金融交易到软件日志再到设备遥测。 使用一个API在所有这些不同的提要上工作的能力不应被低估,因为它使构建合适的软件变得容易得多。

通常,异常检测需要花费一些时间来设置。 您需要针对大量数据训练模型,以确定什么是正常操作以及哪些与众不同。 这就是信用卡欺诈检测系统如何构建您的支出(及其所有客户习惯)的模型,以检测何时使用了被盗卡并阻止任何未来交易以将损失降至最低。

如果要将这种类型的操作设为通用服务,则需要能够针对要发送到该服务的数据类型切换合适的检测模型。 这正是Azure认知服务异常检测器采用的方法,其自适应推理引擎可以选择适合所使用的时间序列数据的检测模型。

通过在运行时选择一种算法,Microsoft避免了异常检测的最差的培训成本。 它使用的算法可能并不完美,但是它比拥有一种适用于所有规则的规则引擎处理异常检测要好得多。 还有一个额外的好处:您不必花费大量时间来标记千兆字节的训练数据。

构建一个异常检测器应用

与所有Azure认知服务一样,“异常检测器”也需要一个订阅密钥(可以在Azure门户中生成)以及订阅的终结点URL。 有用的是,Microsoft提供了一个运行在Jupyter笔记本中的演示服务,您可以使用该演示服务快速试用该服务,然后再将其与自己的代码和数据一起使用。

实际上,您将通过async函数将JSON格式的数据发送到服务。 如果要使用流数据,则可以在每次更新时发送时间序列数据的移动窗口,并检测序列中最后一个数据的异常。 如果使用它来分析批处理数据,则将获得数据集中已识别异常位置的列表,作为每个数据点的布尔值数组。 如果为true,则为异常,您可以使用任何真实值的索引来为您提供源数据数组中异常的索引。

使用时序数据

异常检测器的工作原理与大多数Azure平台服务一样, 提供了一个接受JSON格式数据的REST API 。 使用C#SDK ,可以更轻松地构建用于服务的代码。 您可以使用其他语言,但这样做需要手动构建REST调用。

Microsoft对数据格式有一些限制:数据之间的时间间隔必须固定,并且尽管系统可以接受丢失的数据最多不超过预期点的10%,但最好确保数据是完整的。 如果要交付具有清晰模式的数据,则批处理中的数据点数可能会有所不同。 数据集中至少有12个点,最大为8640点,时间戳记为UTC。

您不限于对流数据使用异常检测器; 如果您使用时间序列数据库记录数据,则可以对所有数据进行批处理来运行它,尽管这可能意味着发送大量数据。 这种方法可以帮助识别可能遗漏的过去问题,例如发现不正常的财务交易(这些欺诈迹象表明存在欺诈行为)或存在可能影响整体生产率的机械问题。 在历史数据上运行它可以帮助您获得所需的信息,以微调您使用的算法,从而更有可能发现您特定业务中的问题。

调整异常检测器

关于异常检测器API的一件事要注意:它与其他认知服务不同,因为您可以调整它与数据的工作方式 。 作为JSON请求的一部分,您可以指定数据周期的详细信息,其粒度以及两个用于微调算法敏感性的选项。 其中之一maxAnomalyRatio可帮助识别可能异常的数据点。 另一个是灵敏度,它会调整算法的余量值; 数字越小,裕量越大,最大程度地保持异常检测。

您的应用程序中有很多时间序列数据,通常很难从中提取价值。 通过添加一点机器学习,您可以开始查看不符合正常模式的内容,然后使用该信息来构建适当的响应。

因此,在将其构建为代码之前,最好使用Jupyter Notebook之类的工具来探索结果并调整检测器,这是一个好主意。 您需要查看发生了什么异常,并且需要能够将它们与需要管理的事件联系在一起。 通过使用交互式笔记本和历史数据,您可以找到适当的相关性,这些相关性可以帮助您设计可以使用近实时异常检测来提供您可以理解的结果的应用程序。 从那时起,您可以开始使用异常检测API来获得真正的业务价值。

翻译自: https://www.infoworld.com/article/3386156/how-to-use-anomaly-detection-in-azure-machine-learning.html

azure 机器学习

你可能感兴趣的:(算法,大数据,python,机器学习,人工智能)