作者:韩信子@ShowMeAI

机器学习实战系列https://www.showmeai.tech/tutorials/41

本文地址https://www.showmeai.tech/article-detail/395

声明:版权所有,转载请联系平台与作者并注明出处

收藏ShowMeAI查看更多精彩内容

完整的机器学习应用过程,除了数据处理、建模优化及模型部署,也需要进行后续的效果验证跟踪和ML模型监控——它能保证模型和场景是保持匹配且有优异效果的。

模型上线后,可能会存在效果下降等问题,面临数据漂移等问题。详见ShowMeAI的文章 机器学习数据漂移问题与解决方案

ShowMeAI在这篇文章中,将给大家展示如何使用开源工具库 whylogs 构建详尽的 AI 日志平台并监控 ML 模型。

日志系统&模型监控

环境配置

要构建日志系统并进行模型监控,会使用到开源数据日志库whylogs,它可以用于捕获数据的关键统计属性。安装方式很简单,执行下列 pip 命令即可

pip install "whylogs[whylabs]"

接下来,导入所用的工具库whylogspandasos。我们也创建一份 Dataframe 数据集进行分析。

import whylogs as why
import pandas as pd
import os
# create dataframe with dataset
dataset = pd.read_csv("https://whylabs-public.s3.us-west-2.amazonaws.com/datasets/tour/current.csv")

使用 whylogs 创建的数据配置文件可以单独用于数据验证和数据漂移可视化,简单的示例如下:

import whylogs as why
import pandas as pd #dataframe
df = pd.read_csv("path/to/file.csv")
results = why.log(df)

这里也讲解一下云端环境,即把配置文件写入 WhyLabs Observatory 以执行 ML 监控。

为了向 WhyLabs 写入配置文件,我们将 创建一个帐户(免费)并获取组织 ID、Key和项目 ID,以将它们设置为项目中的环境变量。

# Set WhyLabs access keys
os.environ["WHYLABS_DEFAULT_ORG_ID"] = 'YOURORGID'
os.environ["WHYLABS_API_KEY"] = 'YOURACCESSTOKEN'
os.environ["WHYLABS_DEFAULT_DATASET_ID"] = 'PROJECTID'

新建项目并获取 ID

Create Project > Set up model > Create Project,整个操作过程如下图所示:

获取组织 ID 和访问 Key

菜单 > 设置 > 访问令牌 > 创建访问令牌,如下图所示:

经过这个配置,接下来就可以将数据配置文件写入 WhyLabs。

将配置文件写入 WhyLabs 以进行 ML 监控

设置访问密钥后,可以轻松创建数据集的配置文件并将其写入 WhyLabs。这使我们只需几行代码即可监控输入数据和模型预测!

# initial WhyLabs writer, Create whylogs profile, write profile to WhyLabs
writer = WhyLabsWriter()
profile= why.log(dataset)
writer.write(file=profile.view())

我们可以在 pipeline 管道的任何阶段创建配置文件,也就是说可以对每个步骤的数据进行监控。一旦完成将配置文件写入 WhyLabs,就可以检查、比较和监控数据质量和数据漂移。

上述步骤过后,只需单击一下(或创建自定义监视器)即可启用预配置的监视器,检测数据配置文件中的异常情况。设置常见的监控任务是非常容易的,也可以很清晰快捷地检测数据漂移、数据质量问题和模型性能。

配置监视器后,可以在检查输入功能时对其进行预览。

当检测到异常时,可以通过电子邮件、Slack 或 PagerDuty 发送通知。在设置 > 通知和摘要设置中设置通知首选项。

上述这些简单的步骤,我们已经完成了从 ML 管道中的任何步骤提取数据、构建日志和监控分析,并在发生异常时得到通知。

监控模型性能指标

前面看到了如何监控模型输入和输出数据,我们还可以通过在预测结果来监控性能指标,例如准确度、精确度等。

要记录用于监控的性能指标,可以使用why.log_classification_metricswhy.log_regression_metrics并传入包含模型输出结果的 Dataframe。

results = why.log_classification_metrics(
df,
target_column = "ground_truth",
prediction_column = "cls_output",
score_column="prob_output"
) profile = results.profile()
results.writer("whylabs").write()

注意:确保您的项目在设置中配置为分类或回归模型。

在下面的示例笔记本中查看用于性能监控的数据示例。

大家想获得更多关于监控的示例 notebook 笔记本,可以查看官方 GitHub 关于 分类回归的代码。

参考资料

推荐阅读

