taganomaly
异常检测标记工具,专门用于多个时间序列(每个类别一个时间序列)。
Taganomaly 是一个为异常检测模型创建标记数据的工具。它允许标记者在时间序列上选择点,通过查看同一时间范围内其他时间序列的行为,或查看创建这个时间序列的原始数据(假设时间序列是一个聚合指标,按时间范围统计事件)来进一步检查这些点。
:exclamation: 注意:这个工具是作为客户项目的一部分构建的,不会定期维护。
目录
使用应用程序
应用程序有四个主要窗口:
标记窗口
时间序列标记
选定点的表格视图
查看窗口的原始数据(如果存在)
随时间比较此类别与其他类别
使用Twitter AnomalyDetection包查找建议的异常
观察类别之间分布的变化
这对于理解异常是单变量还是多变量可能很有用
如何在本地运行
使用R
这个工具使用shiny框架来可视化事件。 为了运行它,你需要安装R,最好还安装Rstudio。 安装完成后,在R studio中打开项目(taganomaly.Rproj)并点击"Run App",或在控制台中调用runApp()。你可能需要手动安装所需的包。
要求
- R (3.4.0或更高版本)
使用的包:
- shiny
- dplyr
- gridExtra
- shinydashboard
- DT
- ggplot2
- shinythemes
- AnomalyDetection
使用Docker
从Dockerhub拉取镜像:
docker pull omri374/taganomaly
运行:
docker run --rm -p 3838:3838 omri374/taganomaly
如何使用docker部署
部署到Azure
部署到Azure Web App for Containers或Azure Container Instances。更多详情请参见这里(webapp)和这里(container instances)
手动拉取镜像
将此镜像部署到你自己的环境中。
从源代码构建
要构建新的Docker镜像,请从项目的根文件夹运行以下命令:
sudo docker build -t taganomaly .
如果你在修改后的TagAnomaly版本中添加了新的包,请确保在Dockerfile中指定这些包。
Docker镜像构建完成后,通过以下命令运行:
docker run -p 3838:3838 taganomaly
这将使shiny server应用程序在3838端口上运行。
使用说明
- 导入时间序列CSV文件。假定结构:
- 日期 ("%Y-%m-%d %H:%M:%S")
- 类别
- 值
- (可选) 导入原始数据时间序列CSV文件。如果原始时间序列是对时间窗口的聚合,则此时间序列为原始值本身。这样我们可以深入研究异常值,看看它由什么组成。 假定结构:
- 日期 ("%Y-%m-%d %H:%M:%S")
- 类别
- 值
-
选择类别(如果存在)
-
在滑块上选择时间范围
-
检查你的时间序列: (1):点击图表下方表格中的一个时间范围,查看该时间范围内的原始数据 (2):打开"所有类别"标签,查看其他时间序列在同一时间范围内的表现。
-
在图表上选择看起来异常的点。
-
点击"添加选定点"将标记的点添加到候选列表中。
-
一旦你确定这些是实际的异常,通过点击"下载标签集"将结果表保存为csv,然后继续下一个类别。
当前限制
如果更改日期滑块或类别,已添加但未保存的点将丢失,因此很难从复杂的时间序列中保存多个点。一旦所有段都被标记,可以运行提供的prep_labels.py文件,将TagAnomaly的所有输出文件连接成一个CSV。
贡献
本项目欢迎贡献和建议。大多数贡献要求你同意贡献者许可协议(CLA),声明你有权并确实授予我们使用你的贡献的权利。详情请访问https://cla.microsoft.com。 当您提交拉取请求时,CLA机器人会自动确定您是否需要提供贡献者许可协议(CLA),并相应地修饰拉取请求(例如,添加标签、评论)。只需按照机器人提供的指示操作即可。您只需在使用我们CLA的所有仓库中执行一次这个操作。
本项目采用了微软开源行为准则。欲了解更多信息,请参阅行为准则常见问题解答,或联系opencode@microsoft.com提出任何其他问题或意见。