王善勤,王立輝
(1.東南大學 儀器科學與工程學院,江蘇 南京 210096;2.滁州職業技術學院 信息工程學院,安徽 滁州 239000)
公共選修課在高校人才培養中承擔的任務日趨重要,已成為高校拓寬學生知識面、優化學生知識結構的重要抓手,也是提高學生綜合素質的重要載體.[1]實現高職院校公共選修課管理的數字化轉型,是教務管理人員當前所面臨的重要且急迫的挑戰.數據挖掘技術[2-3]對于尋找選修課隱含的關聯規則提供了全新思路和有效手段.[4]Apriori算法是關聯規則的經典算法[5],通過從海量原始數據中找出頻繁項集, 進而產生數據間隱含的強關聯規則.馮楚生[6]等提出利用數據挖掘技術構建學生個性化的選課推薦系統,結合學生興趣、需求、性格、特長等方面因素,根據Apriori算法對課程信息進行關聯分析.齊欽[7]將關聯規則算法運用到學生成績數據分析中,得出了強關聯規則,通過分析驗證了課程間相關性和作用性結論.李志亮[8]等設計了一種基于壓縮矩陣的Apriori改進算法,對學生部分課程成績及選修課數據進行挖掘,分析出學生可能感興趣的選修課.本文將Apriori算法引入到高職院校公共選修課選修管理中,探索從公共課選修集中找出頻繁項集的方式,提出根據1項集預選、支持度平均值來確立關聯規則最小支持度閾值并將其應用到公共選修課管理中.
以滁州職業技術學院2018級三年公共選修課選修數據為樣本,對其進行預處理和數據倉庫的構建,根據需要進行數據轉換.
數據清洗對象為:因參軍入伍、請病假等原因休學或退學的、公共選修課選修信息采集不完整的、開設的公共選修課因不同教師導致教務系統中同課頭不同名稱的,這些因素導致部分記錄變成了噪聲數據.不完整數據樣本較少,采用直接刪除策略直接將其丟棄.噪聲數據樣本在整個樣本的比例相對較大,采用聚類、泛化方法進行處理.經過對數據集進行清理后,得到優良記錄共計3 276條.
將噪聲數據運用聚類方法進行處理.由于部分學生選修同一門選修課多次,此類數據采用數據泛化處理.
在運用Apriori算法進行關聯規則分析過程中,通過選定的樣本集,設計高職院校公共選修課選修數據表:學號(xh),姓名(xm),課程1(kc1),課程2(kc2),課程3(kc3),課程4(kc3),課程5(kc5),課程6(kc6).對公共選修課選修數據進行操作,將各公共選修課課程名稱用字母、數字編碼字符串代替,并統計出樣本數,撰寫數據字典,如表1所示.

表1 公共選修課課程映射字典信息表
根據Apriori算法規范數據,經過預處理后得到3 276條樣本記錄.
關聯規則挖掘技術就是挖掘支持度和置信度滿足設定的最小支持度、置信度閾值的期望規則.[9-10]最小支持度、置信度閾值的設定在很大程度上影響著關聯規則算法挖掘效率,將最小支持度閾值設定過高或過低都會影響數據挖掘的效果.為了解決經典算法這個固有的缺陷,蔡紅[11]等提出了一種最小支持度閾值調整優化的統計規律性算法,主要采取低則下調、高則上調的最小支持度調整辦法.針對公共選修課關聯性分析的實際應用場景,對其進行進一步改進,給出計算最小支持閾值的計算方法.針對樣本項集I={i1,i2, …,im}中項較多,項集預選率偏低的實際應用場景,采用對樣本1-項集進行分析統計,計算1-項集的支持度平均值及其預選平均值的積,支持度閾值選取通過對其向上“取整”法確立(向上“取整”指對得到值從前往后第二位不為零的數).最小支持度閾值可如式(1)所示.

