徐承俊 朱國(guó)賓
(武漢大學(xué)遙感信息工程學(xué)院 湖北 武漢 430079)
信息化的發(fā)展使得計(jì)算機(jī)的作用越發(fā)凸顯,也改變著我們的生活方式。在我國(guó),絕大部分企業(yè)、高校等,尤其是大專類院校,把計(jì)算機(jī)等級(jí)證書作為學(xué)生是否真正掌握計(jì)算機(jī)實(shí)際操作的衡量標(biāo)準(zhǔn),要求學(xué)生畢業(yè)前盡可能獲得全國(guó)計(jì)算機(jī)一、二級(jí)證書。但從考試實(shí)際情況看仍存在優(yōu)秀率低、高級(jí)別通過(guò)率低等問(wèn)題。這些問(wèn)題引起了學(xué)校、學(xué)院的高度重視,同時(shí)也令老師和學(xué)生感到很困惑。老師無(wú)法從考生成績(jī)中找到規(guī)律性的原因,學(xué)生則很難進(jìn)行針對(duì)性復(fù)習(xí)和應(yīng)考。事實(shí)上,從一個(gè)龐大且復(fù)雜的數(shù)據(jù)中挖掘隱藏的數(shù)據(jù)信息,需要采用新的方法和技術(shù),而數(shù)據(jù)挖掘技術(shù)無(wú)疑是目前最為有效的方法。
國(guó)外對(duì)數(shù)據(jù)挖掘的研究起步早,發(fā)展快。近些年主要研究集中在:(1) 天文系統(tǒng),如加州理工學(xué)院計(jì)算機(jī)專家與天文學(xué)家共同開發(fā)的天文SKICAT系統(tǒng)[1];(2) 金融行業(yè),如金融系統(tǒng)中甄別洗錢FAIS系統(tǒng)[2];(3) 零售行業(yè),如超市銷售異常情況分析OPPORTUNITYEXPLORER系統(tǒng)[3]等。但這些研究幾乎不涉及對(duì)影響考試成績(jī)因素的挖掘。
國(guó)內(nèi)高校主要將數(shù)據(jù)挖掘應(yīng)用于高校教學(xué)與管理,如北京市科學(xué)技術(shù)委員會(huì)重點(diǎn)課題《教育考試數(shù)據(jù)挖掘的研究與實(shí)現(xiàn)》[4],挖掘教育考試數(shù)據(jù)內(nèi)在關(guān)聯(lián);將教育數(shù)據(jù)挖掘應(yīng)用于招生、就業(yè)、后勤服務(wù)等各方面[5]。
以上研究主要涉及行業(yè)研究,很少有學(xué)者對(duì)某一具體考試中影響成績(jī)合格、優(yōu)秀等因素展開研究。本文提出基于數(shù)據(jù)挖掘關(guān)聯(lián)規(guī)則Apriori算法和C4.5算法相結(jié)合建立考試成績(jī)分析模型,建立學(xué)生對(duì)課程的熱愛程度、課前預(yù)習(xí)、課后復(fù)習(xí)和各種題型與成績(jī)的關(guān)聯(lián),以2016年考試數(shù)據(jù)為訓(xùn)練集,2017年考試數(shù)據(jù)為測(cè)試集,根據(jù)實(shí)際成績(jī)進(jìn)行對(duì)比論證。挖掘?qū)е聝?yōu)秀率低、高級(jí)別通過(guò)率低的原因,并將得到的信息反饋給教師,以提高教學(xué)效率,查漏補(bǔ)缺,提高考試優(yōu)秀率和高級(jí)別類通過(guò)率。
本文針對(duì)不同專業(yè)的考生成績(jī)和各種題型,如單選題、基本操作題、OFFICE操作題(Word,Excel,PPT)、上網(wǎng)操作題得分為目標(biāo),分析其內(nèi)在的關(guān)聯(lián),挖掘出各類題型得分對(duì)成績(jī)不合格、合格和優(yōu)秀的影響。基于這些關(guān)聯(lián),本文采用關(guān)聯(lián)規(guī)則Apriori算法[6],偽代碼如下:
L1 =fINd_frequent_1-itemsets(D);
//找出頻繁1項(xiàng)集
FOR(k=2;Lk-1 !=null;k++){
//產(chǎn)生候選,并剪枝
Ck =apriori_gen(Lk-1 );
//掃描D進(jìn)行候選計(jì)數(shù)
FOR each 事務(wù)t IN D{
Ct =subset(Ck,t);
//得到t的子集FOR each 候選c屬于Ct
c.count++;}
//返回候選項(xiàng)集中不小于最小支持度的項(xiàng)集
Lk ={c 屬于 Ck | c.count>=mIN_sup}}
RETURN L= 所有的頻繁集;
第一步:連接(joIN)
Procedure apriori_gen(Lk-1 :frequent(k-1)-itemsets)
FOR each 項(xiàng)集 l1 屬于 Lk-1
FOR each 項(xiàng)集 l2 屬于 Lk-1
IF( (l1 [1]=l2 [1])&&( l1 [2]=l2 [2])&& ……&& (l1 [k-2]=l2 [k-2])&&(l1 [k-1] THEN{ c = l1 連接 l2 //連接步:產(chǎn)生候選 //若k-1項(xiàng)集中已經(jīng)存在子集c則進(jìn)行剪枝 IF has_INfrequent_subset(c, Lk-1 ) THEN delete c; //剪枝步:刪除非頻繁候選 else add c to C} RETURN Ck; 第二步:剪枝(prune) Procedure has_INfrequent_sub(c:candidate k-itemset;Lk-1: frequent(k-1)-itemsets) FOR each (k-1)-subset s of c IF s 不屬于 Lk-1 THEN RETURN true; RETURN false; Apriori算法每輪迭代都要掃描數(shù)據(jù)集,因此在數(shù)據(jù)集很大、數(shù)據(jù)種類很多的情況下,算法效率很低。本文引入C4.5算法,其具有如下優(yōu)點(diǎn):(1) 效率高。數(shù)據(jù)計(jì)算量小,減少因計(jì)算而花費(fèi)的時(shí)間和精力,提高效率。(2) 便于客戶理解。研究結(jié)果既反饋給教師,又反饋給學(xué)生,對(duì)其理解和解析所需的專業(yè)背景知識(shí)要求低。樹形結(jié)構(gòu)簡(jiǎn)單易懂,簡(jiǎn)單的IF語(yǔ)句即可實(shí)現(xiàn)。(3) 數(shù)據(jù)類型靈活。既能對(duì)離散數(shù)據(jù),又能對(duì)連續(xù)數(shù)據(jù)進(jìn)行處理。(4) 結(jié)構(gòu)清晰。 從“學(xué)生對(duì)該課程的熱愛程度”、“課前預(yù)習(xí)、課后復(fù)習(xí)”、“課堂上機(jī)實(shí)踐完成程度”和“學(xué)前原有知識(shí)儲(chǔ)備”等多個(gè)方面來(lái)分析構(gòu)造決策樹。將兩種算法有機(jī)結(jié)合,更具有普遍性,使得數(shù)據(jù)分析結(jié)果更具有說(shuō)服力。 C4.5算法偽代碼如下[7]: 訓(xùn)練樣本集D={(x1,y1),(x2,y2),…,(xn,yn)} 屬性集A={a1,a2,…,an} TreeGenerate(D,A): //生成節(jié)點(diǎn)node IF D中樣本全屬于同一類別C: 將node標(biāo)記為C類葉節(jié)點(diǎn) RETURN END IF IF 屬性集A為空或者D的所有屬性值均一樣: 將node標(biāo)記為最多類 RETURN END IF 從A中選取最佳劃分屬性a* FOR a IN a*: 為node生成一個(gè)分支,令Dv表示D中在a*屬性值為a的樣本子集 IF Dv為空: contINue; else:TreeGenerate(Dv,A{a*})遞歸繼續(xù) END IF END FOR 關(guān)聯(lián)規(guī)則的支持度(support)為: support(A?B)=P(A∪B) 關(guān)聯(lián)規(guī)則的置信度(confidence)為: confidence(A?B)= P(B|A)=support(A∪B)/supportA= support_count(A∪B)/support_count(A) 項(xiàng)集的出現(xiàn)頻度(support_count):包含項(xiàng)集的事務(wù)數(shù),即為項(xiàng)集的計(jì)數(shù)。 根據(jù)上述公式,找出所有的頻繁項(xiàng)集以及由頻繁項(xiàng)集產(chǎn)生強(qiáng)關(guān)聯(lián)規(guī)則。 關(guān)聯(lián)規(guī)則如表1所示。其中:A代表單選,B代表基本操作,C代表Word操作,D代表Excel操作,E代表PPT操作,F(xiàn)代表上網(wǎng)操作,G代表總成績(jī)。 表1 關(guān)聯(lián)規(guī)則表 結(jié)果分析: ① 單選和基本操作同時(shí)為優(yōu)秀,總成績(jī)有72%優(yōu)秀可能。 ② 單選和Word操作同時(shí)為優(yōu)秀,總成績(jī)有60%優(yōu)秀可能。 ③ PPT和上網(wǎng)同時(shí)為優(yōu)秀,總成績(jī)有58%優(yōu)秀可能。 ④ 基本操作和Excel同時(shí)為優(yōu)秀,總成績(jī)有91%優(yōu)秀可能。 ⑤ 單選和PPT同時(shí)為優(yōu)秀,總成績(jī)有82%優(yōu)秀可能。 ⑥ 基本操作和PPT同時(shí)為優(yōu)秀,總成績(jī)有79%優(yōu)秀可能。 可以發(fā)現(xiàn),考生在Word、Excel和PPT三種題型上的表現(xiàn)對(duì)考試總分的影響較大。 信息增益公式: 式中:D表示訓(xùn)練集;k表示類的不同屬性的取值數(shù);pi是訓(xùn)練集D中任意元素在k個(gè)類的不同屬性所占的比率。Info(D)也稱為D的熵。 信息增益率公式為: splitRatio(A,D)=[Split(A,D)-Info(A,D)]/ Split(A,D) 式中:Split(A,D)表示屬性A對(duì)D的分裂信息量;splitRatio(A,D)表示屬性A對(duì)D的分裂信息量的變化率。用信息增益率最大的作為決策樹根,因“平時(shí)成績(jī)”有最大信息增益率,故將其作為根節(jié)點(diǎn),對(duì)每個(gè)屬性建立分支并生產(chǎn)決策樹,得到如圖1所示決策樹。 圖1 部分?jǐn)?shù)據(jù)的決策樹 結(jié)果分析: ① IF(“原有知識(shí)儲(chǔ)備”=“無(wú)”)&&(“課前預(yù)習(xí)”=“無(wú)”)&&(“課后復(fù)習(xí)”=“無(wú)”)&&(“感興趣程度”=“喜歡”)then “是否通過(guò)”=“否”。 ② IF(“原有知識(shí)儲(chǔ)備”=“有”)&&(“課前預(yù)習(xí)”=“無(wú)”)&&(“課后復(fù)習(xí)”=“無(wú)”)&&(“感興趣程度”=“喜歡”)then “是否通過(guò)”=“否”。 ③ IF(“原有知識(shí)儲(chǔ)備”=“有”)&&(“課前預(yù)習(xí)”=“無(wú)”)&&(“課后復(fù)習(xí)”=“無(wú)”)&&(“感興趣程度”=“厭惡”)then “是否通過(guò)”=“否”。 ④ IF(“原有知識(shí)儲(chǔ)備”=“無(wú)”)&&(“課前預(yù)習(xí)”=“無(wú)”)&&(“課后復(fù)習(xí)”=“無(wú)”)&&(“感興趣程度”=“厭惡”)then “是否通過(guò)”=“否”。 可以發(fā)現(xiàn),“平時(shí)成績(jī)”對(duì)考試是否通過(guò)影響比較大,“課后鞏固”也很重要。 本文以2016年考試數(shù)據(jù)為訓(xùn)練集,對(duì)2017年考試數(shù)據(jù)預(yù)測(cè),結(jié)果如圖2、圖3所示。 圖2 實(shí)際成績(jī)與Apriori預(yù)測(cè)對(duì)照?qǐng)D 圖3 實(shí)際成績(jī)與C4.5決策樹預(yù)測(cè)對(duì)照?qǐng)D 如圖2所示,應(yīng)用Apriori對(duì)1 200名考生的考試成績(jī)進(jìn)行預(yù)測(cè),發(fā)現(xiàn)1 002名考生數(shù)據(jù)正確,198名考試數(shù)據(jù)錯(cuò)誤,實(shí)際考試通過(guò)率為83.5%。 如圖3所示,應(yīng)用決策樹對(duì)1 200名考生的考試成績(jī)進(jìn)行預(yù)測(cè),發(fā)現(xiàn)1 013名考生數(shù)據(jù)正確,187名考試數(shù)據(jù)錯(cuò)誤,實(shí)際考試通過(guò)率為84.4%。 Apriori算法與C4.5算法預(yù)測(cè)對(duì)比如圖4所示。可以看出,C4.5算法準(zhǔn)確度要比Apriori算法略高一些,因?yàn)樵趯?shí)際考試中,基于Apriori算法中各個(gè)題型得分由考生掌握知識(shí)點(diǎn)程度決定,得分相對(duì)穩(wěn)定,但是考試過(guò)程中的狀態(tài),例如預(yù)習(xí)、復(fù)習(xí)時(shí)間長(zhǎng)短、復(fù)習(xí)效率都易受到情緒波動(dòng)影響,C4.5算法預(yù)測(cè)會(huì)有一些波動(dòng),但只影響其預(yù)測(cè)值。兩個(gè)算法預(yù)測(cè)值基本相同,由此可見,兩個(gè)算法總體上的可信度是可取的。 圖4 Apriori算法與C4.5算法預(yù)測(cè)對(duì)比圖 基于上述模型分析,挖掘出導(dǎo)致考試一級(jí)優(yōu)秀率低和高級(jí)別通過(guò)率低原因:(1) 各類題型作答優(yōu)秀直接影響考試優(yōu)秀率;(2) 自身主觀原因,如“課前預(yù)習(xí)”“課后復(fù)習(xí)”“感興趣程度”等都是導(dǎo)致通過(guò)率、優(yōu)秀率低的原因。將這些信息反饋給教師和學(xué)生。在教師層面,教師對(duì)學(xué)生因材施教,培養(yǎng)學(xué)生自主學(xué)習(xí)的良好習(xí)慣,保持良好的學(xué)習(xí)態(tài)度和方法。在學(xué)生層面,學(xué)生可以通過(guò)決策樹分析自己在學(xué)習(xí)過(guò)程中的問(wèn)題,并結(jié)合關(guān)聯(lián)規(guī)則的相關(guān)結(jié)論,把握各題型的作答重點(diǎn),有針對(duì)性地進(jìn)行訓(xùn)練操作。 將本文方法應(yīng)用于2018年全國(guó)計(jì)算機(jī)等級(jí)考試,優(yōu)秀率、通過(guò)率對(duì)比如圖5所示??梢钥闯觯摲椒ㄊ沟靡患?jí)優(yōu)秀率平均提升25%,高級(jí)通過(guò)率平均提升50%。 圖5 2018年全國(guó)計(jì)算機(jī)等級(jí)考試優(yōu)秀率、通過(guò)率對(duì)比圖 本文主要以2016年、2017年考生成績(jī)庫(kù)為研究基礎(chǔ),從以下兩個(gè)方面分析:(1) 從題型入手,采用基于Apriori算法針對(duì)不同的題型,找出它們之間的關(guān)聯(lián)規(guī)則,發(fā)現(xiàn)題型本身的關(guān)聯(lián)及影響;(2) 基于C4.5決策樹,以學(xué)生“原有知識(shí)儲(chǔ)備”、“課前預(yù)習(xí)”“課后復(fù)習(xí)”“感興趣程度”等為切入點(diǎn),構(gòu)建決策樹模型,找到考生不合格的原因。通過(guò)兩種算法的研究和分析,挖掘出隱含在考試數(shù)據(jù)庫(kù)信息,并將研究結(jié)果反饋給授課教師及學(xué)生。實(shí)驗(yàn)結(jié)果表明,本文方法能夠有效提高全國(guó)計(jì)算機(jī)等級(jí)考試通過(guò)率及優(yōu)秀率。1.2 C4.5
2 算法實(shí)現(xiàn)
2.1 Apriori關(guān)鍵計(jì)算
2.2 C4.5關(guān)鍵計(jì)算
3 討論及分析
4 結(jié) 語(yǔ)