发明内容
本发明的技术任务是提供一种基于加权正负序列模式的数据分析方法及系统,来解决如何提供一种挖掘过程简单、耗时短,且能够实现项集根据其重要程度分配权值的数据分析方法的问题。
本发明的技术任务是按以下方式实现的:
基于加权正负序列模式的数据分析方法,包括如下步骤:
S100、以加权支持度大于设定的最小支持度为条件,基于GSP算法中的连接操作和剪枝操作挖掘加权频繁正序列模式;
S200、基于加权频繁正序列模式中的1-length正序列模式,生成相应的负序列种子集,并通过连接生成候选负序列模式;
S300、以加权支持度大于设定的最小支持度为剪枝条件,挖掘加权频繁负序列模式。
进一步的,执行步骤S100之前,对数据序列进行预处理生成序列模式,预处理包括数据集成和数据清洗。
进一步的,步骤S100包括如下分步骤:
S110、预设各数据项的权值以及各数据项的支持度,并基于权值和支持度计算各项目的加权支持度;
S120、选取加权支持度大于设定的最小支持度的数据项,作为1-length 正序列模式;
S130、以1-length正序列模式作为正序列候选项集C1,通过GSP算法中的连接操作和剪枝操作依次生成长度不断加1的其它正序列候选项集Cn;
S140、从上述正序列候选项集中,选取加权支持度大于设定的最小支持度的序列作为加权频繁正序列模式。
进一步的,步骤S200中通过连接生成候选负序列模式,包括如下步骤:基于GSP算法的挖掘方式,通过向(k-1)-length频繁负序列模式中增加一个 1-length频繁正序列模式或1-length频繁负序列模式生成k-length候选负序列模式。
进一步的,步骤S300包括如下分步骤:
S310、计算各候选负序列模式的支持度,并根据支持度计算各候选项负序列模式的加权支持度;
S320、选取加权支持度大于设定的最小支持度的候选负序列模式,作为频繁负序列模式。
进一步的,步骤S300还包括如下步骤:
S330、根据预设的负序列约束条件,对步骤S320中得到的频繁负序列模式进行筛选,得到加权频繁负序列模式;
负序列预设条件包括:
约束1:单个元素中的所有项集必须是全正或全负;
约束2:不能出现两个或两个以上连续的负元素。
进一步的,步骤S310包括如下步骤:
设项目集A和项目集B均为频繁项目集,有效的负序列模式为满足如下条件的序列模式:
条件1、A∩B=φ;
条件2、Sup(A)≥min sup and Sup(B)≥min sup;
基于上述三个条件,负序列模式支持度的公式为:
Sup(A)=1-Sup(A)
负序列模式的加权支持度计算公式为:
W sup(Y)=Sup(Y)*WT(Y) 。
基于加权正负序列模式的数据分析系统,
能够实现如上述任一项所述的基于加权正负序列模式的数据分析方法,包括:
正序列挖掘模块,用于以加权支持度大于设定的最小支持度为条件、基于 GSP算法中的连接操作和剪枝操作挖掘加权频繁正序列模式;
候选负序列挖掘模块,用于基于加权频繁正序列模式中的1-length正序列模式,生成相应的负序列种子集,并通过连接生成候选负序列模式;
负序列挖掘模块,用于以加权支持度大于设定的最小支持度为剪枝条件、挖掘得到加权频繁负序列模式。
进一步的,正序列挖掘模块为具有如下功能的模块:
(1)、预设各数据项的权值以及各数据项的支持度,并基于权值和支持度计算各项目的加权支持度;
(2)、选取加权支持度大于设定的最小支持度的数据项,作为1-length 正序列模式;
(3)、以1-length正序列模式作为正序列候选项集C1,通过GSP算法中的连接操作和剪枝操作依次生成长度不断加1的其它正序列候选项集;
(4)、从上述正序列候选项集中,选取加权支持度大于设定的最小支持度的序列作为加权频繁正序列模式。
进一步的,负序列挖掘模块为具有如下功能的模块:
(1)、计算各候选负序列模式的支持度,并根据支持度计算各候选项负序列模式的加权支持度;
(2)、选取加权支持度大于设定的最小支持度的候选负序列模式,作为频繁负序列模式;
(3)、根据预设的负序列约束条件,对步骤S320中得到的频繁负序列模式进行筛选,得到加权频繁负序列模式。
本发明的一种基于加权正负序列模式的数据分析方法及系统具有以下优点:
1、该方法应用于大量已经被处理为序列的数据分析过程中,可根据数据一段时间的距离,更准确的决策数据下一步的情况;
2、该方法利用权重使得用户可针对实际数据库中不同程度的项目设置不同的权值,权重的设置可使得算法挖掘出在数据库中出现的频率低但是重要程度高的序列。
具体实施方式
参照说明书附图和具体实施例对本发明的基于加权正负序列模式的数据分析方法及系统作以下详细地说明。
实施例1:
本发明的基于加权正负序列模式的数据分析方法,用于对数据进行挖掘,包括如下设定:
1、定义负序列的最小支持度
MIS(i)表示项i的最小项支持度,其中i是正项或负项;
正元素,即已发生事件,其最小支持度是元素中项i的最小支持度值;
负元素,即未发生事件,采用相关的正元素的信息计算其最小支持度: MIS(-i)=1-MIS(i);对于负序列
其中a,b代表项集元素,该负序列的最小支持度是:
负序列Y中,其项集元素为e1,e2,......er,负序列Y的最小支持度为序列中元素的最小支持度值,其中,Y的最小支持度为:
min sup(Y)=min[MIS(e1),MIS(e2),......,MIS(er)];
对于一个序列Y和它的最小支持度minsup(Y)及加权支持度Wsup,如果Y 只包含正元素,Wsup(Y)≥minsup(Y),那么Y被称为正序列模式;如果Y包含负元素,Wsup(Y)≥minsup(Y),那么Y被称为负序列模式。
2、定义多最小支持度
最小支持度如下:
其中,LS为设定的最小支持度,β是一个在0到1之间的参数,f(i)是第i 个项目的实际支持度,MIS(i)为第i个项目最终的项最小支持度。
该方法包括如下步骤:
S100、对数据序列进行预处理生成序列模式,预处理包括数据集成和数据清洗;
S200、以加权支持度大于设定的最小支持度为条件,基于GSP算法中的连接操作和剪枝操作挖掘加权频繁正序列模式;
S300、基于加权频繁正序列模式中的1-length正序列模式,生成相应的负序列种子集,并通过连接生成候选负序列模式;
S400、以加权支持度大于设定的最小支持度为剪枝条件,挖掘加权频繁负序列模式。
本实施例中以学生成绩数据为例,包括学生在校期间八个学期的各科成绩信息(包括学号、各科学分信息与课程属性等)以及学生在各个学期不同的获奖情况信息。
通过步骤S100中对数据进行预处理,首先要遍历每个学生对应的数据,将数据源中所有成绩数据缺少某些科目成绩或是学期数不等于8的学生所有记录删除,这些残缺数据不在参考范围内;然后把经过简单清洗后的数据按照每人每学期不同的科目进行统计,包括不及格的门数以及设置不同课程性质科目的课程权重系数,得出每科的课程学分绩点,其中课程权重系数必修课设置为 1.2,选修课、通选课以及开放实验等课程设置为1.1,并根据求平均学分绩点公式GPA=∑课程学分绩点÷∑课程学分求得序列中第一项集,不及格科目数作为第二项集;最后用类似于求GPA的方法根据每学期不同类型获奖情况得到一定数值作为序列的第三项集,如国家励志奖学金及省励志奖学金等设置权重系数为4.0,校内奖学金根据级别的不同设置分别设置权重系数为3.7、3.3、3.0 等。通过上述操作,每名学生成绩信息会产生八个序列模式。如:某同学对应序列为[4,0,0 4,0,3 4,0,7 4,0,165,0,7 5,0,7 4,0,0 4,0,4]说明其第一学年的第二学期GPA为4,不及格数目为0,获奖情况处理后的数值为3,其他序列也是通过相同的方式得到的。
序列模式如表1展现的部分序列模式所示,每个数据项的权值如表2所示。
表1:
表2:
通过步骤S200对上述序列模式进行挖掘,得到加权频繁正序列模式,具体为:扫描数据库,得到各数据项的权值以及各数据项的支持度,并基于权值和支持度计算各数据项的加权支持度;选取加权支持度大于设定的最小支持度的数据项,作为1-length正序列模式;以1-length正序列模式作为正序列候选项C1,通过GSP算法中的连接操作和剪枝操作依次生成长度不断加1的其它正序列候选项集;从上述正序列候选项集中,选取加权支持度大于设定的最小支持度的序列作为加权频繁正序列模式。
步骤S200中,频繁序列Y的加权支持度记为Wsup(Y),其计算公式为:
其中,T表示序列数据库,T={S1,S2,S3,......,Si},Si表示数据库中的序列, Si={i1,i2,i3,......,in},in表示项目集,项目集由项目组成,每个项目ij赋予权值Wj来表示该项目的重要程度,其中0≤Wj≤1,j={1,2,3,......,n};序列Si的权重为WT(Si),其计算公式为:
基于此,对本实施例中序列模式进行挖掘,包括如下步骤:
Step1:设定最小支持度LS=0.2,参数β=0.5,求出各项的多最小支持度: MIS(0)=0.5,MIS(1)=0.4,MIS(2)=0.39,MIS(3)=0.5,MIS(4)=0.36, MIS(5)=0.2…;
Step2:根据表2中项目的权值以及公式(1),计算各序列的权重,例如,序列为:<2,2,0 2,1,0 3,0,0 3,0,0 4,0,0 3,0,0 4,0,0 0,1,0>,该序列的权值计算公式为:
(0.68*2+0.96)/3+(0.68+0.27+0.96)/3+(0.21+0.96*2)/3+ (0.21+0.96*2)/3+(0.56+0.96*2)/3+(0.21+0.96*2)/3+(0.56+ 0.96*2)/3+(0.96+0.27+0.96)/3=0.74;
Step3:根据各序列的权值及公式(2)求得所有1-length的序列的加权支持度,如表3:
表3:
C<sub>1</sub> |
0 |
1 |
2 |
3 |
4 |
5 |
…… |
Wsup |
1.0 |
0.79 |
0.79 |
0.99 |
0.72 |
0.12 |
…… |
将表3中所有序列的加权支持度与设定的最小支持度作对比,得出正序列模式L(1)及候选项集C1,正序列模式L(1)及候选项集C1均为:
[<0>,<1>,<2>,<3>,<4>];
Step4:对候选项集C1按照GSP算法中的连接方式进行连接操作,得到候选项集C2,具体为:
[<0 0>,<(0,1)>,<0 1>,<1 0>,<(0,2)>,<0 2>,<2 0>,<(0,3)>,<0 3>,<3 0>,<(0,4)>,<0 4>,<4 0>,<1 1>,<(1,2)>,<1 2>,<2 1>,<(1,3)>, <1 3>,<3 1>,<(1,4)>,<14>,<4 1>,<2 2>,<(2,3)>,<2 3>,<3 2>,<(2,4)>, <2 4>,<4 2>,<3 3>,<(3,4)>,<3 4>,<4 3>,<4 4>];
Step5:剪枝操作,即将每个候选序列其中一个项目去掉得到对应的连续子序列,判断每个子序列是否存在于已有的频繁正序列模式中;
Step6:计算经过剪枝后的各候选序列的加权支持度,所有大于等于所含项的支持度的最小值的序列,均为正序列模式L(2);
Step7:重复连接和剪枝操作,生成其他长度的正序列模式。
如果项目A和项目B都是频繁项目集,一个有效的负序列模式必须满足如下条件:
条件1、A∩B=φ;
条件2、Sup(A)≥min sup and Sup(B)≥min sup;
基于上述三个条件,得到的负序列模式支持度的公式为:
Sup(A)=1-Sup(A) (3)
负序列模式的加权支持度计算公式为:
W sup(Y)=Sup(Y)*WT(Y) (7)
基于上述负序列模式支持度的公式,通过步骤S300生成候选负序列模式 NSC,具体包括如下步骤:
Step1:在1-length的正序列L[1]的基础上生成负序列种子集:[<0>,
<1>,<-1>,<2>,<-2>,<3>,<-3>,<4>,<-4>],其中种子集的最小支持度为:MIS(-i)=1-MIS(i),如MIS(-1)=1-MIS(1)=0.6;
Step2:连接操作,即采用GSP算法的挖掘方式,通过向(k-1)-length 的频繁负序列模式中增加一个1-length的频繁正序列或负序列来得到 k-length的候选负序列模式NSC。
然后通过步骤S400挖掘加权频繁负序列模式,具体包括如下步骤:
Step1:剪枝操作,即计算所有候选负序列模式NSC的支持度,并根据支持度计算得出每个候选负序列模式的加权支持度,如果候选序列的加权支持度大于其最小支持度,则将作为频繁负序列模式;
Step2:根据负序列成立的两个约束条件去掉不满足以上条件的,最后得到频繁负序列模式为:[<1-4>,<-1 3>,<-1 4>,<2-1>,<2-4>,<-2 4>,<3-1>,<3 -2>,<3-4>,<-3 4>,<4-1>,<4-2>,<-4 3>,<1-2 3>,<1-2 3>,<2-1 3>,<2 -3 4>,<3-4 3>,<4-3 2>]。
其中,负序列约束条件为:
约束1:单个元素中的所有项集必须是全正的,或者是全负的,如
就不符合约束条件1,因为
为同一个元素,内容却一正一负,违反规定;
约束2:不能出现两个或者两个以上连续的负元素,如
不符合条件。
本发明的伪代码为:
输入:D:序列数据库;WT(i):序列中各项目的权重;LS:用户设定的最小支持度;β:计算多支持度的参数;
输出NSP:用于分析数据的负序列模式的集合;
上述伪代码为MWN-GSP算法的伪代码,各个步骤的含义如下:
(1)至(5)计算得出数据库中各项的多最小支持度;
(6)至(9)执行挖掘得到所有的1-length频繁正序列;
(10)通过连接生成候选正序列;
(11)至(14)是对于每一个候选正序列,通过公式(1)-(2)计算得到各项集及各候选序列的加权支持度,并使用加权支持度大于等于用户设定最小支持度的方法来得到频繁正序列模式;
(15)通过1-length频繁正序列生成负序列种子集;
(16)对种子集进行连接操作生成候选负序列NSC;
(17)至(24),通过公式(3)-(6)计算出NSC中各候选负序列NSC的支持度;
(25)至(26)由候选负序列NSC的支持度通过公式(7)得到候选负序列NSC的加权支持度,并将Wsup不小于用户设定最小支持度的候选负序列NSC 加入频繁负序列中;
(27)在上述得到的频繁负序列中利用约束条件进行筛选得到最终结果。
(28)返回结果,利用得到的负序列模式来分析数据。
通过实验分析可以得到:表现优异学生的平均学分绩点GPA都要大于等于 2,并且没有不及格科目,获奖情况处理值至少为3。这样,我们就能从近千名学生成绩数据中挖掘出少数的优异学生表现情况,从而可以为学生的培养提供决策性指导。因为表现优异的学生是少数存在的,所以这些信息在负序列模式下可以较好地进行体现。最后根据挖掘的结果信息,可为学校管理者提供更全面、更准确有价值的潜在的信息,完善原有的学生培养策略。
如附图2所示,当LS越小且数据量越大时,挖掘序列模式所需的时间也越多;如附图3所示,本实施例中采用的算法要比MMSWNeg-GSP及经典Neg-GSP 算法挖出序列模式的条数有一定的增加;如附图4所示,本实施例中采用的算法所用时间比Neg-GSP算法相对增加,但比较MMSWNeg-GSP算法有一定的减少。
实施例2:
本发明的基于加权正负序列模式的数据分析系统,用于实现实施例1公开的基于加权正负序列模式的数据分析方法,包括:
正序列挖掘模块,用于以加权支持度大于设定的最小支持度为条件、基于 GSP算法中的连接操作和剪枝操作挖掘加权频繁正序列模式;
候选负序列挖掘模块,用于基于加权频繁正序列模式中的1-length正序列模式,生成相应的负序列种子集,并通过连接生成候选负序列模式;
负序列挖掘模块,用于以加权支持度大于设定的最小支持度为剪枝条件、挖掘得到加权频繁负序列模式。
其中,正序列挖掘模块为具有如下功能的模块:
(1)、预设各数据项的权值以及各数据项的支持度,并基于权值和支持度计算各项目的加权支持度;
(2)、选取加权支持度大于设定的最小支持度的数据项,作为1-length 正序列模式;
(3)、以1-length正序列模式作为正序列候选项集C1,通过GSP算法中的连接操作和剪枝操作依次生成长度不断加1的其它正序列候选项集;
(4)、从上述正序列候选项集中,选取加权支持度大于设定的最小支持度的序列作为加权频繁正序列模式。
负序列挖掘模块为具有如下功能的模块:
(1)、计算各候选负序列模式的支持度,并根据支持度计算各候选项负序列模式的加权支持度;
(2)、选取加权支持度大于设定的最小支持度的候选负序列模式,作为频繁负序列模式;
(3)、根据预设的负序列约束条件,对步骤(2)中得到的频繁负序列模式进行筛选,得到加权频繁负序列模式。
通过上面具体实施方式,所述技术领域的技术人员可容易的实现本发明。但是应当理解,本发明并不限于上述的具体实施方式。在公开的实施方式的基础上,所述技术领域的技术人员可任意组合不同的技术特征,从而实现不同的技术方案。除说明书所述的技术特征外,均为本专业技术人员的已知技术。