CN111459797B - 开源社区中开发者行为的异常检测方法、系统及介质 - Google Patents

开源社区中开发者行为的异常检测方法、系统及介质 Download PDF

Info

Publication number
CN111459797B
CN111459797B CN202010124140.5A CN202010124140A CN111459797B CN 111459797 B CN111459797 B CN 111459797B CN 202010124140 A CN202010124140 A CN 202010124140A CN 111459797 B CN111459797 B CN 111459797B
Authority
CN
China
Prior art keywords
behavior
frequent
sequence
sequences
developer
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.)
Active
Application number
CN202010124140.5A
Other languages
English (en)
Other versions
CN111459797A (zh
Inventor
曹健
童兰轩
钱诗友
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
Shanghai Jiaotong University
Original Assignee
Shanghai Jiaotong University
Priority date (The priority date 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 date listed.)
Filing date
Publication date
Application filed by Shanghai Jiaotong University filed Critical Shanghai Jiaotong University
Priority to CN202010124140.5A priority Critical patent/CN111459797B/zh
Publication of CN111459797A publication Critical patent/CN111459797A/zh
Application granted granted Critical
Publication of CN111459797B publication Critical patent/CN111459797B/zh
Active legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Images

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F11/00Error detection; Error correction; Monitoring
    • G06F11/36Preventing errors by testing or debugging software
    • G06F11/3668Software testing
    • G06F11/3672Test management
    • G06F11/3688Test management for test execution, e.g. scheduling of test suites
    • YGENERAL TAGGING OF NEW TECHNOLOGICAL DEVELOPMENTS; GENERAL TAGGING OF CROSS-SECTIONAL TECHNOLOGIES SPANNING OVER SEVERAL SECTIONS OF THE IPC; TECHNICAL SUBJECTS COVERED BY FORMER USPC CROSS-REFERENCE ART COLLECTIONS [XRACs] AND DIGESTS
    • Y02TECHNOLOGIES OR APPLICATIONS FOR MITIGATION OR ADAPTATION AGAINST CLIMATE CHANGE
    • Y02DCLIMATE CHANGE MITIGATION TECHNOLOGIES IN INFORMATION AND COMMUNICATION TECHNOLOGIES [ICT], I.E. INFORMATION AND COMMUNICATION TECHNOLOGIES AIMING AT THE REDUCTION OF THEIR OWN ENERGY USE
    • Y02D10/00Energy efficient computing, e.g. low power processors, power management or thermal management

Landscapes

  • Engineering & Computer Science (AREA)
  • Theoretical Computer Science (AREA)
  • Computer Hardware Design (AREA)
  • Quality & Reliability (AREA)
  • Physics & Mathematics (AREA)
  • General Engineering & Computer Science (AREA)
  • General Physics & Mathematics (AREA)
  • Information Retrieval, Db Structures And Fs Structures Therefor (AREA)

Abstract

本发明提供了一种开源社区中开发者行为的异常检测方法、系统及介质,包括:构建序列步骤:根据开发者行为构建不同的行为次数时间序列;行为数据离散化步骤:对行为次数时间序列进行划分成区间内差异低于预设范围,区间之间差异高于预设范围的不同类别,并达到预设类别数量;行为频繁序列挖掘步骤:在其他人员的行为序列和待检测者的历史行为序列上均进行行为频繁序列挖掘;行为异常性判断步骤:判断开发者的行为是否存在异常。本发明提高了开源项目的确定性,减少了项目进度风险;本发明可以追溯历史数据,对过去异常数据进行标识。

Description

开源社区中开发者行为的异常检测方法、系统及介质
技术领域
本发明涉及行为异常检测技术领域,具体地,涉及一种开源社区中开发者行为的异常检测方法、系统及介质。
背景技术
开源软件已经成为了目前的软件开发的主流方式。开发者在这些开源社区中以各种方式作出贡献,推动着开源软件的发展。与此同时,许多开发者参与的积极性并不稳定,开发者的开发行为常常出现一些异常现象。这些异常带来了开源项目的不确定性,往往导致项目进度风险;另一方面有些异常也意味着对项目及时调整的机会,因此需要及时检测开发者的开发行为异常。在开源社区中开发者的行为具有多种类型,同时,也缺乏对过去异常数据的标识。目前还没有针对开源社区中开发者的多维度开发行为进行无监督的异常识别方法。
专利文献CN105677572B(申请号:201610077926.X)公开了一种基于自组织映射模型的云软件性能异常错误诊断方法,包括:追踪记录待检测的软件在云环境中运行时的系统调用信息;分析出现性能异常的虚拟机上软件运行时系统调用序列,划分每个进程对应的系统调用序列;根据划分得到的进程系统调用序列建立检测模型,并对可疑进程进行异常检测;计算出现异常的进程中最相关的系统调用,排序后输出。本发明能够准确完整地记录软件运行时的行为,能够自动化建模并且检测出异常的系统运行过程,能够更准确地定位异常运行过程相关的系统调用。
发明内容
针对现有技术中的缺陷,本发明的目的是提供一种开源社区中开发者行为的异常检测方法、系统及介质。
根据本发明提供的开源社区中开发者行为的异常检测方法,包括:
构建序列步骤:根据开发者行为构建不同的行为次数时间序列;
行为数据离散化步骤:对行为次数时间序列进行划分成区间内差异低于预设范围,区间之间差异高于预设范围的不同类别,并达到预设类别数量;
行为频繁序列挖掘步骤:在其他人员的行为序列和待检测者的历史行为序列上均进行行为频繁序列挖掘;
行为异常性判断步骤:判断开发者的行为是否存在异常。
优选地,所述行为次数时间序列包括:
次数序列:由一段时间内的行为总数量表示,所有类型的行为次数序列记为X,某类型的行为j的次数序列记为Cj
趋势序列:由相邻两端时间内的行为总数变化量表示,所有类型的行为趋势序列记为X’,行为j的趋势序列记为Cj’;
比例序列:由一段时间内某一行为的次数占这段时间内行为总数的占比表示,行为j的比例序列记为Pj
优选地,所述行为数据离散化步骤包括:
步骤A1:将每一个不同值的数据放入一个类别;
步骤A2:找到一组差异最小的相邻类别,将这两个类别合并;
步骤A3:返回步骤2继续执行,当数据分成预设类别数量时终止。
优选地,所述行为频繁序列挖掘步骤包括:
步骤B1:寻找置信度为s下的m项频繁项或长度为m的频繁序列;
步骤B2:若频繁集为空集,则缩短项数或序列长度到m-1,引入在置信度上的惩罚项,返回在置信度为2s下的m-1项频繁项或长度为m-1的频繁序列;
步骤B3:返回步骤B2继续执行,若得到置信度为(1+i)s的m-i项频繁项或长度为m-i的频繁序列时终止;
步骤B4:若到i=m时,都没有得到频繁集,则在置信度为s下,m项频繁项或长度为m的频繁序列为空集。
优选地,对于相同长度的序列或项,采用闵氏距离计算方法,对于不同长度的序列,进行基于最长公共子序列的序列长度调整,再采用闵氏距离计算。
优选地,所述行为异常性判断步骤包括:
对于想要检测的开发者的行为,对当前行为子序列,与历史序列中的频繁序列、与其他开发者的频繁行为序列进行距离计算,若高于预设异常阈值,则判定为疑似异常。
优选地,所述开发者行为包括代码提交,代码审查和发表评论。
根据本发明提供的开源社区中开发者行为的异常检测系统,包括:
构建序列模块:根据开发者行为构建不同的行为次数时间序列;
行为数据离散化模块:对行为次数时间序列进行划分成区间内差异低于预设范围,区间之间差异高于预设范围的不同类别,并达到预设类别数量;
行为频繁序列挖掘模块:在其他人员的行为序列和待检测者的历史行为序列上均进行行为频繁序列挖掘;
行为异常性判断模块:判断开发者的行为是否存在异常。
与现有技术相比,本发明具有如下的有益效果:
1、本发明提高了开源项目的确定性,减少了项目进度风险;
2、本发明可以追溯历史数据,对过去异常数据进行标识。
附图说明
通过阅读参照以下附图对非限制性实施例所作的详细描述,本发明的其它特征、目的和优点将会变得更明显:
图1所示的是本发明的结构示意图;
图2所示的是本发明的序列长度调整的示意图。
具体实施方式
下面结合具体实施例对本发明进行详细说明。以下实施例将有助于本领域的技术人员进一步理解本发明,但不以任何形式限制本发明。应当指出的是,对本领域的普通技术人员来说,在不脱离本发明构思的前提下,还可以做出若干变化和改进。这些都属于本发明的保护范围。
请参考图1,本发明通过以下技术方案实现:
一种开源社区中开发者行为的异常预测方法,主要包括:其他开发者和待检测开发者多维度行为序列的形成,行为序列数据离散化,频繁项集、频繁序列集的挖掘过程、检测序列与频繁集的距离计算,基于异常距离阈值的行为序列异常判断。
其中包括:
(1)其他开发者和待检测开发者多维度行为序列的形成
行为序列主要有次数序列、趋势序列及比例序列三种:
次数序列,由一段时间内的行为总数量表示,所有类型的行为次数序列记为X,行为j的次数序列记为Cj
X={x1,x2,…,xm}
趋势序列,由相邻两端时间内的行为总数变化量表示,所有类型的行为趋势序列记为X’,行为j的趋势序列记为Cj’;
X′={x′1,x′2,…,x′m-1}
其中x’i=xi+1-xi,c’j i=cj i+1-cj i
比例序列,由一段时间内某一行为的次数占这段时间内行为总数的占比表示,行为j的比例序列记为Pj
(2)行为数据离散化
行为数据离散化中,将数据分成区间内差异小,区间之间差异大的不同类别,需要一个最大的类别数量B,行为数据的离散化具体步骤为:
S1、将每一个不同值的数据放入一个类别;
S2、找到一组差异最小的相邻类别,将这两个类别合并;
S3、重复S2,直到将数据分为B个类别。
具体实施时建议B=3,当分箱结果小于3个时,可以添加(0,0),(∞,∞)的类别。
(3)行为序列数上的频繁集挖掘
在其他人员的行为序列和待检测者行为的历史序列上均进行行为频繁序列挖掘。
在频繁序列挖掘时,需要一个能支持的最长序列长度或最大项数m,和一个置信度s。
在挖掘频繁项、频繁序列时,需要保证得到的频繁集中都是长度最长的项或序列,在计算与频繁集距离时不会受到频繁子项、频繁子序列的影响。频繁集挖掘过程为:
S4、首先,我们寻找在支持度为s下的m项频繁项或长度为m的频繁序列;
S5、如果这样的频繁集为空集,那么缩短项数或序列长度到m-1,引入在支持度上的惩罚项,返回在支持度为2s下的m-1项频繁项或长度为m-1的频繁序列;
S6、重复S5,直到得到支持度为(1+i)s的m-i项频繁项或长度为m-i的频繁序列;
S7、如若直到i=m时,都没有得到频繁集,那么在支持度为s下,m项频繁项或长度为m的频繁序列为空集。
具体实施时m=4,s=0.1。
如图2所示,是基于最长公共子序列的序列长度调整方法。假设长度分别为m,n的离散化后的序列为X={x1,x2,…,xm}及Y={y1,y2,…,yn},C={c1,c2,…,ck}为长度为k的最长公共子序列,且C在X、Y中的位置如下:
X={x1,…,xm-k-1,c1,xm-k,c2,…,ck}
Y={y1,…,yn′,c1,yn′+1,c2,…,ck,yn′+2,…,yn-k}
假设m-k+1>n’。考虑X、Y在被C分割开的对应片段:
A、如果X、Y中对应位置一条序列中有元素,另一条没有,如在上例中{xn’+2,…,xn-k}的部分,则序列X对应位置填充n-k-n’-1个0;
B、如果X、Y中对应位置均有元素且长度相等,如在上例中xm_k、yn’+1的部分,则不进行填充;
C、如果X、Y中对应位置均有元素且长度不等,如在上例中x1,…,xm-k-1、y1,…,yn’的部分,则在较长序列中最大的m-k+1-n’个元素的对应位置填充0。
对于相同长度的序列或项,采用闵氏距离计算方法,对于不同长度的序列,进行基于最长公共子序列的序列长度调整方法。
(4)基于异常阈值的行为序列异常判断
判断如下三类行为异常:
行为的点异常,定义为在当前行为序列值中的不同类别行为与以往相差非常大的数据点,这需要对xixi’,形成的项与先前每一个序列值挖掘出的频繁项进行距离计算。
行为的片段异常,定义为开发者当前行为的次数序列、趋势序列、比例序列与对应序列上的频繁序列相差非常大的片段。这需要对xixi’,中每一项分别进行频繁序列挖掘,计算当前序列与频繁序列的距离。
行为的序列异常,指在同一个项目中,与其他开发者行为非常不同的开发者。这需要对该项目中每个开发者的xixi’,中每一项分别进行频繁序列挖掘,计算该开发者的当前序列与项目中所有人的频繁序列的距离。
当计算得到当前行为序列与频繁集之间的距离高于异常阈值,则为疑似异常的。
本领域技术人员知道,除了以纯计算机可读程序代码方式实现本发明提供的系统、装置及其各个模块以外,完全可以通过将方法步骤进行逻辑编程来使得本发明提供的系统、装置及其各个模块以逻辑门、开关、专用集成电路、可编程逻辑控制器以及嵌入式微控制器等的形式来实现相同程序。所以,本发明提供的系统、装置及其各个模块可以被认为是一种硬件部件,而对其内包括的用于实现各种程序的模块也可以视为硬件部件内的结构;也可以将用于实现各种功能的模块视为既可以是实现方法的软件程序又可以是硬件部件内的结构。
以上对本发明的具体实施例进行了描述。需要理解的是,本发明并不局限于上述特定实施方式,本领域技术人员可以在权利要求的范围内做出各种变化或修改,这并不影响本发明的实质内容。在不冲突的情况下,本申请的实施例和实施例中的特征可以任意相互组合。

Claims (8)

1.一种开源社区中开发者行为的异常检测方法,其特征在于,包括:
构建序列步骤:根据开发者行为构建不同的行为次数时间序列;
行为数据离散化步骤:对行为次数时间序列进行划分成区间内差异低于预设范围,区间之间差异高于预设范围的不同类别,并达到预设类别数量;
行为频繁序列挖掘步骤:在其他人员的行为序列和待检测者的历史行为序列上均进行行为频繁序列挖掘;
行为异常性判断步骤:判断开发者的行为是否存在异常;
所述行为频繁序列挖掘步骤包括:
步骤B1:寻找置信度为s下的m项频繁项或长度为m的频繁序列;
步骤B2:若频繁集为空集,则缩短项数或序列长度到m-1,引入在置信度上的惩罚项,返回在置信度为2s下的m-1项频繁项或长度为m-1的频繁序列;
步骤B3:返回步骤B2继续执行,若得到置信度为(1+i)s的m-i项频繁项或长度为m-i的频繁序列时终止;
步骤B4:若到i=m时,都没有得到频繁集,则在置信度为s下,m项频繁项或长度为m的频繁序列为空集。
2.根据权利要求1所述的开源社区中开发者行为的异常检测方法,其特征在于,所述行为次数时间序列包括:
次数序列:由一段时间内的行为总数量表示,所有类型的行为次数序列记为X,某类型的行为j的次数序列记为Cj
趋势序列:由相邻两端时间内的行为总数变化量表示,所有类型的行为趋势序列记为X’,行为j的趋势序列记为Cj’;
比例序列:由一段时间内某一行为的次数占这段时间内行为总数的占比表示,行为j的比例序列记为Pj
3.根据权利要求1所述的开源社区中开发者行为的异常检测方法,其特征在于,所述行为数据离散化步骤包括:
步骤A1:将每一个不同值的数据放入一个类别;
步骤A2:找到一组差异最小的相邻类别,将这两个类别合并;
步骤A3:返回步骤2继续执行,当数据分成预设类别数量时终止。
4.根据权利要求1所述的开源社区中开发者行为的异常检测方法,其特征在于,对于相同长度的序列或项,采用闵氏距离计算方法,对于不同长度的序列,进行基于最长公共子序列的序列长度调整,再采用闵氏距离计算。
5.根据权利要求1所述的开源社区中开发者行为的异常检测方法,其特征在于,所述行为异常性判断步骤包括:
对于想要检测的开发者的行为,对当前行为子序列,与历史序列中的频繁序列、与其他开发者的频繁行为序列进行距离计算,若高于预设异常阈值,则判定为疑似异常。
6.根据权利要求1所述的开源社区中开发者行为的异常检测方法,其特征在于,所述开发者行为包括代码提交,代码审查和发表评论。
7.一种开源社区中开发者行为的异常检测系统,其特征在于,包括:
构建序列模块:根据开发者行为构建不同的行为次数时间序列;
行为数据离散化模块:对行为次数时间序列进行划分成区间内差异低于预设范围,区间之间差异高于预设范围的不同类别,并达到预设类别数量;
行为频繁序列挖掘模块:在其他人员的行为序列和待检测者的历史行为序列上均进行行为频繁序列挖掘;
行为异常性判断模块:判断开发者的行为是否存在异常;
行为频繁序列挖掘包括:
步骤B1:寻找置信度为s下的m项频繁项或长度为m的频繁序列;
步骤B2:若频繁集为空集,则缩短项数或序列长度到m-1,引入在置信度上的惩罚项,返回在置信度为2s下的m-1项频繁项或长度为m-1的频繁序列;
步骤B3:返回步骤B2继续执行,若得到置信度为(1+i)s的m-i项频繁项或长度为m-i的频繁序列时终止;
步骤B4:若到i=m时,都没有得到频繁集,则在置信度为s下,m项频繁项或长度为m的频繁序列为空集。
8.一种存储有计算机程序的计算机可读存储介质,其特征在于,所述计算机程序被处理器执行时实现权利要求1至6中任一项所述的方法的步骤。
CN202010124140.5A 2020-02-27 2020-02-27 开源社区中开发者行为的异常检测方法、系统及介质 Active CN111459797B (zh)

Priority Applications (1)

Application Number Priority Date Filing Date Title
CN202010124140.5A CN111459797B (zh) 2020-02-27 2020-02-27 开源社区中开发者行为的异常检测方法、系统及介质

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
CN202010124140.5A CN111459797B (zh) 2020-02-27 2020-02-27 开源社区中开发者行为的异常检测方法、系统及介质

Publications (2)

Publication Number Publication Date
CN111459797A CN111459797A (zh) 2020-07-28
CN111459797B true CN111459797B (zh) 2023-04-28

Family

ID=71684185

Family Applications (1)

Application Number Title Priority Date Filing Date
CN202010124140.5A Active CN111459797B (zh) 2020-02-27 2020-02-27 开源社区中开发者行为的异常检测方法、系统及介质

Country Status (1)

Country Link
CN (1) CN111459797B (zh)

Families Citing this family (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN112150311B (zh) * 2020-09-09 2023-09-26 日立楼宇技术(广州)有限公司 能耗异常状态检测方法、装置、计算机设备和存储介质
CN113868010B (zh) * 2021-12-01 2022-02-18 杭银消费金融股份有限公司 应用于业务系统的异常数据处理方法及系统

Citations (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
EP3163546A1 (en) * 2015-10-29 2017-05-03 Thomson Licensing Method and device for detecting anomalous behavior of a user
CN108874952A (zh) * 2018-05-31 2018-11-23 福建师范大学 一种基于分布式日志的最大频繁序列模式挖掘方法

Family Cites Families (6)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN102449660B (zh) * 2009-04-01 2015-05-06 I-切塔纳私人有限公司 用于数据检测的系统和方法
CN105528659A (zh) * 2016-01-27 2016-04-27 浙江大学 一种基于序列模式结合时间上下文的移动终端app使用预测方法
US10509825B2 (en) * 2017-07-21 2019-12-17 Fuji Xerox Co., Ltd. Systems and methods for topic guidance in video content using sequence mining
CN108055281B (zh) * 2017-12-27 2021-05-18 百度在线网络技术(北京)有限公司 账户异常检测方法、装置、服务器及存储介质
CN109685376A (zh) * 2018-12-26 2019-04-26 国家电网公司华中分部 一种基于相似度分析理论的电力客户异常行为预警方法
CN110222243B (zh) * 2019-05-27 2021-08-31 北京小米移动软件有限公司 确定异常行为的方法、装置和存储介质

Patent Citations (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
EP3163546A1 (en) * 2015-10-29 2017-05-03 Thomson Licensing Method and device for detecting anomalous behavior of a user
CN108874952A (zh) * 2018-05-31 2018-11-23 福建师范大学 一种基于分布式日志的最大频繁序列模式挖掘方法

Non-Patent Citations (6)

* Cited by examiner, † Cited by third party
Title
刘辉 ; 王俊峰 ; 佘春东 ; .基于频繁子图挖掘的异常入侵检测新方法.计算机应用研究.2011,(03),全文. *
李海林 ; 邬先利 ; .基于频繁模式发现的时间序列异常检测方法.计算机应用.2018,(11),全文. *
李锦玲 ; 汪斌强 ; .基于最大频繁序列模式挖掘的App-DDoS攻击的异常检测.电子与信息学报.2013,(07),全文. *
韩明涛.时间序列模式挖掘的算法研究.山东大学学报(工学版).2004,(03),全文. *
马青霞 ; 李广水 ; 孙梅 ; .频繁模式挖掘进展及典型应用.计算机工程与应用.2011,(15),全文. *
魏 懿.基于机器学习的流程异常预测方法.计算机集成制造系统.2019,第25卷(第4期),864-872页. *

Also Published As

Publication number Publication date
CN111459797A (zh) 2020-07-28

Similar Documents

Publication Publication Date Title
CN111259393B (zh) 一种基于生成对抗网络的恶意软件检测器抗概念漂移方法
US10789155B2 (en) Coverage test support device and coverage test support method
CN111625516B (zh) 检测数据状态的方法、装置、计算机设备和存储介质
CN111459797B (zh) 开源社区中开发者行为的异常检测方法、系统及介质
CN111310860B (zh) 改进梯度提升决策树性能的方法及计算机可读存储介质
CN111694917B (zh) 一种车辆异常轨迹检测、模型训练方法及装置
CN105934765A (zh) 从异常数据构造反常模型的方法
Marijan et al. Software testing for machine learning
CN115098292B (zh) 应用程序崩溃根原因识别方法、装置及电子设备
CN110018954A (zh) 代码质量检测、代码检测质量的评估方法、装置及设备
Kamran et al. Decision support system for the prediction of mine fire levels in underground coal mining using machine learning approaches
KR20220069943A (ko) 단일 세포 rna-seq 데이터 처리
Yu et al. A flexible Bayesian model for studying gene–environment interaction
Aghdam et al. IPCA-CMI: an algorithm for inferring gene regulatory networks based on a combination of PCA-CMI and MIT score
US11243835B1 (en) Message-based problem diagnosis and root cause analysis
Rizzo et al. Generalized likelihood ratio control charts for high‐purity (high‐quality) processes
US11347718B2 (en) Manifold-anomaly detection with axis parallel explanations
Badsha et al. Mrpc: An R package for inference of causal graphs
CN116910526A (zh) 模型训练方法、装置、通信设备及可读存储介质
CN115579060A (zh) 基因位点检测方法、装置、设备及介质
CN114297053A (zh) 一种基于多层感知机平滑的软件程序安全检测方法
CN110427320B (zh) 一种轻量级嵌入式程序控制流异常定位检测方法
Bolchini et al. Machine learning-based techniques for incremental functional diagnosis: A comparative analysis
Chouchane et al. Diagnosis on a sliding window for partially observable Petri nets
US7650579B2 (en) Model correspondence method and device

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
GR01 Patent grant
GR01 Patent grant