(1)
式(1)中,N表示樣本集中樣本個數,k表示樣本項集中項的個數,P(xi)表示項xi在樣本中出現的次數,Thminsup表示計算的最小支持度閾值.
運用提出最小支持度閾值計算方法,對本文數據進行計算操作.從強關聯規則獲取數的角度進行觀測,計算出最小支持度閾值.根據該類場景實際情況,當最小置信度閾值為0.4,0.5,0.6的情況下,最小支持度閾值為[0.00092,0.002]區間內.實驗結果顯示,該最小支持度閾值計算方法值為0.000 97,正好處在強關聯規則隨最小支持度閾值變化曲線圖中較理想的位置,最小支持度閾值計算方法是有效的.
確立Apriori算法的最小支持度、置信度閾值,根據頻繁項集和最小置信度閾值建立公共選修課間的強關聯規則.每一條選課記錄稱為一個事務,給定一個事務集合T,設Ck是候選項集,Lk是頻繁項集.
對清洗后的事務集合進行遍歷,得到候選1項集C1及其支持度.計算出候選C1項集即事務集合T中的所有項集,計算每一門公共選修課在事務集合T中所占百分比.如果某門公共選修課選修支持度小于最小支持度閾值,則通過剪枝刪掉.遍歷完所有數據并保留下來的公共選修課集合即是頻繁1項集L1.
將得到的頻繁1項集L1進行自連接,得到候選2項集C2及其支持度.計算得出C2中每項支持度,計算事務集合T中相應兩門公共選修課的項集在事務集合T總項集數中所占的百分比.如果其支持度小于最小支持度閾值,則通過剪枝刪掉.遍歷完所有數據并保留下來每兩門公共選修課集合,即得到頻繁2項集L2.
將得到的頻繁k-1項集Lk-1進行連接并剪枝刪除非頻繁項集.得到候選k項集Ck及其支持度.計算出Ck中每項支持度,計算事務集合T中相應k門公共選修課的項集數占事務集合T中總項集數的百分比.如果其支持度小于最小支持度閾值,則通過剪枝刪掉,得到頻繁k項集Lk.
找出最大的6項頻繁集,因為在事務集合T中選修公共選修課門數最多的樣本記錄就是6門課.滿足最小置信度的頻繁項集即為建立的強關聯規則.結束算法得到強關聯規則.
引用數據分析庫numpy,pandas,運用python語言編碼實現Apriori算法,對清洗處理后數據進行數據挖掘,挖掘出公共選修課間隱藏的關聯規則.將清洗后的事務集放到數據庫中,編程導入數據,通過Apriori算法分析課程間關聯規則,并通過編程方式將分析得到關聯規則保存到數據庫中.
對樣本數據進行統計分析,根據本文提出的最小支持度閾值的運算方法進行計算,1項集支持度的平均值為0.022 377 875,1項集平均預選的值為0.043 345 543,二者乘積為0.000 969 981,由此確立用于Apriori算法分析的支持度閾值為0.000 97.考慮對頻繁項進行更加全面分析,確立最小置信度閾值為0.3.
def search_rule(d,support,confidence,ms = '--'):
result=pd.DataFrame(index=['support', 'confidence'])
support_series=1.0*d.sum()/len(d)
col=list(support_series[support_series>support].index)
k=0
while len(col)>1:
k=k+1
col=connect_string(col,ms)
sf=lambda i:d[i].prod(axis=1,numeric_only=True)
d_2=pd.DataFrame(list(map(sf,col)),index=[ms.join(i)for i in col]).T
support_series_2=1.0*d_2[[ms.join(i)for i in col]].sum()/len(d)
col=list(support_series_2[support_series_2>support].index)
support_series=support_series.append(support_series_2)
col2=[]
for i in col:
i=i.split(ms)
for j in range(len(i)):
col2.append(i[:j]+i[j+1:]+i[j:j+1])
cofidence_series=pd.Series(index=[ms.join(i)for i in col2])
for i in col2:
cofidence_series[ms.join(i)]=support_series[ms.join(sorted(i))]/support_series[ms.join(i[:len(i)-1])]
for i in cofidence_series[cofidence_series > confidence].index:
result[i]=0.0
result[i]['confidence']=cofidence_series[i]
result[i]['support']=support_series[ms.join(sorted(i.split(ms)))]
result=result.T.sort_values(['confidence','support'],ascending=False)
return result
設定最小支持度閾值為0.000 97,最小置信度閾值為0.3,運用Apriori算法進行挖掘分析,其中滿足最小支持度、置信度的強關聯規則如表2所示.
例如,對照公共選修課課程映射字典信息表,從表2中第一條規則“C126-C52-C29 0.001 832 1.000 000”可以得出,選修了“現代舞蹈基礎訓練”“形體舞蹈教學”的學生,有100%機率選修“民族民間舞蹈教學”課程;從表2中第三條規則“C107-C88-C31 0.001 221 0.800 000”可以得出,選修“食品安全與日常飲食”“創新創業執行力”的學生,有80%機率選修“ISO9000質量管理標準”課程.

表2 同時滿足支持度和置信度的強關聯規則表
提出一種基于Apriori算法的公共選修課間關聯性分析方法.采用Apriori算法對公共選修課選課歷史記錄數據進行挖掘分析,將構建的模型應用到公共課管理中,可以節約教學資源,提升教務管理、服務質量,提高公共選修課數字化智能管理水平.應用結果表明,運用Apriori算法進行公共選修課管理對公共選修課選修效率、公共選修課管理水平的提高有明顯的促進作用.公共選修課選課效率得到很大提升,誤選、棄選、失選率均大大縮減,為高職院校公共選修課數字化智能管理邁出堅實一步.