CN114971110A - 一种根因组合确定的方法、相关装置、设备以及存储介质 - Google Patents
一种根因组合确定的方法、相关装置、设备以及存储介质 Download PDFInfo
- Publication number
- CN114971110A CN114971110A CN202110216268.9A CN202110216268A CN114971110A CN 114971110 A CN114971110 A CN 114971110A CN 202110216268 A CN202110216268 A CN 202110216268A CN 114971110 A CN114971110 A CN 114971110A
- Authority
- CN
- China
- Prior art keywords
- data
- determining
- time window
- dimensions
- user activity
- Prior art date
- Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
- Pending
Links
Images
Classifications
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06Q—INFORMATION AND COMMUNICATION TECHNOLOGY [ICT] SPECIALLY ADAPTED FOR ADMINISTRATIVE, COMMERCIAL, FINANCIAL, MANAGERIAL OR SUPERVISORY PURPOSES; SYSTEMS OR METHODS SPECIALLY ADAPTED FOR ADMINISTRATIVE, COMMERCIAL, FINANCIAL, MANAGERIAL OR SUPERVISORY PURPOSES, NOT OTHERWISE PROVIDED FOR
- G06Q10/00—Administration; Management
- G06Q10/06—Resources, workflows, human or project management; Enterprise or organisation planning; Enterprise or organisation modelling
- G06Q10/063—Operations research, analysis or management
- G06Q10/0639—Performance analysis of employees; Performance analysis of enterprise or organisation operations
- G06Q10/06393—Score-carding, benchmarking or key performance indicator [KPI] analysis
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F18/00—Pattern recognition
- G06F18/20—Analysing
- G06F18/23—Clustering techniques
- G06F18/232—Non-hierarchical techniques
- G06F18/2321—Non-hierarchical techniques using statistics or function optimisation, e.g. modelling of probability density functions
- G06F18/23213—Non-hierarchical techniques using statistics or function optimisation, e.g. modelling of probability density functions with fixed number of clusters, e.g. K-means clustering
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06N—COMPUTING ARRANGEMENTS BASED ON SPECIFIC COMPUTATIONAL MODELS
- G06N7/00—Computing arrangements based on specific mathematical models
- G06N7/01—Probabilistic graphical models, e.g. probabilistic networks
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06Q—INFORMATION AND COMMUNICATION TECHNOLOGY [ICT] SPECIALLY ADAPTED FOR ADMINISTRATIVE, COMMERCIAL, FINANCIAL, MANAGERIAL OR SUPERVISORY PURPOSES; SYSTEMS OR METHODS SPECIALLY ADAPTED FOR ADMINISTRATIVE, COMMERCIAL, FINANCIAL, MANAGERIAL OR SUPERVISORY PURPOSES, NOT OTHERWISE PROVIDED FOR
- G06Q10/00—Administration; Management
- G06Q10/10—Office automation; Time management
- G06Q10/109—Time management, e.g. calendars, reminders, meetings or time accounting
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06Q—INFORMATION AND COMMUNICATION TECHNOLOGY [ICT] SPECIALLY ADAPTED FOR ADMINISTRATIVE, COMMERCIAL, FINANCIAL, MANAGERIAL OR SUPERVISORY PURPOSES; SYSTEMS OR METHODS SPECIALLY ADAPTED FOR ADMINISTRATIVE, COMMERCIAL, FINANCIAL, MANAGERIAL OR SUPERVISORY PURPOSES, NOT OTHERWISE PROVIDED FOR
- G06Q10/00—Administration; Management
- G06Q10/20—Administration of product repair or maintenance
Landscapes
- Engineering & Computer Science (AREA)
- Business, Economics & Management (AREA)
- Human Resources & Organizations (AREA)
- Physics & Mathematics (AREA)
- Theoretical Computer Science (AREA)
- General Physics & Mathematics (AREA)
- Data Mining & Analysis (AREA)
- Entrepreneurship & Innovation (AREA)
- Strategic Management (AREA)
- Economics (AREA)
- Quality & Reliability (AREA)
- Operations Research (AREA)
- Tourism & Hospitality (AREA)
- General Business, Economics & Management (AREA)
- Marketing (AREA)
- Artificial Intelligence (AREA)
- General Engineering & Computer Science (AREA)
- Evolutionary Computation (AREA)
- Educational Administration (AREA)
- Development Economics (AREA)
- Probability & Statistics with Applications (AREA)
- Evolutionary Biology (AREA)
- Software Systems (AREA)
- Mathematical Physics (AREA)
- Computing Systems (AREA)
- Pure & Applied Mathematics (AREA)
- Mathematical Optimization (AREA)
- Mathematical Analysis (AREA)
- Game Theory and Decision Science (AREA)
- Computational Mathematics (AREA)
- Algebra (AREA)
- Computer Vision & Pattern Recognition (AREA)
- Bioinformatics & Computational Biology (AREA)
- Bioinformatics & Cheminformatics (AREA)
- Life Sciences & Earth Sciences (AREA)
- Information Retrieval, Db Structures And Fs Structures Therefor (AREA)
Abstract
本申请公开了一种基于人工智能技术实现的根因组合确定方法,包括:获取当前时间窗口内的用户活跃数据,当前时间窗口包括第一时间窗口;若用户活跃数据满足波动异常条件,则获取第一时间窗口内第一监控数据与第二时间窗口内第二监控数据之间的M个散度,第一时间窗口与第二时间窗口属于环比时间区间,第一监控数据与第二监控数据分别包括M个维度;根据M个散度,从M个维度中确定N个维度,每个散度对应于M个维度中的一个维度;根据第一监控数据中N个维度所对应的数据确定根因组合。本申请实施例还提供了装置、设备以及存储介质。本申请能够大幅度地提升了根因定位效率,有利于日常运维工作。
Description
技术领域
本申请涉及运维管理技术领域,尤其涉及一种根因组合确定的方法、相关装置、设备以及存储介质。
背景技术
随着数字化转型的不断推进,各种系统的数据指标和调用关系变得越来越复杂。在信息化时代,业务场景日新月异,频繁的业务功能更新和配置参数变更,都会导致层出不穷的异常告警,因此,如何迅速定位异常告警的根因成为了亟待解决的问题。
目前,在日常运维工作中,对于数据异常的根因分析通常由工作人员凭借经验去定位的,即首先从波动数据中取出每个维度的指标,然后分别将波动数据中的每个指标与正常数据中的每个指标进行比对,最终得到多个指标比对结果,由此定位出根因。
然而,每次定位根因需要进行两两维度的比对,无法自动化计算,因此,人工定位根因的方法需要耗费大量的时间,导致根因定位的效率低下,不利于日常运维工作。
发明内容
本申请实施例提供了一种根因组合确定的方法、相关装置、设备以及存储介质,相比于人工观察数据和手动查找导致异常的根因,本申请能够大幅度地提升了根因定位效率,有利于日常运维工作。
有鉴于此,本申请一方面提供一种根因组合确定的方法,包括:
获取当前时间窗口内的用户活跃数据,其中,当前时间窗口包括第一时间窗口;
若用户活跃数据满足波动异常条件,则获取第一时间窗口内第一监控数据与第二时间窗口内第二监控数据之间的M个散度,其中,第一时间窗口与第二时间窗口属于环比时间区间,第一监控数据与第二监控数据分别包括M个维度,M为大于或等于1的整数;
根据M个散度,从M个维度中确定N个维度,其中,每个散度对应于M个维度中的一个维度,N为大于或等于1,且小于或等于M的整数;
根据第一监控数据中N个维度所对应的数据确定根因组合,其中,根因组合包括N个根因。
本申请另一方面提供一种根因组合确定装置,包括:
获取模块,用于获取当前时间窗口内的用户活跃数据,其中,当前时间窗口包括第一时间窗口;
获取模块,还用于若用户活跃数据满足波动异常条件,则获取第一时间窗口内第一监控数据与第二时间窗口内第二监控数据之间的M个散度,其中,第一时间窗口与第二时间窗口属于环比时间区间,第一监控数据与第二监控数据分别包括M个维度,M为大于或等于1的整数;
确定模块,用于根据M个散度,从M个维度中确定N个维度,其中,每个散度对应于M个维度中的一个维度,N为大于或等于1,且小于或等于M的整数;
确定模块,还用于根据第一监控数据中N个维度所对应的数据确定根因组合,其中,根因组合包括N个根因。
在一种可能的设计中,在本申请实施例的另一方面的另一种实现方式中,根因组合确定装置还包括生成模块;
生成模块,用于在获取模块获取当前时间窗口内的用户活跃数据之后,根据用户活跃数据,通过K种预设算法生成K个判定结果,其中,每种预设算法对应于一个判定结果,K为大于或等于1的整数;
确定模块,还用于若K个判定结果中存在至少一个判定结果为异常结果,则确定用户活跃数据满足波动异常条件;
确定模块,还用于若K个判定结果均为非异常结果,则确定用户活跃数据未满足波动异常条件。
在一种可能的设计中,在本申请实施例的另一方面的另一种实现方式中,K种预设算法包括孤立森林算法;
生成模块,具体用于从用户活跃数据中获取第一时间窗口内的目标用户活跃数据;
根据目标用户活跃数据,通过孤立森林模型所包括的每个孤立树,分别获取每个孤立树所对应的分割结果,其中,孤立森林模型包括至少两个孤立树;
根据每个孤立树所对应的分割结果,确定基于孤立森林算法的判定结果。
在一种可能的设计中,在本申请实施例的另一方面的另一种实现方式中,
生成模块,具体用于根据每个孤立树所对应的分割结果,确定目标用户活跃数据中每个数据在每个孤立树中的路径长度;
根据每个数据在每个孤立树中的路径长度,确定每个数据所对应的异常分数,其中,异常分值表示数据的平均路径长度;
若目标用户活跃数据中的数据所对应的异常分数大于或等于异常分数阈值,则确定数据为异常数据;
根据目标用户活跃数据中异常数据的占比,确定基于孤立森林算法的判定结果。
在一种可能的设计中,在本申请实施例的另一方面的另一种实现方式中,K种预设算法包括四分位数算法;
生成模块,具体用于从用户活跃数据中获取第一时间窗口内的目标用户活跃数据;
按照从小至大的顺序,对目标用户活跃数据进行排序,得到目标数据序列;
根据目标数据序列确定下四分位数以及上四分位数,其中,下四分位数表示在目标数据序列中第四分之一个的数据,上四分位数表示在目标数据序列中第四分之三个的数据;
根据上四分位数以及下四分位数之间的差值,确定四分位距;
根据下四分位数、四分位距以及预设异常值,确定下界值;
根据上四分位数、四分位距以及预设异常值,确定上界值;
若目标用户活跃数据中的数据小于下界值,或,大于上界值,则确定数据为异常数据;
根据目标用户活跃数据中异常数据的占比,确定基于四分位数算法的判定结果。
在一种可能的设计中,在本申请实施例的另一方面的另一种实现方式中,K种预设算法包括环比算法,当前时间窗口还包括第二时间窗口;
生成模块,具体用于从用户活跃数据中获取第一时间窗口内的第一用户活跃数据;
从用户活跃数据中获取第二时间窗口内的第二用户活跃数据;
根据第一用户活跃数据以及第二用户活跃数据确定环比值;
根据环比值确定基于环比算法的判定结果。
在一种可能的设计中,在本申请实施例的另一方面的另一种实现方式中,K种预设算法包括具有噪声的基于密度的聚类DBSCAN算法;
生成模块,具体用于从用户活跃数据中获取第一时间窗口内的目标用户活跃数据,其中,目标用户活跃数据包括Q个数据,Q为大于1的整数;
根据领域半径确定目标领域;
针对于目标用户活跃数据中的每个数据,确定每个数据所在目标领域内的数据数量;
若存在P个数据所在目标领域内的数据数量大于或等于密度阈值,则将P个数据确定为P个核心数据,其中,P为大于或等于1,且小于或等于Q的整数;
根据P个核心数据中每个核心数据所在目标领域与(Q-P)个数据中每个数据之间的包含关系,确定基于DBSCAN算法的判定结果,其中,(Q-P)个数据为目标用户活跃数据中除去P个核心数据之后得到的数据。
在一种可能的设计中,在本申请实施例的另一方面的另一种实现方式中,K种预设算法包括k均值聚类算法;
生成模块,具体用于从用户活跃数据中获取第一时间窗口内的目标用户活跃数据,其中,目标用户活跃数据包括Q个数据,Q为大于1的整数;
从目标用户活跃数据中随机确定P个数据作为P个质心数据,其中,P为大于或等于1,且小于Q的整数,
根据(Q-P)个数据中每个数据与P个质心数据中每个质心数据之间的距离,确定P个聚类结果,其中,(Q-P)个数据为目标用户活跃数据中除去P个质心数据之后得到的数据。
根据P个聚类结果确定基于k均值聚类算法的判定结果。
在一种可能的设计中,在本申请实施例的另一方面的另一种实现方式中,
获取模块,具体用于获取第一时间窗口内的第一监控数据以及第二时间窗口内的第二监控数据,其中,第一监控数据与第二监控数据均包括M个维度的数据;
根据第一监控数据生成M个第一数据分布;
根据第二监控数据生成M个第二数据分布;
针对于M个维度中的每个维度,确定每个维度所对应的第一数据分布与第二数据分布之间的詹森香农JS散度;
确定模块,具体用于若第i个维度对应第一数据分布与第二数据分布之间的JS散度大于或等于JS散度阈值,则确定第i个维度属于N个维度中的一个维度,其中,i为大于或等于1,且小于或等于M的整数。
在一种可能的设计中,在本申请实施例的另一方面的另一种实现方式中,
获取模块,具体用于获取第一时间窗口内的第一监控数据以及第二时间窗口内的第二监控数据,其中,第一监控数据与第二监控数据均包括M个维度的数据;
根据第一监控数据生成M个第一数据分布;
根据第二监控数据生成M个第二数据分布;
针对于M个维度中的每个维度,确定每个维度所对应的第一数据分布与第二数据分布之间的相对熵KL散度;
确定模块,具体用于若第i个维度对应第一数据分布与第二数据分布之间的KL散度大于或等于KL散度阈值,则确定第i个维度属于N个维度中的一个维度,其中,i为大于或等于1,且小于或等于M的整数。
在一种可能的设计中,在本申请实施例的另一方面的另一种实现方式中,
确定模块,具体用于根据第一监控数据中N个维度所对应的数据,通过蒙特卡罗树搜索模型获取根因组合;其中,
确定模块,具体用于根据蒙特卡罗树搜索模型中各个节点的路径选择参数确定第一节点,其中,第一节点对应的维度为第一维度,第一维度为N个维度中的任意一个维度;
获取N个维度中第二维度所对应的各个数据的潜力分值,其中,第二维度与第一维度为不同的维度;
根据第二维度所对应的各个数据的潜力分值确定第二节点,其中,第二节点为第一节点的子节点;
根据蒙特卡罗树搜索模型中从根节点到第二节点的路径,更新路径上各个节点的路径选择参数;
若满足迭代结束条件,则从T条路径中选择至少一条候选路径,其中,每条候选路径经过根节点以及N个节点;
根据至少一条候选路径中每条候选路径所对应的潜力分值之和,从至少一条候选路径中确定目标路径,其中,目标路径对应于潜力分值之和的最大值。
在一种可能的设计中,在本申请实施例的另一方面的另一种实现方式中,根因组合确定装置还包括显示模块;
显示模块,用于在获取模块获取第一时间窗口内第一监控数据与第二时间窗口内第二监控数据之间的M个散度之后,显示M个维度中每个维度所对应的散度;
显示模块,还用于根据第一监控数据中N个维度所对应的数据确定根因组合之后,显示根因组合。
本申请的另一方面提供了一种计算机可读存储介质,计算机可读存储介质中存储有指令,当其在计算机上运行时,使得计算机执行上述各方面的方法。
本申请的另一个方面,提供了一种计算机程序产品或计算机程序,该计算机程序产品或计算机程序包括计算机指令,该计算机指令存储在计算机可读存储介质中。计算机设备的处理器从计算机可读存储介质读取该计算机指令,处理器执行该计算机指令,使得该计算机设备执行上述各方面所提供的方法。
从以上技术方案可以看出,本申请实施例具有以下优点:
本申请实施例中,提供了一种根因组合确定的方法,首先获取当前时间窗口内的用户活跃数据,如果活跃数据满足波动异常条件,则获取第一时间窗口内第一监控数据与第二时间窗口内第二监控数据之间的M个散度,接下来可基于M个散度,从M个维度中确定N个维度,最后根据第一监控数据中N个维度所对应的数据确定根因组合,根因组合包括N个根因。通过上述方式,能够根据用户活跃数据优先判定是否存在异常波动,在确定存在异常波动的情况下,进一步定位出导致异常波动的指标维度,最后自动搜索出每个指标维度下具体的根因,相比于人工观察数据和手动查找导致异常的根因,大幅度地提升了根因定位效率,有利于日常运维工作。
附图说明
图1为本申请实施例中根因组合确定系统的一个架构示意图;
图2为本申请实施例中根因组合确定方法的一个流程示意图;
图3为本申请实施例中根因组合确定方法的一个实施例示意图;
图4为本申请实施例中孤立树的一个分割示意图;
图5为本申请实施例中孤立森林模型判定异常点结果的一个示意图;
图6为本申请实施例中孤立森林模型的分割示意图;
图7为本申请实施例中基于四分位数算法确定各个四分位数的一个示意图;
图8为本申请实施例中基于四分位数算法的一个箱线示意图;
图9为本申请实施例中用户活跃数据的一个曲线示意图;
图10为本申请实施例中基于DBSCAN算法的一个基本概念示意图;
图11为本申请实施例中基于DBSCAN算法的一个实际应用示意图;
图12为本申请实施例中基于k均值聚类算法的一个实际应用示意图;
图13为本申请实施例中基于蒙特卡罗树搜索模型实现节点选择的示意图;
图14为本申请实施例中基于蒙特卡罗树搜索模型实现节点扩展的示意图;
图15为本申请实施例中基于蒙特卡罗树搜索模型实现节点模拟的示意图;
图16为本申请实施例中基于蒙特卡罗树搜索模型实现节点方向传播的示意图;
图17为本申请实施例中系统化定位异动根因运行结果的一个示意图;
图18为本申请实施例中显示根因组合的一个界面示意图;
图19为本申请实施例中根因组合确定装置的一个示意图;
图20为本申请实施例中计算机设备的一个结构示意图。
具体实施方式
本申请实施例提供了一种根因组合确定的方法、相关装置、设备以及存储介质,相比于人工观察数据和手动查找导致异常的根因,本申请能够大幅度地提升了根因定位效率,有利于日常运维工作。
本申请的说明书和权利要求书及上述附图中的术语“第一”、“第二”、“第三”、“第四”等(如果存在)是用于区别类似的对象,而不必用于描述特定的顺序或先后次序。应该理解这样使用的数据在适当情况下可以互换,以便这里描述的本申请的实施例例如能够以除了在这里图示或描述的那些以外的顺序实施。此外,术语“包括”和“对应于”以及他们的任何变形,意图在于覆盖不排他的包含,例如,包含了一系列步骤或单元的过程、方法、系统、产品或设备不必限于清楚地列出的那些步骤或单元,而是可包括没有清楚地列出的或对于这些过程、方法、产品或设备固有的其它步骤或单元。
随着业务的不断发展,产品规模不断增长,面对海量的运维指标,如何快速定位问题,达到精准化报警已成为运维监控常态化的需求。在运维监控系统中,每时每刻会产生大量应用监控数据、日志数据、主机数据以及网络数据,然而,依赖运维经验和手工操作的传统故障排查方式效率低下,无法应对大规模和分布式的运维挑战,因此,本申请基于大数据和机器学习等智能运维技术的根因分析(Root Cause Analysis,RCA),能够在短时间内定位故障根因。RCA是一项结构化的问题处理法,用以逐步找出问题的根本原因并加以解决,而不是仅仅关注问题的表征。根本原因分析是一个系统化的问题处理过程,包括确定和分析问题原因,找出问题解决办法,并制定问题预防措施。根本原因分析能够帮助利益相关者发现组织问题的症结,并找出根本性的解决方案。
日常运维场景包含但不仅限于应用于视频日活播放量的异常波动监控,应用于游戏日活登录量的异常波动监控,以及应用于电商日活点击量的异常波动监控,并进一步定位出根因组合。为了在日常运维场景中提升根因定位效率,本申请提出了一种根因组合确定的方法,该方法应用于图1所示的根因组合确定系统,如图所示,根因组合确定系统包括服务器和终端设备,且客户端部署于终端设备上。本申请涉及的服务器可以是独立的物理服务器,也可以是多个物理服务器构成的服务器集群或者分布式系统,还可以是提供云服务、云数据库、云计算、云函数、云存储、网络服务、云通信、中间件服务、域名服务、安全服务、内容分发网络(Content Delivery Network,CDN)、以及大数据和人工智能平台等基础云计算服务的云服务器。终端设备可以是智能手机、平板电脑、笔记本电脑、掌上电脑、个人电脑、智能电视、智能手表、车载计算机等,但并不局限于此。终端设备以及服务器可以通过有线或无线通信方式进行直接或间接地连接,本申请在此不做限制。服务器和终端设备的数量也不做限制。其中,服务器侧主要包括三个部分,分别为数据实时采集系统、卡夫卡(Kafka)以及智能运维平台,下面将分别进行介绍。
数据实时采集系统主要包括应用系统、集中监控平台以及运维管理平台,应用系统通常由计算机硬件系统、系统软件和应用软件组成,计算机基本硬件系统包括运算器、控制器、存储器、外围接口和外围设备组成,系统软件包括操作系统、编译程序、数据库管理系统和各种高级语言等,应用软件包括通用支援软件和各种应用软件包。集中监控平台的目标是能够通过管理与技术的应用,对基础设施与互联网基础架构的运行情况进行监视,实现故障与异常的实时发现与通知,此外还可以通过对监控数据搜集与整理,为容量管理、事件管理、问题管理和符合性管理提供分析的基础。运维管理平台主要由运维平台研发工程师理解业务需求后开发,主要包括机器管理、资源管理、网络管理、架构基础设施、部署平台、配置管理平台、数据管理平台、监控平台、容量管理、流量管理、故障管理、业务调度平台、工作流引擎、权限管理、运维元数据管理和运维统一门户。
Kafka是一种高吞吐量的分布式发布订阅消息系统,可以处理网站的日志流数据,供多个消费者拉取消费数据,具有容错性、持久性以及多分区的特点。
智能运维平台主要包括实时异常检测模块和实时根因分析模块,实时异常检测模块采用一种或多种算法检测当前是否存在异常情况,如果存在异常,则进一步调用实时根因分析模块,定位导致异常问题的根因组合。在分析得到根因组合之后,可以向终端设备反馈,由终端设备展示分析得到的根因组合。
基于此,为了便于理解,下面将结合图2介绍确定根因组合的方法,请参阅图2,图2为本申请实施例中根因组合确定方法的一个流程示意图,如图所示,具体地:
在步骤S1中,获取当前时间窗口内的用户活跃数据,其中,用户活跃数据可以是日活跃用户(Daily Active User,DAU)数量、月活跃用户(Monthly Active User,MAU)数量或者年活跃用户数量等,此处不做限定。
在步骤S2中,采用第一预设算法、第一预设算法以及第三预设算法,判断用户活跃数据是否存在异常波动,如果存在异常波动,则执行步骤S3,如果不存在异常波动,则执行步骤S6。可以理解的是,本申请对采用的预设算法类型和数量不做限定。
在步骤S3中,如果有任意一个预设算法输出异常值,那么继续计算每个维度的散度,其中,散度可以衡量两个分布概率之间的差异。
在步骤S4中,根据每个维度的散度,从所有维度中选择若干个影响力最大的维度,再采用蒙特卡罗树模型对这些维度下的元素进行选择,将选择出来的每个元素作为一个根因,最终得到根因组合。
在步骤S5中,输出根因组合。
在步骤S6中,如果有所有的预设算法都没有输出异常值,则确定当前时间窗口内未出现异常的情况。
由于本申请涉及到部分专业术语,因此,下面将先对这些专业术语进行介绍。
1、根因分析:在运维工作中,如果用户活跃数据出现波动,则需要定位出导致这个结果的原因,即根因分析。
2、DAU数量:常用于反映网站、互联网应用或网络游戏的运营情况。DAU通常统计一日之内,登录或使用了某个产品的用户数,并且需要去除重复登录的用户。
3、孤立森林(isolation forest,iForest):通过孤立离群点来找出异常点的树模型算法。在建树的过程中,如果一些样本很快到达了叶子节点,那么就被认为很有可能是异常点。为了减少随机性的影响,通过构造多颗树组成森林,再计算样本在所有树中的平均路径长度来寻找异常点。
4、四分位数(Quartile):是统计学中的一种分位数,把所有数值由小到大排列,等分为4份之后,处于三个分割点的数字就是四分位数。第一个分割点称为“下四分位数”,第二个分割点称为“第二四分位数”,第三分割点称为“上四分位数”。
5、上下围栏(Upper and Lower Fences)算法:计算上四分位数Q3与下四分位数Q1之差,即IQR=Q3-Q1,下围栏=Q1-alpha*IQR,上围栏=Q3+alpha*IQR,通常情况下,alpha可取值为1.5或者3。
6、环比:表示在两个统计周期内的量比变化比值,其中,环比值=(本期数-上期数)/(上期数)*100%。
7、詹森-香农散度(Jensen–Shannon divergence,JS divergence):是一种测量两个分布的相似度的方法,当两个数据分布的JS散度为0时,认为两个分布相同,当两个数据分布的JS散度为1时,认为两个分布不同。
8、蒙特卡罗树搜索(Monte Carlo Tree Search):是一种启发式搜索算法,主要用于一些棋盘类游戏或者不确定的游戏中找到最优路径的搜索树算法,通过选择(selection)),拓展(expansion),模拟(simulation),反向传播(Backpropagation)四个步骤来找到最优选择路径。
结合上述介绍,下面将对本申请中根因组合确定的方法进行介绍,请参阅图3,本申请实施例中根因组合确定方法的一个实施例包括:
101、获取当前时间窗口内的用户活跃数据,其中,当前时间窗口包括第一时间窗口;
本实施例中,根因组合确定装置获取当前时间窗口内的用户活跃数据,其中,当前时间窗口至少包括第一时间窗口,假设当前时间窗口为1周,那么第一时间窗口可以是1天或者1小时等,此处不做限定。示例性地,以用户活跃数据为DAU数量为例,则当前时间窗口至少包括最近的24小时内的数据,例如,当前时刻为2021年2月13日14点47分08秒,那么当前时间窗口包括从2021年2月12日14点47分08秒至2021年2月13日14点47分08秒。示例性地,以用户活跃数据为MAU数量为例,则当前时间窗口至少包括最近的1个月的数据,例如,当前时刻为2021年2月13日14点47分08秒,那么当前时间窗口包括从2021年1月13日14点47分08秒至2021年2月13日14点47分08秒。
具体地,以视频类应用为例,每分钟可能有500万条数据,每条数据对应于一个时刻的播放量,因此,每分钟可通过大数据处理框架(Spark)实时拉取Kafka上存储的视频播放数据。由于视频播放数据中可能存在指向同一个视频的数据,例如,用户点击视频A,并对视频A进行快进,那么此时生成的两条视频播放数据需要进行去重处理,并将相同的维度的数据进行聚合,最后存储中数据库中。
需要说明的是,根因组合确定装置可部署于服务器,也可以部署于终端设备,还可以部署于由终端设备和服务器构成的根因组合确定系统,本申请不做限定。
102、若用户活跃数据满足波动异常条件,则获取第一时间窗口内第一监控数据与第二时间窗口内第二监控数据之间的M个散度,其中,第一时间窗口与第二时间窗口属于环比时间区间,第一监控数据与第二监控数据分别包括M个维度,M为大于或等于1的整数;
本实施例中,根因组合确定装置需要判断用户活跃数据是否满足波动异常条件,如果不满足波动异常条件,则继续对下一个时间窗口内的用户活跃数据进行判断。如果满足波动异常条件,则表示某天(或,某个月等)的用户活跃数据(例如,播放量)波动较大,同比上升或下降变化率过大,则需要定位出原因,即针对于较多维度的数据进行根因分析。
具体地,根因组合确定装置获取第一时间窗口内第一监控数据与第二时间窗口内第二监控数据。其中,第一时间窗口与第二时间窗口通常具有相等的时间长度,例如,第一时间窗口为2021年2月12日14点47分08秒至2021年2月13日14点47分08秒,第二时间窗口为2021年2月11日14点47分08秒至2021年2月12日14点47分08秒。其中,第一监控数据和第二监控数据分别包括M个维度的数据,基于每个维度的数据构成对应的数据分布,由此计算出每个维度对应的散度。
需要说明的是,第一监控数据和第二监控数据均包含M个维度的数据,以视频类应用为例,M个维度的数据包含但不仅限于内容分发网络(Content Delivery Network,CDN)频道、平台、是否付费、下载类型、长短视频、清晰度、终端版本、国家、省份、运营商、网络类型、视频编码类型、是否使用对等网络(Peer to Peer,P2P)、播放器类型、下载组件版本、是否开启下载组件、播放器版本、AB测试(ABTest)测试分组身份标识号(Identity document,ID)、是否在线、视频专辑、网际互联协议(Internet Protocol,IP)栈类型、是否使用数字版权管理(Digital Rights Management,DRM)格式、协议名、协议版本、是否当前播放、是否通过详情页播放、视频播放效果、业务场景和业务类型等。
103、根据M个散度,从M个维度中确定N个维度,其中,每个散度对应于M个维度中的一个维度,N为大于或等于1,且小于或等于M的整数;
本实施例中,根因组合确定装置根据M个散度,从M个维度中确定N个维度。由于散度可以衡量两个分布之间的差异,因此,当数据出现异常波动时,如果N个维度的数据分布差异性达到了设定的阈值,则可以认为这N个维度下的数据对于异常波动具有贡献,而差异不大的(M-N)个维度则被剔除掉,以此达到筛选有效维度的目的。
104、根据第一监控数据中N个维度所对应的数据确定根因组合,其中,根因组合包括N个根因。
本实施例中,根因组合确定装置在筛选出N个维度的数据之后,从第一监控数据中提取这N个维度所对应的数据,最终从每个维度中筛选出一个数据作为根因,N个根因组成一个根因组合。具体地,假设N个维度为“国家”、省份以及是否付费,那么根因组合可以是“中国”,“广东”以及“是付费”。
本申请实施例中,提供了一种根因组合确定的方法,通过上述方式,能够根据用户活跃数据优先判定是否存在异常波动,在确定存在异常波动的情况下,进一步定位出导致异常波动的指标维度,最后自动搜索出每个指标维度下具体的根因,相比于人工观察数据和手动查找导致异常的根因,大幅度地提升了根因定位效率,有利于日常运维工作。
可选地,在上述图3对应的各个实施例的基础上,本申请实施例提供的另一个可选实施例中,获取当前时间窗口内的用户活跃数据之后,还可以包括:
根据用户活跃数据,通过K种预设算法生成K个判定结果,其中,每种预设算法对应于一个判定结果,K为大于或等于1的整数;
若K个判定结果中存在至少一个判定结果为异常结果,则确定用户活跃数据满足波动异常条件;
若K个判定结果均为非异常结果,则确定用户活跃数据未满足波动异常条件。
本实施例中,介绍了一种基于K种算法判定是否满足波动异常条件的方式。根因组合确定装置可采用K种预设算法分别对用户活跃数据进行判断,得到相应的判定结果,当K个判定结果中存在异常结果时,即确定满足波动异常条件,反之,当K个判定结果均为非异常结果时,即确定当前时间窗口内的用户活跃数据不满足波动异常条件。
具体地,K种预设算法可包括机器学习(Machine Learning,ML)算法以及统计算法中的至少一种,在本申请中采用的K种预设算法包含但不仅限于孤立森林模型、Upper andLower Fences算法、环比上期数据算法以及聚类算法等。其中,ML是一门多领域交叉学科,涉及概率论、统计学、逼近论、凸分析、算法复杂度理论等多门学科。专门研究计算机怎样模拟或实现人类的学习行为,以获取新的知识或技能,重新组织已有的知识结构使之不断改善自身的性能。机器学习是人工智能的核心,是使计算机具有智能的根本途径,其应用遍及人工智能的各个领域。机器学习和深度学习通常包括人工神经网络、置信网络、强化学习、迁移学习、归纳学习、式教学习等技术。
其次,本申请实施例中,提供了一种基于K种算法判定是否满足波动异常条件的方式,通过上述方式,选择K种算法同时作为是否满足波动异常条件的依据,当K种算法中有任意一个算法认为存在异常波动,则认为满足波动异常条件,仅当K个算均未出现异常时,才判断输出无异常,基于此,如果K为大于1的整数,那么能够增强模型的健壮性,提升异常波动判断的准确性。
可选地,在上述图3对应的各个实施例的基础上,本申请实施例提供的另一个可选实施例中,K种预设算法包括孤立森林算法;
根据用户活跃数据,通过K种预设算法生成K个判定结果,具体可以包括:
从用户活跃数据中获取第一时间窗口内的目标用户活跃数据;
根据目标用户活跃数据,通过孤立森林模型所包括的每个孤立树,分别获取每个孤立树所对应的分割结果,其中,孤立森林模型包括至少两个孤立树;
根据每个孤立树所对应的分割结果,确定基于孤立森林算法的判定结果。
本实施例中,介绍了一种基于孤立森林算法确定是否满足波动异常条件的方式。由前述实施例可知,当前时间窗口包括第一时间窗口,因此,假设当前时间窗口为1天,那么第一时间窗口可以是1个小时,或者1天,又或者是其他时间,此处不做限定。首先,从用户活跃数据中获取第一时间窗口内的目标用户活跃数据,假设目标用户活跃数据包括100万条数据,其中,每条数据可以为某个时刻所对应的播放量,于是可将这100万条数据输入至训练好的孤立森林模型中。其中,孤立森林模型包括至少两个孤立树,因此,每个孤立树将输出一个分割结果,最后,结合每个孤立树的分割结果确定基于孤立森林算法的判定结果。
由于孤立森林模型是随机切割的,因此,需要采用集成(ensemble)方法得到一个收敛值,即反复从头开始切,然后平均每次切分的结果。孤立森林模型由T个孤立树(isolation tree)组成,每个孤立树是一个二叉树结构。在训练孤立森林模型的过程中,先从训练数据中随机选择若干个样本点作为子样本,放入孤立树的根节点。然后随机指定一个维度,在当前节点数据中随机产生一个切割点,切割点产生于当前节点数据中指定维度的最大值和最小值之间。以此切割点生成了一个超平面,然后将当前节点数据空间划分为两个子空间:把指定维度里小于切割点的数据放在当前节点的左子节点,把大于等于切割点的数据放在当前节点的右子节点。基于此,接着在左右子树重复上述步骤,直到数据不可分或者二叉树达到限定最大的高度为止。
具体地,孤立森林模型训练结束后,即可使用该孤立森林模型来评估目标用户活跃数据,对于目标用户活跃数据中的每个数据,令其遍历每一个孤立树,然后计算该数据最终落在每个孤立树的第几层(即确定数据在孤立树中的高度),由此得出数据的高度平均值。为了便于介绍,请参阅图4,图4为本申请实施例中孤立树的一个分割示意图,如图所示,假设目标用户活跃数据包括5条件数据,分别为a、b、c、d和e,经过随机划分之后,a的路径长度为3,b的路径长度为3,c的路径长度为4,d的路径长度为4,e的路径长度为3,由此可见,a、b和e相比于c和d更可能出现异常。
通过使用随机超平面来不断地切割数据空间,每切割一次,都会生成两个子空间,然后再用随机切割这些子空间,循环往复之后,每个子空间只剩下一个数据。由于一些异常值往往是离群的点,所以它们会在比较早的时候就被分割到一个子空间内,而正常点往往是“密集的”,所以它们会在最后被切割,以此来找出异常值。基于此,请参阅图5,图5为本申请实施例中孤立森林模型判定异常点结果的一个示意图,如图所示,在数据空间里,分布稀疏的区域表示数据发生在此区域的概率很低,因此,可认为落在这些区域里的数据是异常的,图5中的白色的点为正常的点,即在一个簇中,而黑色的点为异常点。
最后,综合每个孤立树所对应的分割结果,可得到异常点的数量,在一个示例中,如果异常点的数量大于或等于数量阈值,则确定基于孤立森林算法的判定结果为存在异常,如果异常点的数量小于数量阈值,则确定基于孤立森林算法的判定结果为无异常。在另一个示例中,如果异常点数量在目标用户活跃数据中的占比大于或等于占比阈值,则确定基于孤立森林算法的判定结果为存在异常,如果异常点数量在目标用户活跃数据中的占比小于占比阈值,则确定基于孤立森林算法的判定结果为无异常。
再次,本申请实施例中,提供了一种基于孤立森林算法确定是否满足波动异常条件的方式,通过上述方式,由于孤立森林算法是基于第一时间窗口内全部用户活跃数据的异常检测方法,因此,具有线性的时间复杂度,且精准度较高。而且通常情况下,树的数量越多,算法越稳定,由于每棵树都是互相独立生成的,因此,可以部署在大规模分布式系统上来加速运算,提升数据处理的效率。
可选地,在上述图3对应的各个实施例的基础上,本申请实施例提供的另一个可选实施例中,根据每个孤立树所对应的分割结果,确定基于孤立森林算法的判定结果,具体可以包括:
根据每个孤立树所对应的分割结果,确定目标用户活跃数据中每个数据在每个孤立树中的路径长度;
根据每个数据在每个孤立树中的路径长度,确定每个数据所对应的异常分数,其中,异常分值表示数据的平均路径长度;
若目标用户活跃数据中的数据所对应的异常分数大于或等于异常分数阈值,则确定数据为异常数据;
根据目标用户活跃数据中异常数据的占比,确定基于孤立森林算法的判定结果。
本实施例中,介绍了一种利用异常分数生成判定结果的方式。在获取到每个孤立树的分割结果之后,可以先计算目标用户活跃数据中每个数据在各个孤立树中的路径长度,然后计算出每个数据的异常分数,最后根据异常分数确定数据是否属于异常数据。
具体地,请参阅图6,图6为本申请实施例中孤立森林模型的分割示意图,假设孤立森林模型包括两个孤立树,且假设目标用户活跃数据包括5条件数据,分别为a、b、c、d和e。基于此,如图6中(A)图所示,在一个孤立树中,经过随机划分之后,得到a的路径长度为3,b的路径长度为3,c的路径长度为4,d的路径长度为4,e的路径长度为3。如图6中(B)图所示,在另一个孤立树中,经过随机划分之后,得到a的路径长度为2,b的路径长度为4,c的路径长度为4,d的路径长度为4,e的路径长度为4。结合两个孤立树的统计结果,请参阅表1,表1为5个数据的异常分数统计结果。
表1
数据 | 第一个孤立树的路径长度 | 第二个孤立树的路径长度 | 异常分数 |
a | 3 | 2 | 2.5 |
b | 3 | 4 | 3.5 |
c | 4 | 4 | 4 |
d | 4 | 4 | 4 |
e | 3 | 4 | 3.5 |
假设异常分数阈值为4,则确定c和d均为异常数据,由此可见,目标用户活跃数据中异常数据的占比为40%,假设占比阈值为30%,那么目标用户活跃数据中异常数据的占比大于占比阈值,因此,确定基于孤立森林算法的判定结果为存在异常。
进一步地,本申请实施例中,提供了一种利用异常分数生成判定结果的方式,通过上述方式,可基于每个数据所对应的异常分数确定是否为异常数据,并结合异常数据的占比确定判定结果,相比于根据异常数据的数量确定判定结果,能够提升方案的合理性,以及增加判定结果的准确性。
可选地,在上述图3对应的各个实施例的基础上,本申请实施例提供的另一个可选实施例中,K种预设算法包括四分位数算法;
根据用户活跃数据,通过K种预设算法生成K个判定结果,具体可以包括:
从用户活跃数据中获取第一时间窗口内的目标用户活跃数据;
按照从小至大的顺序,对目标用户活跃数据进行排序,得到目标数据序列;
根据目标数据序列确定下四分位数以及上四分位数,其中,下四分位数表示在目标数据序列中第四分之一个的数据,上四分位数表示在目标数据序列中第四分之三个的数据;
根据上四分位数以及下四分位数之间的差值,确定四分位距;
根据下四分位数、四分位距以及预设异常值,确定下界值;
根据上四分位数、四分位距以及预设异常值,确定上界值;
若目标用户活跃数据中的数据小于下界值,或,大于上界值,则确定数据为异常数据;
根据目标用户活跃数据中异常数据的占比,确定基于四分位数算法的判定结果。
本实施例中,介绍了一种基于四分位数算法确定是否满足波动异常条件的方式。由前述实施例可知,当前时间窗口包括第一时间窗口,因此,假设当前时间窗口为1天,那么第一时间窗口可以是1个小时,或者1天,又或者是其他时间,此处不做限定。首先,从用户活跃数据中获取第一时间窗口内的目标用户活跃数据,假设目标用户活跃数据包括100万条数据,其中,每条数据可以为某个时刻所对应的播放量,于是可对这100万条数据按照从小到大进行排序,由此得到目标数据序列,接下来,根据目标数据序列确定下四分位数以及上四分位数,并根据上四分位数以及下四分位数之间的差值,确定四分位距(interquartilerange,IQR),最后,根据IQR确定是否存在异常数据。
具体地,首先按照从小至大的顺序,对目标用户活跃数据中的数据进行排序,得到目标数据序列。需要说明的是,如果目标用户活跃数据包括奇数个数据,则中位数为位于目标数据序列中的中间数据,如果目标用户活跃数据包括偶数个数据,则中位数为位于目标数据序列中两个中间数据的平均值。为了便于理解,请参阅图7,图7为本申请实施例中基于四分位数算法确定各个四分位数的一个示意图,如图所示,在得到中位数(Q2)之后,可进一步求解下四分位数和上四分位数,其中,下四分位数(Q1)又称为“第一四分位数”,即目标数据序列中的第四分之一个(即第25%个)的数据。上四分位数(Q1)又称为“第三四分位数”,即目标数据序列中的第四分之三个(即第75%个)的数据。
基于此,根据上四分位数以及下四分位数之间的差值计算得到四分位距,由此,采用如下方式计算四分位距:
IQR=Q3-Q1;
其中,IQR表示四分位距,Q3表示上四分位数,Q1表示下四分位数。
采用如下方式计算下界值和上界值:
LB=Q1-k*IQR;
UB=Q3+k*IQR;
其中,LB表示下界值(Lower Bound),UB表示上界值(Upper bound),Q3表示上四分位数,Q1表示下四分位数,IQR表示四分位距,k表示预设异常值。可以理解的是,k可以取值1.5或者3,还可以取其他值,通过理论和实验验证,当k=1.5时,区间内覆盖约99.3%的数据,所以认为远离群体的0.7%的数据有可能是异常值,数据在下界值和上界值区间是99%,之外通常是离群点。
为了便于理解,请参阅图8,图8为本申请实施例中基于四分位数算法的一个箱线示意图,如图所示,A1用于指示离群点,每个离群点表示一个异常数据。A2用于指示上界值,A3用于指示上四分位数,A4用于指示平均值,A5用于指示中位数,A6用于指示下四分位数,A7用于指示下界值。由此可见,中位数离下四分位数较近,表明大部分数据集中在箱线图的下端,代表大部分的数据值是在下四分位数和中位数之间,因此,通过四分位数和箱线图可以了解数据值整体情况。
如果目标用户活跃数据中的数据小于下界值,则认为该数据属于异常数据,如果目标用户活跃数据中的数据大于下界值,则认为该数据属于异常数据。在一个示例中,如果异常点数量在目标用户活跃数据中的占比大于或等于占比阈值,则确定基于四分位数算法的判定结果为存在异常,如果异常点数量在目标用户活跃数据中的占比小于占比阈值,则确定基于四分位数算法的判定结果为无异常。
再次,本申请实施例中,提供了一种基于四分位数算法确定是否满足波动异常条件的方式,通过上述方式,由于四分位数算法可以从整体上描述出数据集的分布状态,因此,能够更好地描述数据的异常情况,最后根据目标用户活跃数据中异常数据的占比,确定基于四分位数算法的判定结果,由此,提升判定结果的可靠性。
可选地,在上述图3对应的各个实施例的基础上,本申请实施例提供的另一个可选实施例中,K种预设算法包括环比算法,当前时间窗口还包括第二时间窗口;
根据用户活跃数据,通过K种预设算法生成K个判定结果,具体可以包括:
从用户活跃数据中获取第一时间窗口内的第一用户活跃数据;
从用户活跃数据中获取第二时间窗口内的第二用户活跃数据;
根据第一用户活跃数据以及第二用户活跃数据确定环比值;
根据环比值确定基于环比算法的判定结果。
本实施例中,介绍了一种基于环比算法确定是否满足波动异常条件的方式。由前述实施例可知,当前时间窗口包括第一时间窗口和第二时间窗口,因此,假设当前时间窗口为2天,那么第一时间窗口和第二时间窗口均可以是1天,又或者是其他时间,此处不做限定。首先,从用户活跃数据中获取第一时间窗口内的第一用户活跃数据,并且从用户活跃数据中获取第二时间窗口内的第二用户活跃数据,其中,第一时间窗口内为本期窗口,例如,第一时间窗口为从2021年1月13日14点47分08秒至2021年1月14日14点47分08秒,第二时间窗口内为上期窗口,例如,第二时间窗口为从2021年1月12日14点47分08秒至2021年1月13日14点47分08秒。然后基于第一用户活跃数据与第二用户活跃数据,采用如下方式计算环比值:
Q=(T1-T2)/(T2)*100%;
其中,Q表示环比值,T1表示第一用户活跃数据,T2表示第二用户活跃数据。环比值用于表示两个统计周期内的量比变化比值。由于一个时间窗口内往往包括多个时刻,因此,这里的环比值是指针对某个时刻的环比值,假设第一时间窗口包括100个时刻,且第二时间窗口包括100个时刻,那么可计算得到100个环比值。最后,综合每个时刻的环比值确定基于环比算法的判定结果。在一个示例中,如果至少存在N个环比值大于或等于环比值阈值,则确定基于环比算法的判定结果为存在异常,如果存在N个环比值小于环比值阈值,则确定基于环比算法的判定结果为无异常,N为预先设置的整数。在另一个示例中,如果M个环比值大于或等于环比值阈值,且M与环比值总个数之间的占比大于或等于占比阈值,则确定基于环比算法的判定结果为存在异常。如果M个环比值大于或等于环比值阈值,且M与环比值总个数之间的占比小于占比阈值,则确定基于环比算法的判定结果为无异常。
具体地,为了便于理解,请参阅图9,图9为本申请实施例中用户活跃数据的一个曲线示意图,如图所示,B1用于指示2020年11月10日的用户活跃数据(可作为第一用户活跃数据),B2用于指示2020年11月9日的用户活跃数据(可作为第二用户活跃数据)。基于2020年11月10日和2020年11月9日这两天的用户活跃数据,可见曲线在上午8点左右出现了波动异常。
再次,本申请实施例中,提供了一种基于环比算法确定是否满足波动异常条件的方式,通过上述方式,利用环比算法对前后两个时间窗口内的用户活跃数据进行分析,一方面便于前后两期的近期比较,有利于进行短期分析,另一方面使用多期环比数据的对比结果,还可以作为长期分析数据的依据。
可选地,在上述图3对应的各个实施例的基础上,本申请实施例提供的另一个可选实施例中,K种预设算法包括具有噪声的基于密度的聚类DBSCAN算法;
根据用户活跃数据,通过K种预设算法生成K个判定结果,具体可以包括:
从用户活跃数据中获取第一时间窗口内的目标用户活跃数据,其中,目标用户活跃数据包括Q个数据,Q为大于1的整数;
根据领域半径确定目标领域;
针对于目标用户活跃数据中的每个数据,确定每个数据所在目标领域内的数据数量;
若存在P个数据所在目标领域内的数据数量大于或等于密度阈值,则将P个数据确定为P个核心数据,其中,P为大于或等于1,且小于或等于Q的整数;
根据P个核心数据中每个核心数据所在目标领域与(Q-P)个数据中每个数据之间的包含关系,确定基于DBSCAN算法的判定结果,其中,(Q-P)个数据为目标用户活跃数据中除去P个核心数据之后得到的数据。
本实施例中,介绍了一种采用具有噪声的基于密度的聚类(Density-BasedSpatial Clustering of Applications with Noise,DBSCAN)算法确定是否满足波动异常条件的方式。由前述实施例可知,当前时间窗口包括第一时间窗口,因此,假设当前时间窗口为1天,那么第一时间窗口可以是1个小时,或者1天,又或者是其他时间,此处不做限定。首先,从用户活跃数据中获取第一时间窗口内的目标用户活跃数据,假设目标用户活跃数据包括100万条数据,其中,每条数据可以为某个时刻所对应的播放量。于是采用DBSCAN算法对目标用户活跃数据中的数据进行聚类处理,最后基于聚类结果确定离散数据。在一个示例中,如果离散数据的数量大于或等于数量阈值,则确定基于DBSCAN算法的判定结果为存在异常,如果离散数据的数量小于数量阈值,则确定基于DBSCAN算法的判定结果为无异常。在另一个示例中,如果离散数据的数量在目标用户活跃数据中的占比大于或等于占比阈值,则确定基于DBSCAN算法的判定结果为存在异常,如果离散数据的数量在目标用户活跃数据中的占比小于占比阈值,则确定基于DBSCAN算法的判定结果为无异常。
具体地,DBSCAN算法是一种基于密度的聚类算法,可以通过样本分布的紧密程度决定类别。通过将紧密相连的样本划为一类,就得到了一个聚类类别,通过将所有组紧密相连的样本划为各个不同的类别,可得到最终的聚类结果,而不属于任何类别的数据认为是离散数据。
为了便于理解,请参阅图10,图10为本申请实施例中基于DBSCAN算法的一个基本概念示意图,如图所示,C1用于指示邻域半径(Eps),C2用于指示边界数据,其领域内的数据数量不超过密度阈值(MinPts),其中,MinPts为给定数据在邻域内成为核心数据的最小邻域数据数量,C3用于指示核心数据,其领域内的数据数量超过MinPts。
需要说明的是,Eps和MinPts需要根据具体应用进行设定,此处不做限定。Eps的值可以使用绘制k-距离曲线方法得到,如果Eps设置值过小,则很多数据无法聚类,如果Eps设置过大,则多个簇和大部分数据自动归并到同一个簇中,导致无法分割。MinPts的选取有一个指导性的原则,即MinPts≥dim+1,dim表示待聚类数据的维度。MinPts设置为1是不合理的,因为设置为1,则每个独立点都是一个簇,而MinPts≤2时,与层次距离最近邻域结果相同,因此,MinPts需要选择大于等于3的值。若MinPts选取过小,则稀疏簇中结果由于密度小于MinPts,从而被认为是边界点儿不被用于在类的进一步扩展,若MinPts过大,则密度较大的两个邻近簇可能被合并为同一簇。
下面将结合图11,介绍确定数据之间包含关系的方式,请参阅图11,图11为本申请实施例中基于DBSCAN算法的一个实际应用示意图,如图所示,目标用户活跃数据中的每个数据表示为一个点,假设有Q个数据,即存在Q个点。将所有点基于领域半径画圆圈,每个圆圈即为一个目标领域,基于此,分别获取每个数据在所属目标领域内的数据数量,如果目标领域内的数据数量超过了密度阈值(即Minpts),则该数据为核心数据。因此,如果有P个数据所在目标领域内的数据数量大于或等于密度阈值,则将P个数据确定为P个核心数据。于是,需要对剩余的(Q-P)个数据进行分类,确定是否属于离散数据。
以Minpts等于3为例,即在图11中白色点在目标领域内的数据数量均大于或等于3,因此,这些白色点即为核心数据。而B点和C点在核心数据的目标领域内,但是其领域半径内的点数仅有2个,小于Minpts,因此,B点和C点属于边界点。N点未在核心数据所在的目标领域内,而且从任何一个核心数据出发都是密度不可达的,因此,N点为离散数据。由此可见,A点、B点和C点均密度相连,不属于离散数据。
再次,本申请实施例中,提供了一种采用DBSCAN算法确定是否满足波动异常条件的方式,通过上述方式,利用DBSCAN算法对的用户活跃数据进行分析,一方面聚类速度快,且能够有效处理噪声点和发现任意形状的空间聚类,另一方面不需要输入要划分的聚类个数,并且聚类簇的形状没有偏倚。
可选地,在上述图3对应的各个实施例的基础上,本申请实施例提供的另一个可选实施例中,K种预设算法包括k均值聚类算法;
根据用户活跃数据,通过K种预设算法生成K个判定结果,具体可以包括:
从用户活跃数据中获取第一时间窗口内的目标用户活跃数据,其中,目标用户活跃数据包括Q个数据,Q为大于1的整数;
从目标用户活跃数据中随机确定P个数据作为P个质心数据,其中,P为大于或等于1,且小于Q的整数,
根据(Q-P)个数据中每个数据与P个质心数据中每个质心数据之间的距离,确定P个聚类结果,其中,(Q-P)个数据为目标用户活跃数据中除去P个质心数据之后得到的数据。
根据P个聚类结果确定基于k均值聚类算法的判定结果。
本实施例中,介绍了一种采用k均值聚类(K-Means)算法确定是否满足波动异常条件的方式。由前述实施例可知,当前时间窗口包括第一时间窗口,因此,假设当前时间窗口为1天,那么第一时间窗口可以是1个小时,或者1天,又或者是其他时间,此处不做限定。首先,从用户活跃数据中获取第一时间窗口内的目标用户活跃数据,假设目标用户活跃数据包括100万条数据,其中,每条数据可以为某个时刻所对应的播放量。于是采用K-Means算法对目标用户活跃数据中的数据进行聚类处理,最后基于聚类结果确定每个类别的数据数量。在一个示例中,如果存在类别中数据数量小于或等于数量阈值,则确定基于K-Means算法的判定结果为存在异常,如果存在类别中数据数量大于数量阈值,则确定基于K-Means算法的判定结果为无异常。
具体地,K-Means算法是一种无监督的聚类算法,先随机选取P个对象作为初始的聚类中心。然后计算每个对象与各个种子聚类中心之间的距离,把每个对象分配给距离它最近的聚类中心。聚类中心以及分配给它们的对象就代表一个聚类,一旦全部对象都被分配了,每个聚类的聚类中心会根据聚类中现有的对象被重新计算。这个过程将不断重复直到满足某个终止条件。终止条件可以是以下任意一种,第一种条件没有(或最小数目)的对象被重新分配给不同的聚类,第二种为没有(或最小数目)聚类中心再发生变化,第三种为误差平方和局部最小。
为了便于理解,请参阅图12,图12为本申请实施例中基于k均值聚类算法的一个实际应用示意图,如图所示,目标用户活跃数据中的每个数据表示为一个点,假设有Q个数据,即存在Q个点。其中,白色点表示质心数据,即为簇中心,黑色点表示非质心数据,由此可见,由一个质心数据和至少一个非质心数据构成一个簇。假设初始设置P个类别,那么先随机选择P个数据作为质心数据,然后分别求所有数据到这两个质心数据的距离,并标记每个数据的类别为与该数据距离最小质心数据的类别,于是得到所有数据的第一轮迭代后的类别。此时,对当前标记的两类数据分别求出新的质心数据,新的质心数据位置可能发生了变化。经过多次迭代之后,得到最终的P个质心数据以及P个类别。
再次,本申请实施例中,提供了一种采用K-Means算法确定是否满足波动异常条件的方式,通过上述方式,利用K-Means聚类算法对的用户活跃数据进行分析,一方面算法快速简单,对大数据集有较高的效率并且是可伸缩性的,另一方面时间复杂度近于线性,而且适合挖掘大规模数据集,此外可解释度较强。
可选地,在上述图3对应的各个实施例的基础上,本申请实施例提供的另一个可选实施例中,获取第一时间窗口内第一监控数据与第二时间窗口内第二监控数据之间的M个散度,具体可以包括:
获取第一时间窗口内的第一监控数据以及第二时间窗口内的第二监控数据,其中,第一监控数据与第二监控数据均包括M个维度的数据;
根据第一监控数据生成M个第一数据分布;
根据第二监控数据生成M个第二数据分布;
针对于M个维度中的每个维度,确定每个维度所对应的第一数据分布与第二数据分布之间的詹森香农JS散度;
根据M个散度,从M个维度中确定N个维度,具体可以包括:
若第i个维度对应第一数据分布与第二数据分布之间的JS散度大于或等于JS散度阈值,则确定第i个维度属于N个维度中的一个维度,其中,i为大于或等于1,且小于或等于M的整数。
本实施例中,介绍了一种基于JS散度确定N个维度的方式。根因组合确定装置首先第一时间窗口内第一监控数据与第二时间窗口内第二监控数据,由前述实施例可知,第一时间窗口与第二时间窗口通常具有相等的时间长度,且第一监控数据和第二监控数据均包含M个维度的数据。基于此,分别生成M个第一数据分布以及M个第二数据分布,第一数据分布与第二数据分布具有一一对应的关系,例如,以“平台”维度为例,则具有“平台”维度所对应的第一数据分布和第二数据分布。又例如,以“播放器版本”,则具有“播放器版本”维度所对应的第一数据分布和第二数据分布。针对于每个维度所对应的第一数据分布和第二数据分布,可计算两个分别之间的JS散度,最终得到M个JS散度。
具体地,当两个数据分布的JS散度等于1时,表示两个分布是完全异常的,当两个数据分布的JS散度为0时,表示两个分布是完全两个数据分布相同。此时,需要预先设置一个JS散度阈值,假设JS散度阈值为0.0007,则当两个数据分布的JS散度大于或等于JS散度阈值(例如,0.0007)时,认为这两个数据分布存在较大不同,即第一数据分布相比于第二数据分布出现异常波动,于是确定该第一数据分布所对应的维度属于异常维度,即属于N个维度中的一个维度。反之,当两个数据分布的JS散度小于JS散度阈值(例如,0.0007)时,认为这两个数据分布基本相似,即确定该第一数据分布所对应的维度不属于异常维度,即不属于N个维度中的一个维度。
为了便于理解,请参阅如下的JS散度计算公式:
其中,P表示第一数据分布,Q表示第二数据分布,P(x)表示第一数据分布是x的随机变量,Q(x)表示第二数据分布是x的随机变量,KL(P(x))表示第一数据分布的库尔贝克莱布勒(Kullback-Leibler,KL)散度,KL散度又称为“相对熵”,KL(Q(x))表示第二数据分布的KL。
为了便于理解,请参阅如下的KL散度计算公式:
其中,KL(P||Q)表示KL散度公式,即衡量两个数据分布之间的差异性,相当于一个交叉熵减去一个信息熵,当第一数据分布P(x)和第二数据分布Q(x)越相似时,KL(P||Q)越小,当P(x)=Q(x)时,KL(P||Q)=0,反之则越大。而由于KL散度公式是不对称的,因此,可以使用它的变JS散度公式作为判断指标,当第一数据分布P(x)和第二数据分布Q(x)越相似时,JS(P||Q)越小,当P(x)=Q(x)时,JS(P||Q)=0,当P(x)和Q(x)相反时,JS(P||Q)=1。
需要说明的是,JS散度阈值可以是是人为设定的,也可以使用机器学习历史数据,动态设定的,根据实时数据调整阈值,能够使得系统发现波动异常更加精准。
其次,本申请实施例中,提供了一种基于JS散度确定N个维度的方式,通过上述方式,利用JS散度度量了两个概率分布的相似度,并且解决了散度非对称的问题,由此从M个维度中筛选出N个维度,从而提升方案的可行性和可操作性。
可选地,在上述图3对应的各个实施例的基础上,本申请实施例提供的另一个可选实施例中,获取第一时间窗口内第一监控数据与第二时间窗口内第二监控数据之间的M个散度,具体可以包括:
获取第一时间窗口内的第一监控数据以及第二时间窗口内的第二监控数据,其中,第一监控数据与第二监控数据均包括M个维度的数据;
根据第一监控数据生成M个第一数据分布;
根据第二监控数据生成M个第二数据分布;
针对于M个维度中的每个维度,确定每个维度所对应的第一数据分布与第二数据分布之间的相对熵KL散度;
根据M个散度,从M个维度中确定N个维度,具体可以包括:
若第i个维度对应第一数据分布与第二数据分布之间的KL散度大于或等于KL散度阈值,则确定第i个维度属于N个维度中的一个维度,其中,i为大于或等于1,且小于或等于M的整数。
本实施例中,介绍了一种基于KL散度确定一个或多个维度的方式。根因组合确定装置首先第一时间窗口内第一监控数据与第二时间窗口内第二监控数据,由前述实施例可知,第一时间窗口与第二时间窗口通常具有相等的时间长度,且第一监控数据和第二监控数据均包含M个维度的数据。基于此,分别生成M个第一数据分布以及M个第二数据分布,第一数据分布与第二数据分布具有一一对应的关系,例如,以“平台”维度为例,则具有“平台”维度所对应的第一数据分布和第二数据分布。又例如,以“播放器版本”,则具有“播放器版本”维度所对应的第一数据分布和第二数据分布。针对于每个维度所对应的第一数据分布和第二数据分布,可计算两个分别之间的KL散度,最终得到M个KL散度。
具体地,当两个数据分布的KL散度等于1时,表示两个分布是完全异常的,当两个数据分布的KL散度为0时,表示两个分布是完全两个数据分布相同。此时,需要预先设置一个KL散度阈值,假设KL散度阈值为0.0007,则当两个数据分布的KL散度大于或等于KL散度阈值(例如,0.0007)时,认为这两个数据分布存在较大不同,即第一数据分布相比于第二数据分布出现异常波动,于是确定该第一数据分布所对应的维度属于异常维度,即属于N个维度中的一个维度。反之,当两个数据分布的KL散度小于KL散度阈值(例如,0.0007)时,认为这两个数据分布基本相似,即确定该第一数据分布所对应的维度不属于异常维度,即不属于N个维度中的一个维度。
为了便于理解,请参阅如下的KL散度计算公式:
其中,KL(P||Q)表示KL散度公式,即衡量两个数据分布之间的差异性,相当于一个交叉熵减去一个信息熵,当第一数据分布P(x)和第二数据分布Q(x)越相似时,KL(P||Q)越小,当P(x)=Q(x)时,KL(P||Q)=0,反之则越大。
需要说明的是,KL散度阈值可以是是人为设定的,也可以使用机器学习历史数据,动态设定的,根据实时数据调整阈值,能够使得系统发现波动异常更加精准。
其次,本申请实施例中,提供了一种基于KL散度确定一个或多个维度的方式,通过上述方式,利用JKL散度度量了两个概率分布的相似度,由此从M个维度中筛选出N个维度,从而提升方案的可行性和可操作性。
可选地,在上述图3对应的各个实施例的基础上,本申请实施例提供的另一个可选实施例中,根据第一监控数据中N个维度所对应的数据确定根因组合,具体可以包括:
根据第一监控数据中N个维度所对应的数据,通过蒙特卡罗树搜索模型获取根因组合;
其中,根据第一监控数据中N个维度所对应的数据,通过蒙特卡罗树搜索模型获取根因组合,具体可以包括:
根据蒙特卡罗树搜索模型中各个节点的路径选择参数确定第一节点,其中,第一节点对应的维度为第一维度,第一维度为N个维度中的任意一个维度;
获取N个维度中第二维度所对应的各个数据的潜力分值,其中,第二维度与第一维度为不同的维度;
根据第二维度所对应的各个数据的潜力分值确定第二节点,其中,第二节点为第一节点的子节点;
根据蒙特卡罗树搜索模型中从根节点到第二节点的路径,更新路径上各个节点的路径选择参数;
若满足迭代结束条件,则从T条路径中选择至少一条候选路径,其中,每条候选路径经过根节点以及N个节点;
根据至少一条候选路径中每条候选路径所对应的潜力分值之和,从至少一条候选路径中确定目标路径,其中,目标路径对应于潜力分值之和的最大值。
本实施例中,介绍了一种基于蒙特卡罗树搜索(Monte Carlo Tree Search,MCTS)模型筛选出根因组合的方式。蒙特卡罗树搜索模型由四步组成,分别为选择(Selection),扩展(expansion),模拟(Simluation)和回溯(Backpropagation),下面将结合图13至图16介绍这四个部分,
具体地,在蒙特卡罗树搜索模型中,每个节点都代表一个状态(根节点的状态为空),对于树的每条边,需要设置三个变量,即被访问的次数,潜力分值和路径选择参数。请参阅图13,图13为本申请实施例中基于蒙特卡罗树搜索模型实现节点选择的示意图,如图13中(A)图所示,选择的目的是从当前已长成的树中选择一个已有的节点进行扩展,选择出的节点必须是可扩展的,否则就无法再向其中添加新的元素构成子节点了。最初始的树由一个根节点构成,根节点是一个空集,于是从根节点开始随机选择一个节点,该节点为节点e1,然后继续选择路径选择参数较大(例如,路径选择参数为a2)的节点作为第一节点,该第一节点为节点e3,此时,选出来的节点有节点e1和节点e3。其中,路径选择参数越大,移动概率越大。而第一节点对应的维度为第一维度,第一维度为N个维度中的任意一个维度,例如,对应于维度“国家”,第一节点可表示“中国”。
从根节点开始遍历,寻找一个可以展开的节点,直到叶子节点为止,这里通过上置信界算法(the-upper-confidence-bound-algorithm,UCB)公式计算节点的路径选择参数:
其中,Q表示路径选择参数,wi表示赢的次数,ni表示上节点被访问的次数,Ni表示模拟总次数,c表示探索常数,理论值为可根据经验调整,c越大就越偏向于广度搜索,c越小就越偏向于深度搜索。最后选择路径选择参数最高的节点。
如图13中(B)图所示,节点(7/10)表示模拟了10次,赢了7次,节点(5/8)表示模拟了8次,赢了5次,节点(0/3)表示模拟了3次,赢了5次。假设c=10,则节点(7/10)的路径选择参数为6.2,节点(5/8)的路径选择参数为6.8,节点(0/3)的路径选择参数为10。
接下来,需要对第一节点进行扩展,即经过选择步骤选择了得分较大的节点后,遍历到叶子节点时,如果这个叶子节点不是最终状态,则扩展这个叶子节点。请参阅图14,图14为本申请实施例中基于蒙特卡罗树搜索模型实现节点扩展的示意图,如图14中(A)图所示,在完成选择之后,需要扩展一个新的节点,即从某个维度剩下的元素中选择潜力分值(potential score)最大的元素作为第二节点,该第二节点为节点e4,此时,选出来的节点有节点e1、节点e3和节点e4。如图14中(B)图所示,在这个搜索到的存在未扩展的子节点,加上一个(0/0)的子节点,表示没有历史记录参考。
需要说明的是,通过比较推导值向量和真实值向量的相似性(例如,欧式距离)来确定被考察的元素集是根因的可能性,推导值和真实值之间的距离越小,代表被考察元素集越可能是根因集。潜力分值是衡量这种可能性的指标,计算方式如下:
其中,PS表示潜力分值,d()表示计算欧式距离,表示叶子节点元素实际构成的向量,表示更新的推导值,表示叶子节点元素的预测值构成的一个向量。在一个示例中,实际值来源于第二监控数据,推导值来源于第一监控数据。
在扩展后需要进行模拟,即从叶子节点的状态开始,采用随机策略来模拟后面的变化,直到结局,这个结果会作为节点的初始评分,模拟往往比搜索过程速度快,从而达到节约搜索时间的目的。请参阅图15,图15为本申请实施例中基于蒙特卡罗树搜索模型实现节点模拟的示意图,如图15中(A)图所示,在完成扩展之后,用一个简单策略,比如快速走子策略走到底,得到一个胜负结果。快速走子策略一般适合选择走子很快,但可能不是很精确的策略。因为如果这个策略走得慢,结果虽然会更准确,但由于耗时多了,在单位时间内的模拟次数就少了,这也是为什么一般只模拟一次,因为如果模拟多次,虽然更准确,但更慢。如图15中(B)图所示,可确定本次模拟后的结果。
在模拟后需要进行回溯,将最后得到的胜负结果反向传播加到蒙特卡罗树搜索模型。请参阅图16,图16为本申请实施例中基于蒙特卡罗树搜索模型实现节点方向传播的示意图,如图16中(A)图所示,根据蒙特卡罗树搜索模型中从根节点到第二节点的路径,更新路径上各个节点的路径选择参数,需要说明的是,新加入的节点也要加上一次胜负历史记录。如图16中(B)图所示,假设本次模拟的结果为“失败”,即沿着扩展的路径传递回到根节点,沿途的父节点都会更新访问次数和赢的次数,从而更新路径选择参数。
重复上述过程,直至经过限定的时间,或者达到预设的搜索次数,即认为满足迭代结束条件,最终从所有的路径中选择至少一条候选路径,这里每条被选择的候选路径都经过了N个节点,即每个维度都对应一个被选的节点。计算至少一条候选路径中每条候选路径的潜力分值之和,由此,从中选择出潜力分值之和最大的一条候选路径作为目标路径,该目标路径上的每个节点对应于一个根因,基于此,得到根因组合。
其次,本申请实施例中,提供了一种基于蒙特卡罗树搜索模型筛选出根因组合的方式,通过上述方式,利用蒙特卡罗树搜索模型能够衡量不同维度之间的相互影响,并且整个过程无需人工参与计算,节省了大量的时间和算力,此外,还能够得到较为准确的根因组合结果,从而提升方案的可行性和可操作性。
可选地,在上述图3对应的各个实施例的基础上,本申请实施例提供的另一个可选实施例中,获取第一时间窗口内第一监控数据与第二时间窗口内第二监控数据之间的M个散度之后,还可以包括:
显示M个维度中每个维度所对应的散度;
根据第一监控数据中N个维度所对应的数据确定根因组合之后,还可以包括:
显示根因组合。
本实施例中,介绍了一种推送根因组合的方式。根因组合确定装置首先基于K种预设算法生成K个判定结果,并可以显示K个判定结果。如果根据K个判定结果确定满足波动异常条件,则进一步对每个维度进行散度计算,并可以显示M个散度计算结果。最后,基于M个维度的散度确定N个维度,基于这N个维度的数据计算得到根因组合,并可以显示根因组合。
具体地,为了便于理解,请参阅图17,图17为本申请实施例中系统化定位异动根因运行结果的一个示意图,如图所示,假设K种预设算法分别为基于孤立森林算法,基于四分位数算法以及基于环比算法,经过计算后分别得到每个算法的判定结果。D1用于指示采用预设算法计算得到的结果,并显示是否出现异常值,图17示出当前输入的测试数据存在异常值,于是需要进入下一步判定。假设采用JS散度作为衡量两个数据分布之间差异的依据,于是针对每个维度的数据分布分别计算出对应的JS散度。D2用于指示每个维度所对应的JS散度,以及该JS散度是否超过JS散度阈值(例如,0.0007),如果超过JS散度阈值,则进入下一步,即继续筛选出根因组合,该根因组合就是当前寻找到的最可能的导致数据出现异常波动的各个根因。
在确定根因组合之后,将展示该根因组合。为了便于理解,请参阅图18,图18为本申请实施例中显示根因组合的一个界面示意图,如图所示,通过该界面可直观查看到根因组合所包括的各个根因,并进一步可显示组合得分情况。
其次,本申请实施例中,提供了一种推送根因组合的方式,通过上述方式,设计出一个从判断异常波动到寻找到根因组合的系统,能够科学定量地衡量是否发生了数据异常波动,同时可以快速科学地定位到导致异常的原因,相比于人工观察数据和手动计算查找异常根因,本申请在质量和效率方面极大的提升,同时也避免了大量的异常波动被遗漏,有效地提高了应用日常运维的效率,便于用户快速了解和查看根因内容。
下面对本申请中的根因组合确定装置进行详细描述,请参阅图19,图19为本申请实施例中根因组合确定装置的一个实施例示意图,根因组合确定装置20包括:
获取模块201,用于获取当前时间窗口内的用户活跃数据,其中,当前时间窗口包括第一时间窗口;
获取模块201,还用于若用户活跃数据满足波动异常条件,则获取第一时间窗口内第一监控数据与第二时间窗口内第二监控数据之间的M个散度,其中,第一时间窗口与第二时间窗口属于环比时间区间,第一监控数据与第二监控数据分别包括M个维度,M为大于或等于1的整数;
确定模块202,用于根据M个散度,从M个维度中确定N个维度,其中,每个散度对应于M个维度中的一个维度,N为大于或等于1,且小于或等于M的整数;
确定模块202,还用于根据第一监控数据中N个维度所对应的数据确定根因组合,其中,根因组合包括N个根因。
本申请实施例中,提供了一种根因组合确定装置,采用上述装置,能够根据用户活跃数据优先判定是否存在异常波动,在确定存在异常波动的情况下,进一步定位出导致异常波动的指标维度,最后自动搜索出每个指标维度下具体的根因,相比于人工观察数据和手动查找导致异常的根因,大幅度地提升了根因定位效率,有利于日常运维工作。
可选地,在上述图19所对应的实施例的基础上,本申请实施例提供的根因组合确定装置20的另一实施例中,根因组合确定装置20还包括生成模块203;
生成模块203,用于在获取模块201获取当前时间窗口内的用户活跃数据之后,根据用户活跃数据,通过K种预设算法生成K个判定结果,其中,每种预设算法对应于一个判定结果,K为大于或等于1的整数;
确定模块202,还用于若K个判定结果中存在至少一个判定结果为异常结果,则确定用户活跃数据满足波动异常条件;
确定模块202,还用于若K个判定结果均为非异常结果,则确定用户活跃数据未满足波动异常条件。
本申请实施例中,提供了一种根因组合确定装置,采用上述装置,选择K种算法同时作为是否满足波动异常条件的依据,当K种算法中有任意一个算法认为存在异常波动,则认为满足波动异常条件,仅当K个算均未出现异常时,才判断输出无异常,基于此,如果K为大于1的整数,那么能够增强模型的健壮性,提升异常波动判断的准确性。
可选地,在上述图19所对应的实施例的基础上,本申请实施例提供的根因组合确定装置20的另一实施例中,K种预设算法包括孤立森林算法;
生成模块203,具体用于从用户活跃数据中获取第一时间窗口内的目标用户活跃数据;
根据目标用户活跃数据,通过孤立森林模型所包括的每个孤立树,分别获取每个孤立树所对应的分割结果,其中,孤立森林模型包括至少两个孤立树;
根据每个孤立树所对应的分割结果,确定基于孤立森林算法的判定结果。
本申请实施例中,提供了一种根因组合确定装置,采用上述装置,由于孤立森林算法是基于第一时间窗口内全部用户活跃数据的异常检测方法,因此,具有线性的时间复杂度,且精准度较高。而且通常情况下,树的数量越多,算法越稳定,由于每棵树都是互相独立生成的,因此,可以部署在大规模分布式系统上来加速运算,提升数据处理的效率。
可选地,在上述图19所对应的实施例的基础上,本申请实施例提供的根因组合确定装置20的另一实施例中,
生成模块203,具体用于根据每个孤立树所对应的分割结果,确定目标用户活跃数据中每个数据在每个孤立树中的路径长度;
根据每个数据在每个孤立树中的路径长度,确定每个数据所对应的异常分数,其中,异常分值表示数据的平均路径长度;
若目标用户活跃数据中的数据所对应的异常分数大于或等于异常分数阈值,则确定数据为异常数据;
根据目标用户活跃数据中异常数据的占比,确定基于孤立森林算法的判定结果。
本申请实施例中,提供了一种根因组合确定装置,采用上述装置,可基于每个数据所对应的异常分数确定是否为异常数据,并结合异常数据的占比确定判定结果,相比于根据异常数据的数量确定判定结果,能够提升方案的合理性,以及增加判定结果的准确性。
可选地,在上述图19所对应的实施例的基础上,本申请实施例提供的根因组合确定装置20的另一实施例中,K种预设算法包括四分位数算法;
生成模块203,具体用于从用户活跃数据中获取第一时间窗口内的目标用户活跃数据;
按照从小至大的顺序,对目标用户活跃数据进行排序,得到目标数据序列;
根据目标数据序列确定下四分位数以及上四分位数,其中,下四分位数表示在目标数据序列中第四分之一个的数据,上四分位数表示在目标数据序列中第四分之三个的数据;
根据上四分位数以及下四分位数之间的差值,确定四分位距;
根据下四分位数、四分位距以及预设异常值,确定下界值;
根据上四分位数、四分位距以及预设异常值,确定上界值;
若目标用户活跃数据中的数据小于下界值,或,大于上界值,则确定数据为异常数据;
根据目标用户活跃数据中异常数据的占比,确定基于四分位数算法的判定结果。
本申请实施例中,提供了一种根因组合确定装置,采用上述装置,由于四分位数算法可以从整体上描述出数据集的分布状态,因此,能够更好地描述数据的异常情况,最后根据目标用户活跃数据中异常数据的占比,确定基于四分位数算法的判定结果,由此,提升判定结果的可靠性。
可选地,在上述图19所对应的实施例的基础上,本申请实施例提供的根因组合确定装置20的另一实施例中,K种预设算法包括环比算法,当前时间窗口还包括第二时间窗口;
生成模块203,具体用于从用户活跃数据中获取第一时间窗口内的第一用户活跃数据;
从用户活跃数据中获取第二时间窗口内的第二用户活跃数据;
根据第一用户活跃数据以及第二用户活跃数据确定环比值;
根据环比值确定基于环比算法的判定结果。
本申请实施例中,提供了一种根因组合确定装置,采用上述装置,利用环比算法对前后两个时间窗口内的用户活跃数据进行分析,一方面便于前后两期的近期比较,有利于进行短期分析,另一方面使用多期环比数据的对比结果,还可以作为长期分析数据的依据。
可选地,在上述图19所对应的实施例的基础上,本申请实施例提供的根因组合确定装置20的另一实施例中,K种预设算法包括具有噪声的基于密度的聚类DBSCAN算法;
生成模块203,具体用于从用户活跃数据中获取第一时间窗口内的目标用户活跃数据,其中,目标用户活跃数据包括Q个数据,Q为大于1的整数;
根据领域半径确定目标领域;
针对于目标用户活跃数据中的每个数据,确定每个数据所在目标领域内的数据数量;
若存在P个数据所在目标领域内的数据数量大于或等于密度阈值,则将P个数据确定为P个核心数据,其中,P为大于或等于1,且小于或等于Q的整数;
根据P个核心数据中每个核心数据所在目标领域与(Q-P)个数据中每个数据之间的包含关系,确定基于DBSCAN算法的判定结果,其中,(Q-P)个数据为目标用户活跃数据中除去P个核心数据之后得到的数据。
本申请实施例中,提供了一种根因组合确定装置,采用上述装置,利用DBSCAN算法对的用户活跃数据进行分析,一方面聚类速度快,且能够有效处理噪声点和发现任意形状的空间聚类,另一方面不需要输入要划分的聚类个数,并且聚类簇的形状没有偏倚。
可选地,在上述图19所对应的实施例的基础上,本申请实施例提供的根因组合确定装置20的另一实施例中,K种预设算法包括k均值聚类算法;
生成模块203,具体用于从用户活跃数据中获取第一时间窗口内的目标用户活跃数据,其中,目标用户活跃数据包括Q个数据,Q为大于1的整数;
从目标用户活跃数据中随机确定P个数据作为P个质心数据,其中,P为大于或等于1,且小于Q的整数,
根据(Q-P)个数据中每个数据与P个质心数据中每个质心数据之间的距离,确定P个聚类结果,其中,(Q-P)个数据为目标用户活跃数据中除去P个质心数据之后得到的数据。
根据P个聚类结果确定基于k均值聚类算法的判定结果。
本申请实施例中,提供了一种根因组合确定装置,采用上述装置,利用K-Means聚类算法对的用户活跃数据进行分析,一方面算法快速简单,对大数据集有较高的效率并且是可伸缩性的,另一方面时间复杂度近于线性,而且适合挖掘大规模数据集,此外可解释度较强。
可选地,在上述图19所对应的实施例的基础上,本申请实施例提供的根因组合确定装置20的另一实施例中,
获取模块201,具体用于获取第一时间窗口内的第一监控数据以及第二时间窗口内的第二监控数据,其中,第一监控数据与第二监控数据均包括M个维度的数据;
根据第一监控数据生成M个第一数据分布;
根据第二监控数据生成M个第二数据分布;
针对于M个维度中的每个维度,确定每个维度所对应的第一数据分布与第二数据分布之间的詹森香农JS散度;
确定模块202,具体用于若第i个维度对应第一数据分布与第二数据分布之间的JS散度大于或等于JS散度阈值,则确定第i个维度属于N个维度中的一个维度,其中,i为大于或等于1,且小于或等于M的整数。
本申请实施例中,提供了一种根因组合确定装置,采用上述装置,利用JS散度度量了两个概率分布的相似度,并且解决了散度非对称的问题,由此从M个维度中筛选出N个维度,从而提升方案的可行性和可操作性。
可选地,在上述图19所对应的实施例的基础上,本申请实施例提供的根因组合确定装置20的另一实施例中,
获取模块201,具体用于获取第一时间窗口内的第一监控数据以及第二时间窗口内的第二监控数据,其中,第一监控数据与第二监控数据均包括M个维度的数据;
根据第一监控数据生成M个第一数据分布;
根据第二监控数据生成M个第二数据分布;
针对于M个维度中的每个维度,确定每个维度所对应的第一数据分布与第二数据分布之间的相对熵KL散度;
确定模块202,具体用于若第i个维度对应第一数据分布与第二数据分布之间的KL散度大于或等于KL散度阈值,则确定第i个维度属于N个维度中的一个维度,其中,i为大于或等于1,且小于或等于M的整数。
本申请实施例中,提供了一种根因组合确定装置,采用上述装置,利用JKL散度度量了两个概率分布的相似度,由此从M个维度中筛选出N个维度,从而提升方案的可行性和可操作性。
可选地,在上述图19所对应的实施例的基础上,本申请实施例提供的根因组合确定装置20的另一实施例中,
确定模块202,具体用于根据第一监控数据中N个维度所对应的数据,通过蒙特卡罗树搜索模型获取根因组合;其中,
确定模块202,具体用于根据蒙特卡罗树搜索模型中各个节点的路径选择参数确定第一节点,其中,第一节点对应的维度为第一维度,第一维度为N个维度中的任意一个维度;
获取N个维度中第二维度所对应的各个数据的潜力分值,其中,第二维度与第一维度为不同的维度;
根据第二维度所对应的各个数据的潜力分值确定第二节点,其中,第二节点为第一节点的子节点;
根据蒙特卡罗树搜索模型中从根节点到第二节点的路径,更新路径上各个节点的路径选择参数;
若满足迭代结束条件,则从T条路径中选择至少一条候选路径,其中,每条候选路径经过根节点以及N个节点;
根据至少一条候选路径中每条候选路径所对应的潜力分值之和,从至少一条候选路径中确定目标路径,其中,目标路径对应于潜力分值之和的最大值。
本申请实施例中,提供了一种根因组合确定装置,采用上述装置,利用蒙特卡罗树搜索模型能够衡量不同维度之间的相互影响,并且整个过程无需人工参与计算,节省了大量的时间和算力,此外,还能够得到较为准确的根因组合结果,从而提升方案的可行性和可操作性。
可选地,在上述图19所对应的实施例的基础上,本申请实施例提供的根因组合确定装置20的另一实施例中,根因组合确定装置20还包括显示模块204;
显示模块204,用于在获取模块201获取第一时间窗口内第一监控数据与第二时间窗口内第二监控数据之间的M个散度之后,显示M个维度中每个维度所对应的散度;
显示模块204,还用于在确定模块202根据第一监控数据中N个维度所对应的数据确定根因组合之后,显示根因组合。
本申请实施例中,提供了一种根因组合确定装置,采用上述装置,设计出一个从判断异常波动到寻找到根因组合的系统,能够科学定量地衡量是否发生了数据异常波动,同时可以快速科学地定位到导致异常的原因,相比于人工观察数据和手动计算查找异常根因,本申请在质量和效率方面极大的提升,同时也避免了大量的异常波动被遗漏,有效地提高了应用日常运维的效率,便于用户快速了解和查看根因内容。
图20是本申请实施例计算机设备30的结构示意图。计算机设备30可包括输入设备310、输出设备320、处理器330和存储器340。本申请实施例中的输出设备可以是显示设备。
存储器340可以包括只读存储器和随机存取存储器,并向处理器330提供指令和数据。存储器340的一部分还可以包括非易失性随机存取存储器(Non-Volatile RandomAccess Memory,NVRAM)。
存储器340存储了如下的元素,可执行模块或者数据结构,或者它们的子集,或者它们的扩展集:
操作指令:包括各种操作指令,用于实现各种操作。
操作系统:包括各种系统程序,用于实现各种基础业务以及处理基于硬件的任务。
处理器330控制计算机设备30的操作,处理器330还可以称为中央处理单元(Central Processing Unit,CPU)。存储器340可以包括只读存储器和随机存取存储器,并向处理器330提供指令和数据。存储器340的一部分还可以包括NVRAM。具体的应用中,计算机设备30的各个组件通过总线系统350耦合在一起,其中总线系统350除包括数据总线之外,还可以包括电源总线、控制总线和状态信号总线等。但是为了清楚说明起见,在图中将各种总线都标为总线系统350。
上述本申请实施例揭示的方法可以应用于处理器330中,或者由处理器330实现。处理器330可能是一种集成电路芯片,具有信号的处理能力。在实现过程中,上述方法的各步骤可以通过处理器330中的硬件的集成逻辑电路或者软件形式的指令完成。上述的处理器330可以是通用处理器、数字信号处理器(Digital Signal Processing,DSP)、专用集成电路(Application Specific Integrated Circuit,ASIC)、现成可编程门阵列(Field-Programmable Gate Array,FPGA)或者其他可编程逻辑器件、分立门或者晶体管逻辑器件、分立硬件组件。可以实现或者执行本申请实施例中的公开的各方法、步骤及逻辑框图。通用处理器可以是微处理器或者该处理器也可以是任何常规的处理器等。结合本申请实施例所公开的方法的步骤可以直接体现为硬件译码处理器执行完成,或者用译码处理器中的硬件及软件模块组合执行完成。软件模块可以位于随机存储器,闪存、只读存储器,可编程只读存储器或者电可擦写可编程存储器、寄存器等本领域成熟的存储介质中。该存储介质位于存储器340,处理器330读取存储器340中的信息,结合其硬件完成上述方法的步骤。
图20的相关描述可以参阅图3方法部分的相关描述和效果进行理解,本处不做过多赘述。
本申请实施例中还提供一种计算机可读存储介质,该计算机可读存储介质中存储有计算机程序,当其在计算机上运行时,使得计算机执行如前述各个实施例描述的方法。
本申请实施例中还提供一种包括程序的计算机程序产品,当其在计算机上运行时,使得计算机执行前述各个实施例描述的方法。
所属领域的技术人员可以清楚地了解到,为描述的方便和简洁,上述描述的系统,装置和单元的具体工作过程,可以参考前述方法实施例中的对应过程,在此不再赘述。
在本申请所提供的几个实施例中,应该理解到,所揭露的系统,装置和方法,可以通过其它的方式实现。例如,以上所描述的装置实施例仅仅是示意性的,例如,所述单元的划分,仅仅为一种逻辑功能划分,实际实现时可以有另外的划分方式,例如多个单元或组件可以结合或者可以集成到另一个系统,或一些特征可以忽略,或不执行。另一点,所显示或讨论的相互之间的耦合或直接耦合或通信连接可以是通过一些接口,装置或单元的间接耦合或通信连接,可以是电性,机械或其它的形式。
所述作为分离部件说明的单元可以是或者也可以不是物理上分开的,作为单元显示的部件可以是或者也可以不是物理单元,即可以位于一个地方,或者也可以分布到多个网络单元上。可以根据实际的需要选择其中的部分或者全部单元来实现本实施例方案的目的。
另外,在本申请各个实施例中的各功能单元可以集成在一个处理单元中,也可以是各个单元单独物理存在,也可以两个或两个以上单元集成在一个单元中。上述集成的单元既可以采用硬件的形式实现,也可以采用软件功能单元的形式实现。
所述集成的单元如果以软件功能单元的形式实现并作为独立的产品销售或使用时,可以存储在一个计算机可读取存储介质中。基于这样的理解,本申请的技术方案本质上或者说对现有技术做出贡献的部分或者该技术方案的全部或部分可以以软件产品的形式体现出来,该计算机软件产品存储在一个存储介质中,包括若干指令用以使得一台计算机设备(可以是个人计算机,服务器,或者网络设备等)执行本申请各个实施例所述方法的全部或部分步骤。而前述的存储介质包括:U盘、移动硬盘、只读存储器(read-only memory,ROM)、随机存取存储器(random access memory,RAM)、磁碟或者光盘等各种可以存储程序代码的介质。
以上所述,以上实施例仅用以说明本申请的技术方案,而非对其限制;尽管参照前述实施例对本申请进行了详细的说明,本领域的普通技术人员应当理解:其依然可以对前述各实施例所记载的技术方案进行修改,或者对其中部分技术特征进行等同替换;而这些修改或者替换,并不使相应技术方案的本质脱离本申请各实施例技术方案的精神和范围。
Claims (15)
1.一种根因组合确定的方法,其特征在于,包括:
获取当前时间窗口内的用户活跃数据,其中,所述当前时间窗口包括第一时间窗口;
若所述用户活跃数据满足波动异常条件,则获取所述第一时间窗口内第一监控数据与第二时间窗口内第二监控数据之间的M个散度,其中,所述第一时间窗口与所述第二时间窗口属于环比时间区间,所述第一监控数据与所述第二监控数据分别包括M个维度,所述M为大于或等于1的整数;
根据所述M个散度,从所述M个维度中确定N个维度,其中,所述每个散度对应于所述M个维度中的一个维度,所述N为大于或等于1,且小于或等于所述M的整数;
根据所述第一监控数据中所述N个维度所对应的数据确定根因组合,其中,所述根因组合包括N个根因。
2.根据权利要求1所述的方法,其特征在于,所述获取当前时间窗口内的用户活跃数据之后,所述方法还包括:
根据所述用户活跃数据,通过K种预设算法生成K个判定结果,其中,每种预设算法对应于一个判定结果,所述K为大于或等于1的整数;
若所述K个判定结果中存在至少一个判定结果为异常结果,则确定所述用户活跃数据满足所述波动异常条件;
若所述K个判定结果均为非异常结果,则确定所述用户活跃数据未满足所述波动异常条件。
3.根据权利要求2所述的方法,其特征在于,所述K种预设算法包括孤立森林算法;
所述根据所述用户活跃数据,通过K种预设算法生成K个判定结果,具体包括:
从所述用户活跃数据中获取所述第一时间窗口内的目标用户活跃数据;
根据所述目标用户活跃数据,通过孤立森林模型所包括的每个孤立树,分别获取所述每个孤立树所对应的分割结果,其中,所述孤立森林模型包括至少两个孤立树;
根据所述每个孤立树所对应的分割结果,确定基于所述孤立森林算法的判定结果。
4.根据权利要求3所述的方法,其特征在于,所述根据所述每个孤立树所对应的分割结果,确定基于所述孤立森林算法的判定结果,具体包括:
根据所述每个孤立树所对应的分割结果,确定所述目标用户活跃数据中每个数据在所述每个孤立树中的路径长度;
根据所述每个数据在所述每个孤立树中的路径长度,确定所述每个数据所对应的异常分数,其中,所述异常分值表示数据的平均路径长度;
若所述目标用户活跃数据中的数据所对应的异常分数大于或等于异常分数阈值,则确定所述数据为异常数据;
根据所述目标用户活跃数据中异常数据的占比,确定基于所述孤立森林算法的判定结果。
5.根据权利要求2所述的方法,其特征在于,所述K种预设算法包括四分位数算法;
所述根据所述用户活跃数据,通过K种预设算法生成K个判定结果,具体包括:
从所述用户活跃数据中获取所述第一时间窗口内的目标用户活跃数据;
按照从小至大的顺序,对所述目标用户活跃数据进行排序,得到目标数据序列;
根据所述目标数据序列确定下四分位数以及上四分位数,其中,所述下四分位数表示在所述目标数据序列中第四分之一个的数据,所述上四分位数表示在所述目标数据序列中第四分之三个的数据;
根据所述上四分位数以及所述下四分位数之间的差值,确定四分位距;
根据所述下四分位数、所述四分位距以及预设异常值,确定下界值;
根据所述上四分位数、所述四分位距以及所述预设异常值,确定上界值;
若所述目标用户活跃数据中的数据小于所述下界值,或,大于所述上界值,则确定所述数据为异常数据;
根据所述目标用户活跃数据中异常数据的占比,确定基于所述四分位数算法的判定结果。
6.根据权利要求2所述的方法,其特征在于,所述K种预设算法包括环比算法,所述当前时间窗口还包括所述第二时间窗口;
所述根据所述用户活跃数据,通过K种预设算法生成K个判定结果,具体包括:
从所述用户活跃数据中获取所述第一时间窗口内的第一用户活跃数据;
从所述用户活跃数据中获取所述第二时间窗口内的第二用户活跃数据;
根据所述第一用户活跃数据以及所述第二用户活跃数据确定环比值;
根据所述环比值确定基于所述环比算法的判定结果。
7.根据权利要求2所述的方法,其特征在于,所述K种预设算法包括具有噪声的基于密度的聚类DBSCAN算法;
所述根据所述用户活跃数据,通过K种预设算法生成K个判定结果,具体包括:
从所述用户活跃数据中获取所述第一时间窗口内的目标用户活跃数据,其中,所述目标用户活跃数据包括Q个数据,所述Q为大于1的整数;
根据领域半径确定目标领域;
针对于所述目标用户活跃数据中的每个数据,确定所述每个数据所在目标领域内的数据数量;
若存在P个数据所在目标领域内的数据数量大于或等于密度阈值,则将所述P个数据确定为P个核心数据,其中,所述P为大于或等于1,且小于或等于所述Q的整数;
根据所述P个核心数据中每个核心数据所在目标领域与(Q-P)个数据中每个数据之间的包含关系,确定基于所述DBSCAN算法的判定结果,其中,所述(Q-P)个数据为所述目标用户活跃数据中除去所述P个核心数据之后得到的数据。
8.根据权利要求2所述的方法,其特征在于,所述K种预设算法包括k均值聚类算法;
所述根据所述用户活跃数据,通过K种预设算法生成K个判定结果,具体包括:
从所述用户活跃数据中获取所述第一时间窗口内的目标用户活跃数据,其中,所述目标用户活跃数据包括Q个数据,所述Q为大于1的整数;
从所述目标用户活跃数据中随机确定P个数据作为P个质心数据,其中,所述P为大于或等于1,且小于所述Q的整数,
根据(Q-P)个数据中每个数据与所述P个质心数据中每个质心数据之间的距离,确定P个聚类结果,其中,所述(Q-P)个数据为所述目标用户活跃数据中除去所述P个质心数据之后得到的数据。
根据所述P个聚类结果确定基于所述k均值聚类算法的判定结果。
9.根据权利要求1所述的方法,其特征在于,所述获取所述第一时间窗口内第一监控数据与第二时间窗口内第二监控数据之间的M个散度,具体包括:
获取所述第一时间窗口内的所述第一监控数据以及所述第二时间窗口内的所述第二监控数据,其中,所述第一监控数据与所述第二监控数据均包括所述M个维度的数据;
根据所述第一监控数据生成M个第一数据分布;
根据所述第二监控数据生成M个第二数据分布;
针对于所述M个维度中的每个维度,确定所述每个维度所对应的第一数据分布与第二数据分布之间的詹森香农JS散度;
所述根据所述M个散度,从所述M个维度中确定N个维度,具体包括:
若第i个维度对应第一数据分布与第二数据分布之间的JS散度大于或等于JS散度阈值,则确定所述第i个维度属于所述N个维度中的一个维度,其中,所述i为大于或等于1,且小于或等于所述M的整数。
10.根据权利要求1所述的方法,其特征在于,所述获取所述第一时间窗口内第一监控数据与第二时间窗口内第二监控数据之间的M个散度,具体包括:
获取所述第一时间窗口内的所述第一监控数据以及所述第二时间窗口内的所述第二监控数据,其中,所述第一监控数据与所述第二监控数据均包括所述M个维度的数据;
根据所述第一监控数据生成M个第一数据分布;
根据所述第二监控数据生成M个第二数据分布;
针对于所述M个维度中的每个维度,确定所述每个维度所对应的第一数据分布与第二数据分布之间的相对熵KL散度;
所述根据所述M个散度,从所述M个维度中确定N个维度,具体包括:
若第i个维度对应第一数据分布与第二数据分布之间的KL散度大于或等于KL散度阈值,则确定所述第i个维度属于所述N个维度中的一个维度,其中,所述i为大于或等于1,且小于或等于所述M的整数。
11.根据权利要求1所述的方法,其特征在于,所述根据所述第一监控数据中所述N个维度所对应的数据确定根因组合,具体包括:
根据所述第一监控数据中所述N个维度所对应的数据,通过蒙特卡罗树搜索模型获取根因组合;
其中,所述根据所述第一监控数据中所述N个维度所对应的数据,通过蒙特卡罗树搜索模型获取根因组合,具体包括:
根据所述蒙特卡罗树搜索模型中各个节点的路径选择参数确定第一节点,其中,所述第一节点对应的维度为第一维度,所述第一维度为所述N个维度中的任意一个维度;
获取所述N个维度中第二维度所对应的各个数据的潜力分值,其中,所述第二维度与所述第一维度为不同的维度;
根据所述第二维度所对应的各个数据的潜力分值确定第二节点,其中,第二节点为所述第一节点的子节点;
根据所述蒙特卡罗树搜索模型中从根节点到所述第二节点的路径,更新所述路径上各个节点的路径选择参数;
若满足迭代结束条件,则从T条路径中选择至少一条候选路径,其中,每条候选路径经过所述根节点以及N个节点;
根据所述至少一条候选路径中所述每条候选路径所对应的潜力分值之和,从所述至少一条候选路径中确定目标路径,其中,所述目标路径对应于潜力分值之和的最大值。
12.根据权利要求1至11中任一项所述的方法,其特征在于,所述获取所述第一时间窗口内第一监控数据与第二时间窗口内第二监控数据之间的M个散度之后,所述方法还包括:
显示所述M个维度中每个维度所对应的散度;
所述根据所述第一监控数据中所述N个维度所对应的数据确定根因组合之后,所述方法还包括:
显示所述根因组合。
13.一种根因组合确定装置,其特征在于,包括:
获取模块,用于获取当前时间窗口内的用户活跃数据,其中,所述当前时间窗口包括第一时间窗口;
所述获取模块,还用于若所述用户活跃数据满足波动异常条件,则获取所述第一时间窗口内第一监控数据与第二时间窗口内第二监控数据之间的M个散度,其中,所述第一时间窗口与所述第二时间窗口属于环比时间区间,所述第一监控数据与所述第二监控数据分别包括M个维度,所述M为大于或等于1的整数;
确定模块,用于根据所述M个散度,从所述M个维度中确定N个维度,其中,所述每个散度对应于所述M个维度中的一个维度,所述N为大于或等于1,且小于或等于所述M的整数;
所述确定模块,还用于根据所述第一监控数据中所述N个维度所对应的数据确定根因组合,其中,所述根因组合包括N个根因。
14.一种计算机设备,其特征在于,包括:存储器、处理器以及总线系统;
其中,所述存储器用于存储程序;
所述处理器用于执行所述存储器中的程序,所述处理器用于根据程序代码中的指令执行权利要求1至12中任一项所述的方法;
所述总线系统用于连接所述存储器以及所述处理器,以使所述存储器以及所述处理器进行通信。
15.一种计算机可读存储介质,包括指令,当其在计算机上运行时,使得计算机执行如权利要求1至12中任一项所述的方法。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202110216268.9A CN114971110A (zh) | 2021-02-26 | 2021-02-26 | 一种根因组合确定的方法、相关装置、设备以及存储介质 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202110216268.9A CN114971110A (zh) | 2021-02-26 | 2021-02-26 | 一种根因组合确定的方法、相关装置、设备以及存储介质 |
Publications (1)
Publication Number | Publication Date |
---|---|
CN114971110A true CN114971110A (zh) | 2022-08-30 |
Family
ID=82972884
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN202110216268.9A Pending CN114971110A (zh) | 2021-02-26 | 2021-02-26 | 一种根因组合确定的方法、相关装置、设备以及存储介质 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN114971110A (zh) |
Cited By (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN117349764A (zh) * | 2023-12-05 | 2024-01-05 | 河北三臧生物科技有限公司 | 一种干细胞诱导数据智能分析方法 |
-
2021
- 2021-02-26 CN CN202110216268.9A patent/CN114971110A/zh active Pending
Cited By (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN117349764A (zh) * | 2023-12-05 | 2024-01-05 | 河北三臧生物科技有限公司 | 一种干细胞诱导数据智能分析方法 |
CN117349764B (zh) * | 2023-12-05 | 2024-02-27 | 河北三臧生物科技有限公司 | 一种干细胞诱导数据智能分析方法 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
US10719301B1 (en) | Development environment for machine learning media models | |
Bu et al. | A fast parallel modularity optimization algorithm (FPMQA) for community detection in online social network | |
CN112365171B (zh) | 基于知识图谱的风险预测方法、装置、设备及存储介质 | |
US11537506B1 (en) | System for visually diagnosing machine learning models | |
Zhou et al. | Multiobjective biogeography based optimization algorithm with decomposition for community detection in dynamic networks | |
Chopade et al. | A framework for community detection in large networks using game-theoretic modeling | |
Bhuyan et al. | Explainable machine learning for data extraction across computational social system | |
CN112800231B (zh) | 电力数据校验方法、装置、计算机设备和存储介质 | |
CN112800115B (zh) | 数据处理方法及数据处理装置 | |
Hu et al. | An event detection method for social networks based on hybrid link prediction and quantum swarm intelligent | |
WO2020140624A1 (zh) | 从日志中提取数据的方法和相关设备 | |
Li et al. | Evolutionary network embedding preserving both local proximity and community structure | |
CN114897085A (zh) | 一种基于封闭子图链路预测的聚类方法及计算机设备 | |
Liu et al. | Detecting community structure for undirected big graphs based on random walks | |
CN114971110A (zh) | 一种根因组合确定的方法、相关装置、设备以及存储介质 | |
Li et al. | Intrusion detection method based on imbalanced learning classification | |
Pi et al. | Clique densification in networks | |
CN114495137B (zh) | 票据异常检测模型生成方法与票据异常检测方法 | |
CN112463964B (zh) | 文本分类及模型训练方法、装置、设备及存储介质 | |
Wang et al. | A two-dimensional genetic algorithm for identifying overlapping communities in dynamic networks | |
Wang et al. | Hierarchical community detection in social networks based on micro-community and minimum spanning tree | |
Lv et al. | CEP rule extraction framework based on evolutionary algorithm | |
CN114969738B (zh) | 一种接口异常行为监测方法、系统、装置及存储介质 | |
Barbillon et al. | misssbm: An r package for handling missing values in the stochastic block model | |
Liang et al. | Experimental evaluation of a machine learning approach to improve the reproducibility of network simulations |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
PB01 | Publication | ||
PB01 | Publication | ||
SE01 | Entry into force of request for substantive examination | ||
SE01 | Entry into force of request for substantive examination |