吳軍,李紅梅
(遵義師范學院 信息工程學院,貴州遵義,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。
通過挖掘得到的類關聯規則可以看出:男生比女生更容易感到孤獨;女生比男生認為家長對學生的影響更為重要;女生和男生一樣喜歡玩電腦游戲;成績好壞對學生戀愛沒有影響;男生和女生都認為在戀愛中應當共同付出共同進步;成績好壞不影響學生對未來的規劃,大部分學生明確規劃過自己的未來,并且朝著自己的規劃努力;高年級學生比低年級學生更喜歡運動。此外,結合社會群體對大學生的認知,可以發現的區別是:大部分社會人士認為成績好的學生就是優秀的,但大部分大學生不贊成將學習作為人格優秀的評判標準;大部分社會人士認為大學生活豐富多彩,大學生能從中交到許多志同道合的朋友,但實際上大部分大學生都認為自己是孤獨的,雖然有許多朋友但很少有人能真正的了解自己。
由上述結果可以得出的結論是大眾給大學生群體的評價和大學生群體的自我認知是存在誤差的。成績、三觀、專注程度等都不能單獨作為評判一個人的標準,看似活潑的大學生群體實際其中大部分人都感到內心孤獨,這些結果在傳統的認知中是不被大家所了解的,人們應該改變對大學生的刻板印象,從細節和生活去關愛和了解每一個學生,以促進大學生心理健康的發展。
本文針對學生認知數據使用了數據挖掘領域中的類關聯挖掘技術挖掘其中的規則,為了增強結果的可信度,還引入了標準置換檢驗來對報告的規則進行統計顯著性檢驗。最后,將保留的統計顯著的類關聯規則與領域知識相結合進行了討論。在未來的工作中,不僅會專注于新的模式發現算法的設計,還會探索更多的統計顯著性檢驗方法。除此之外,后續研究也會繼續探索更多模式發現技術的應用。