吴军,李红梅
(遵义师范学院 信息工程学院,贵州遵义,563000)
随着数据库系统的逐渐壮大,传统数据库提供的搜索查询等功能已无法再满足人们的需求,其中最主要的问题是这些数据中隐藏着许多无法通过肉眼观察发现的重要信息,为了解决这一问题,诞生了数据挖掘技术[1]。数据挖掘技术在计算机科学领域内具有举足轻重的地位,且得到了广泛的应用[2-4],其中,关联规则挖掘是一种常用的数据分析技术[5]。
社会对于青少年的评价方式和标准与学生的自我认知或多或少会存在一定程度的分歧,为了调查学生群体对自我的认知以及他们心中合理的评价标准,本文将类关联规则挖掘技术应用到了其中。具体研究方法为:第一步,针对研究问题设计了问卷,并将制作好的调查问卷通过线上填写的方式进行发放。第二步,对问卷数据进行了清洗和整理,并利用Apriori算法[6]对通过调查问卷得到的初始集合进行频繁项集挖掘。第三步,为了验证挖掘到的频繁项集的稳定性和可靠性,利用了统计显著性检验中一种比较常见的方法—置换检验方法[7]对挖掘结果进行验证,并将通过验证的项集转化成相应的类关联规则形式。最后,根据生成的类关联规则结合大学生的具体情况进行分析。这些通过分析得到的结论能够促进大学生心理健康的发展。
针对该研究问题,由于没有现成的数据,故使用了问卷调查的方式来生成研究问题所需的研究数据。设计的问卷中一共包含22个问题,且所有问题均为客观题。举三个例子:
(1)三观是否是决定一个人优秀的重要原因?
A.是,优秀的人三观都很正;
B.不是,优秀的人三观也不一定正;
C.因人而异,三观不一定决定一个人是否优秀。
(2)对于你来说,学习更重要的是乐趣还是任务?
A.乐趣;
B.任务;
C.以前是乐趣,现在是为了完成任务;
D.以前为了完成任务,现在是种一乐趣。
(3)你认为自己是一个孤独的人?
A.是,性格比较内向,生活中也没什么朋友;
B.不是,性格比较外向,生活中有许多朋友;
C.是,虽然性格外向朋友也很多,但感觉他们不能走进自己内心;
D.不是,虽然性格内向朋友很少,但有几个理解自己的好朋友。
问卷采用线上提交的方式发放,同时,为了提高数据的真实性及可靠性,发放时没有地区局限性。经过一个月的宣传,共收到984份有效的调查问卷。从线上平台提取到这些问卷后,对其中的数据进行了清洗,并整理成<编号,属性1,属性2, … , 属性22 >形式以匹配后续的频繁项集挖掘算法。
在海量的数据集中有大量的长度为1的项集,这些1项集在自由组合后会产生数量更多长度更长的项集。为了从海量的数据集中快速的挖掘出频繁项集,Agrawal等人发现了频繁项集的所有非空子集也一定是频繁的这一性质[6],并根据该性质提出了经典的Apriori算法来挖掘频繁项集。该算法主要由以下两个部分组成:
(1)连接方法
为了找到长度为l的频繁项集的集合Rl,Apriori算法将长度为l-1的频繁项集与自身连接得到了Rl的超集。具体的连接方法是假定r1和r2是Rl-1中的两个频繁项集,ri[j]表示项集ri的第j个项,且项是具备一定的顺序的。如果r1和r2中有且仅有前k-2个项是相同的,那么r1和r2是可连接的,连接后的项集为{r1[1],r1[2],…,r1[l-1],r2[l-1]}。为了不在结果中出现重复的项集,连接还假定r1[l-1]必须小于r2[l-1]。
(2)剪枝方法
上述步骤完成后便能够得到Rl的超集,即Rl中一定包含了所有长度为l的频繁项集,但其中也可能存在一些不频繁的长度为l的项集。在剪枝步骤中,逐个计算Rl中每个项集的支持度值,如果某个项集的支持度值大于用户自定义的一个阈值m_support,那么该项集就被认定为频繁项集。该定义利用了频繁项集的反单调性,即一个项集的任意非空子项集也必须是频繁项集。
详细的Aprori算法步骤如下:
(1)找到所有长度为1的项集,并对使用他们使用连接方法生成2长度项集的超集C2;
(2)计算C2中每个2长度项集的支持度,将支持度值小于m_support阈值的项集删掉,就得到了长度为2的频繁项集集合R2;
(3)对R2中的频繁项集使用连接方法生成3长度项集的超集C3;
(4)计算C3中每个3长度项集的支持度,将支持度值小于m_support阈值的项集删掉,就得到了长度为3的频繁项集集合R3;
(5)重复上述步骤得到长度更长的频繁项集集合Rl,直到通过连接方法生成的Cl+1集合为空集。
Apriori算法的步骤比较简单,但其计算开销较高,原因是每次计算Cl中频繁项集的支持度就需要扫描一次数据集合。从降低计算开销的角度出发,研究人员提出了一些计算开销更少的频繁项集挖掘算法,例如FP-Growth算法[7],Eclat算法[8]等。
置换检验20世纪30年代由Fisher提出,它是一种常用的显著性检验方法[9]。其根本思想是通过置换构建零分布并从中计算出能够度量统计显著性的p-value值。根据p-value值大小能够决定是否拒绝零假设,从而保留了一些稳定可靠的结果并剔除了一部分偶然性结果。
使用最为广泛的置换检验方法是标准置换检验[10]。一般而言,其包括以下3个步骤:
(1)选择一个与零假设匹配的量化值,该量化值能够体现零假设与备择假设的差异,并从初始集合中计算出挖掘结果的量化值。
(2)在零假设的基础上任意置换初始集合的类型属性值,置换后会生成一个随机集合。对该随机集合进行频繁项集挖掘并计算出这些项集的量化值。重复实施该过程多次后,用得到的所有量化值构建零分布。
(3)将初始集合中的频繁项集的量化值放置到上述零分布中,便可以计算出每个频繁项集的p-value值。
在现实应用中,通过执行所有的置换得到零分布是不现实的。举个例子,假设初始集合含有500条数据,那么它可能产生的随机集合数量为500的阶乘,这是一个非常巨大数字。因此,构建零分布时,通常指定一个合理的置换次数,常用的设置为500,1000或2000。
得到非随机产生的频繁项集后,本文通过如下步骤产生类关联规则:
(1)将带有类型属性的频繁项集进行分离,以生成候选类关联规则。
(2)计算这些类关联规则的置信度,若其满足用户自定义的最小置信度阈值m_confidence,则其被认定类关联规则。
详细的面向学生认知数据的类关联规则挖掘方法如图1所示。
图1 类关联规则生成流程
具体的解释如下:
(1)将问卷数据整理成<编号,属性1,属性2, … , 属性22 >的形式。
(2)使用Apriori算法挖掘初始集合中的初始频繁项集,其中m_support设置为200。
(3)对初始集合进行2000次置换得到随机集合,挖掘这些随机集合中的频繁项集并计算他们的量化值。
(4)使用第三步中的所有量化值构建零分布,并从该零分布中计算出频繁项集的p-value值,如果p-value值小于0.05就认为该频繁项集不是随机产生的,并将它保留下来。
(5)将每个保留下来的频繁项集转化为候选类关联规则的形式,并计算其相应的置信度值,如果大于0.7就认为该类关联规则是可信的,即m_confidence为0.7。
通过挖掘得到的类关联规则可以看出:男生比女生更容易感到孤独;女生比男生认为家长对学生的影响更为重要;女生和男生一样喜欢玩电脑游戏;成绩好坏对学生恋爱没有影响;男生和女生都认为在恋爱中应当共同付出共同进步;成绩好坏不影响学生对未来的规划,大部分学生明确规划过自己的未来,并且朝着自己的规划努力;高年级学生比低年级学生更喜欢运动。此外,结合社会群体对大学生的认知,可以发现的区别是:大部分社会人士认为成绩好的学生就是优秀的,但大部分大学生不赞成将学习作为人格优秀的评判标准;大部分社会人士认为大学生活丰富多彩,大学生能从中交到许多志同道合的朋友,但实际上大部分大学生都认为自己是孤独的,虽然有许多朋友但很少有人能真正的了解自己。
由上述结果可以得出的结论是大众给大学生群体的评价和大学生群体的自我认知是存在误差的。成绩、三观、专注程度等都不能单独作为评判一个人的标准,看似活泼的大学生群体实际其中大部分人都感到内心孤独,这些结果在传统的认知中是不被大家所了解的,人们应该改变对大学生的刻板印象,从细节和生活去关爱和了解每一个学生,以促进大学生心理健康的发展。
本文针对学生认知数据使用了数据挖掘领域中的类关联挖掘技术挖掘其中的规则,为了增强结果的可信度,还引入了标准置换检验来对报告的规则进行统计显著性检验。最后,将保留的统计显著的类关联规则与领域知识相结合进行了讨论。在未来的工作中,不仅会专注于新的模式发现算法的设计,还会探索更多的统计显著性检验方法。除此之外,后续研究也会继续探索更多模式发现技术的应用。