whylogs工具库的工业实践!机器学习模型流程与效果监控 ⛵的更多相关文章

  1. 25个Java机器学习工具&库--转载

    本列表总结了25个Java机器学习工具&库: 1. Weka集成了数据挖掘工作的机器学习算法.这些算法可以直接应用于一个数据集上或者你可以自己编写代码来调用.Weka包括一系列的工具,如数据预 ...

  2. 【转】.NET(C#):浅谈程序集清单资源和RESX资源 关于单元测试的思考--Asp.Net Core单元测试最佳实践 封装自己的dapper lambda扩展-设计篇 编写自己的dapper lambda扩展-使用篇 正确理解CAP定理 Quartz.NET的使用(附源码) 整理自己的.net工具库 GC的前世与今生 Visual Studio Package 插件开发之自动生

    [转].NET(C#):浅谈程序集清单资源和RESX资源   目录 程序集清单资源 RESX资源文件 使用ResourceReader和ResourceSet解析二进制资源文件 使用ResourceM ...

  3. java25个Java机器学习工具&库

    本列表总结了25个Java机器学习工具&库: 1. Weka集成了数据挖掘工作的机器学习算法.这些算法可以直接应用于一个数据集上或者你可以自己编写代码来调用.Weka包括一系列的工具,如数据预 ...

  4. 机器学习模型解释工具-Lime

    本篇文章转载于LIME:一种解释机器学习模型的方法 该文章介绍了一种模型对单个样本解释分类结果的方法,区别于对整体测试样本的评价指标准确率.召回率等,Lime为具体某个样本的分类结果做出解释,直观地表 ...

  5. scikit-learn系列之如何存储和导入机器学习模型

    scikit-learn系列之如何存储和导入机器学习模型   如何存储和导入机器学习模型 找到一个准确的机器学习模型,你的项目并没有完成.本文中你将学习如何使用scikit-learn来存储和导入机器 ...

  6. Java第三方工具库/包汇总

    一.科学计算或矩阵运算库 科学计算包: JMathLib是一个用于计算复杂数学表达式并能够图形化显示计算结果的Java开源类库.它是Matlab.Octave.FreeMat.Scilab的一个克隆, ...

  7. 斯坦福经典AI课程CS 221官方笔记来了!机器学习模型、贝叶斯网络等重点速查...

    [导读]斯坦福大学的人工智能课程"CS 221"至今仍然是人工智能学习课程的经典之一.为了方便广大不能亲临现场听讲的同学,课程官方推出了课程笔记CheatSheet,涵盖4大类模型 ...

  8. TensorFlow?PyTorch?Paddle?AI工具库生态之争:ONNX将一统天下

    作者:韩信子@ShowMeAI 深度学习实战系列:https://www.showmeai.tech/tutorials/42 本文地址:https://www.showmeai.tech/artic ...

  9. [转]Android开源项目第二篇——工具库篇

    本文为那些不错的Android开源项目第二篇--开发工具库篇,主要介绍常用的开发库,包括依赖注入框架.图片缓存.网络相关.数据库ORM建模.Android公共库.Android 高版本向低版本兼容.多 ...

  10. Android开源项目第二篇——工具库篇

    本文为那些不错的Android开源项目第二篇——开发工具库篇,**主要介绍常用的开发库,包括依赖注入框架.图片缓存.网络相关.数据库ORM建模.Android公共库.Android 高版本向低版本兼容 ...

随机推荐

  1. 7_Log

    一. 引言 1.1 日志介绍 用于记录系统中发生的各种事件. 记录的位置常见的有: 控制台, 磁盘文件等 1.2 日志级别 日志级别由低到高 TRACE, DEBUG, INFO, WARN, ERR ...

  2. overflow 隐藏滚动条样式

    在使用overflow,属性值为auto或者scroll时,很多时候会有多余的滚动条在旁边,这时就非常影响观瞻,所以我们有时需要将滚动条隐藏掉. 今天就说两种我用到的隐藏滚动条的方法,如果有其他解决方 ...

  3. [题解] Atcoder ARC 142 E Pairing Wizards 最小割

    题目 建图很妙,不会. 考虑每一对要求合法的巫师(x,y),他们两个的\(a\)必须都大于\(min(b_x,b_y)\).所以在输入的时候,如果\(a_x\)或者\(a_y\)小于\(min(b_x ...

  4. HBase(1/5)

    HBase学习(一) 一.了解HBase 官方文档:https://hbase.apache.org/book.html 1.1 HBase概述 HBase 是一个高可靠性.高性能.面向列.可伸缩的分 ...

  5. VS中git概念解析与深度使用

    基础概念 四个区 工作区(Working Area) 暂存区(Stage) 本地仓库(Local Repository) 远程仓库(Remote Repository) 五种状态 未修改(Origin ...

  6. spring boot使用swagger生成api接口文档

    前言 在之前的文章中,使用mybatis-plus生成了对应的包,在此基础上,我们针对项目的api接口,添加swagger配置和注解,生成swagger接口文档 具体可以查看本站spring boot ...

  7. 死锁与Lock锁

    死锁1.死锁的理解:不同的线程分别占用对方需要的同步资源不放弃,都在等待对方放弃自己需要的同步资源,就形成了线程的死锁 2.说明: 1)出现死锁后,不会出现异常,不会出现提示,只是所有的线程都处于阻塞 ...

  8. 后端框架学习1-----Spring

    Spring学习笔记 spring全家桶:https://www.springcloud.cc/spring-reference.html spring中文文档:http://c.biancheng. ...

  9. echarts在Vue项目中的实际运用效果图

    文章目录 1.在后台系统首页中.可以根据需求制作相应的图表 2.在Vue中使用echarts的详细过程参照这个链接 1.在后台系统首页中.可以根据需求制作相应的图表 2.在Vue中使用echarts的 ...

  10. 齐博x1 万能fun 调用任意数据表 任意字段就是这么任性调用

    列举了几个常用的查询进行简单封装,虽然系统也有内置的但是很多人不大会就二次封装简化了一下. 这里只封装了一个条件 多个条件的自己再封装或者用标签解决比较好 这里只是说fun可以万能调用 1获取任意表的 ...