曹麗娜
(江蘇師范大學智慧教育學院,徐州221116)
2019年末到2020年初爆發的新冠肺炎,為了避免人群聚集導致病毒傳播,教育部對全國各大中小學利用網絡平臺開展“停課不停學”活動[1]。疫情期間開展線上教學的教學質量難以把控。教學評價是教學中最重要的一環,針對線上教學評價尤為重要。我們要精準掌握新課標下教學評價理念,科學分析線上教學評價標準,對教師線上教學情況進行分析,準確評價線上教學質量。進而依據評價結果制定新的教學方案,改進教學方式。然而教學評價信息收集過程中,因人工原因即人員操作失誤或者填寫信息遺漏和機器原因如機器出現故障等導致部分數據丟失的情況。研究表明不完整的數據集會導致錯誤的分析結果進而導致錯誤決策的產生。
數據缺失現象普遍存在于科學研究領域,不止是數字信息的缺失還包括交通運輸中的圖片和視頻丟失,DNA微陣列的信息缺失以及醫療電子記錄信息等等。在機器學習數據挖掘領域數據的缺失更普遍,包含缺失數據的數據集不僅使數據質量下降,還導致很多數據分析技術(例如回歸和主成分分析)無法使用,進而導致數據挖掘結果的嚴重偏差。一直以來數據的缺失都是一個具有挑戰性的問題。數據的缺失通用的定義是兩種范式。第一種范式指出如果觀察變量的概率與觀察變量的值無關,則認為丟失數據是可忽略的;否則,將其視為不可忽略的[2]。第二種范式是Little,R.J.A.和Rubin,D.B.兩位專家在文獻[3]描述了缺失值的三種缺失機制:第一種完全隨機缺失(MCAR)指數據的缺失不依賴于任何不完全變量和完全變量;第二種隨機缺失(MAR)指數據的缺失依賴于其他完全變量;第三種非隨機缺失(MNAR)指數據的缺失依賴于不完全變量。相比較而言前兩種缺失機制容易解決,MNAR需要針對每個問題作出特點的方案和建模。文中為了簡化,我們只對前兩種缺失機制進行模擬。
學術界對于缺失數據的處理研究廣泛存在,并提出了大量的處理缺失數據的算法。最簡單的缺失值處理方法是刪除缺失數據,依靠很多機器學習庫可以輕松實現,但是當面臨缺失數據多而樣本少或者樣本的屬性值多,針對一個屬性值的缺失要刪除一整行數據導致樣本缺失過多,通常不建議這樣做,除非有充分的理由相信缺少值是隨機產生的或者無關緊要的[4]。代替刪除缺失值,文獻[3]提出的數據填補算法是另一種選擇。最簡單最容易實現的插補算法是均值插補,如果是標簽數據用眾數填補缺失數據,然而忽視了數據之間的相關性,此相關性正是學習算法去探究的??紤]到保留數據集屬性之間的相關性,研究者們提出了基于統計學和機器學習理論的缺失值填補算法。文獻[4]針對DNA微陣列數據缺失問題,提出了基于奇異值分解的SVD填補算法(SVDImpute)和基于k最近鄰技術的加權最近鄰填補(KNNImpute)。文獻[5]在處理基因表達譜缺失值問題上,提出基于貝葉斯理論的貝葉斯主成分分析(BPCA),該模型可以自動確定模型參數,彌補了KNNImpute的缺點。文獻[6]通過期望最大算法(EM)對缺失數據進行極大似然估計。除了以上的單個數值的插補,文獻[7]提出了一種基于統計學的多值插補(MI)方案,該算法針對某個缺失值提供多個可選填補,最后分析多組數據的插補性能,選出最優的一組作為插補數據,克服了單值插補的局限性。文獻[2]使用FancyImpute[8]和scikit-learn[9]實現了對電子健康記錄中醫療缺失信息的填補。
本文的主要工作是使用免費的開源庫FancyIm-pute和scikit-learn中的填補算法對教學評價缺失信息進行填補。對于插補性能的評估,使用兩種誤差的計算方法評估填補算法的精確度。為了評估填補操作對分類器性能的影響,利用兩種分類算法分析填補操作對原始數據集的影響。
本節首先描述參與實驗的原始數據集的信息,然后介紹如何在原始數據集的基礎上模擬兩種缺失機制,簡述五種填補算法的基本原理,最后提出性能評價方法。
教學評價數據集(記為eduData)包含1000條數據和6個屬性值分別是(Teaching aims教學目標,teach-ing design教學設計,Teaching attitude教學態度,Class-room interaction課間互動,learning evaluation學習評估,Rating等級),其中每個屬性值為0-20之間的整數,其中等級分類為Total score>=70記為1類,50<=Total score<70記為2類,Total score<50記為3類。
對于本身含有缺失值的數據集,填補方法的性能不方便比較。文中以完整的數據集為基礎,模擬完全隨機缺失(MCAR)和隨機缺失(MAR)兩種數據缺失機制,依據缺失機制誘導完整數據集隨機缺失一定的比例。
(1)模擬完全隨機缺失的數據集我們的唯一限制是:針對一行數據最多誘發一個屬性值缺失。因此令單個屬性值缺失來模擬完全隨機缺失機制。固定缺失屬性是Teaching design(教學設計),隨機誘發10%、20%、30%、40%、50%由低到高的缺失比例。
(2)采用控制第三屬性值令兩個屬性值缺失來模擬隨機缺失機制。實驗令Classroom interaction(課間互動)作為第三個屬性即控制屬性,定義控制因子為12.65即缺失數據所在行的Classroom interaction屬性值必須大于12.65,然后令Teaching attitude(教學態度)和Teaching design(教學設計)兩個屬性隨機產生10%、20%、30%、40%、50%的缺失比例。
我們使用開源的FancyImpute[8]實現了復雜類型的插補算法:
(1)K最近鄰填補(KNNimpute)。通過選擇與缺失數據最近的K個鄰居并根據距離確定權重最后加權平均得到估計值。
(2)IterativeImputer。通過以循環方式將具有缺失值的每個特征建模為其他特征的函數來估算缺失值的策略屬于多變量插補與多重插補類似。
(3)SoftImpute。通過用軟閾值奇異值分解中的值迭代替換缺失值來完成填補。
使用scikit-learn中的impute包實現簡單類型的插補算法:
(1)列均值填補(mean)。使用缺失數據所在列的均值填補。
(2)列中位數填補(median)。使用缺失數據所在列的中位數填補。
(1)采用平均絕對誤差(MAE)和均方根誤差(RMSE)來計算原始數據集和填補后數據集的差值,以此來評估插補算法的精確度。結果的數值越小表明算法的誤差越小,精確度越高。
(2)從scikit-learn庫中選擇了兩個有代表性的分類算法,評估填補技術的估算如何影響以后將使用的分類算法的性能。使用標準的分類算法決策樹(DT)[10]和隨機森林(RF)[11]來比較分類性能。針對eduData原始數據集采用網格搜索調整分類算法參數,使分類模型更加擬合數據集,保證每個分類算法獲得良好的性能。文中調整的參數有Epochs迭代次數、max_depth最大深度、min_samples_split內部節點再劃分所需最小樣本數。最佳參數如表1。對評估數據集交叉驗證獲得多組分類結果,然后對分類結果計算平均的分類性能。結果的值越高說明分類性能越好進而說明該填補算法表現良好。

表1 eduData數據集的參數設置
構造單個屬性值缺失10%、20%、30%、40%、50%的數據來模擬完全隨機缺失。使用mean、median、KNNimpute(記為KNN)、IterativeImputer(記為IterIm-pute)、SoftImpute共五種方法進行填補實驗。MAE和RMSE兩種計算方法判斷精確度結果如圖1-圖2。數據集的兩種分類器效果如圖3-圖4,顏色為黑色的水平線代表原始數據集的分類效果。

圖1 五種算法的MAE值

圖2 五種填補算法的RMSE值
圖1、圖2可知在模擬完全隨機試驗中Iterative Imputer算法的填補精確度最好。意外的是在其他各類數據集表現良好的SoftImpute算法的精確度卻是最差的。針對該數據集KNNimpute算法并未展現出填補優勢,低于mean和median的精確度。隨著缺失比例從10%到50%的增加,填補算法的誤差也隨之增加,當然誤差的增幅還算平穩,未呈現激增的情況。
觀察圖3、4的分類效果圖得出填補操作對原始數據集的分類效果具有影響。針對圖3的DT分類器來看除了SoftImpute算法處理后的數據集分類效果低于原始數據集的分類效果,其余的均優于原始數據集。IterativeImputer算法的分類效果最好,且隨著缺失比例的增加呈現上升的趨勢。mean和KNNimpute呈現的分類效果趨勢類似,均在40%缺失比例時達到最低,相反的是median在該比例下分類效果最優。RF呈現與DT分類器相反的情況,進行填補后的數據集的RF分類效果低于原始數據集,降低了分類器的性能。其中最差的是KNNimpute,相對優秀的是IterativeImputer,但在50%缺失值時出現猛烈的下降。針對完全隨機缺失機制的整體來看IterativeImputer算法的填補誤差最小,分類器的性能最優。

圖3 六種數據集的DT分類效果

圖4 六種數據集的RF分類效果
控制第三個屬性值使兩個屬性值缺失10%、20%、30%、40%、50%的數據來模擬隨機缺失。使用mean、median、KNNimpute(記為KNN)、IterativeImputer(記為IterImpute)、SoftImpute共五種方法進行填補實驗。用MAE和RMSE兩種誤差計算方式評估填補算法的精確度,結果如圖5-圖6。采用兩種分類器評估填補算法對數據集的分類影響,結果如圖7-8,顏色為黑色的水平線代表原始數據集的分類效果。

圖5 五種算法的MAE值

圖6 五種填補算法的RMSE值

圖7 六種數據集的DT分類效果

圖8 六種數據集的RF分類效果
圖5、圖6可知在模擬隨機試驗中IterativeImputer算法的填補精確度最好。與完全隨機缺失類似SoftIm-pute算法的精確度是最差的,隨著缺失比例的增加誤差呈直線上升趨勢。KNNimpute、mean和median三種算法誤差接近但前者略大。填補算法誤差的整體趨勢隨著缺失比例的增加呈上升趨勢。兩種分離器的結果知IterativeImputer填補后的性能最優并隨著缺失比例增加分類性能呈上升趨勢。DT分類器中僅有median和SoftImpute處理后的數據集分類性能低于原始分類效果而RF分類器中除了IterativeImputer算法,其余算法均低于原始數據集。在DT分類器中KNNimpute隨著缺失比例增加分類性能浮動較大,在40%缺失時分類效果最好。隨機缺失機制下的兩種分類器的分類性能隨著缺失比例的增加整體呈下降趨勢。
疫情期間開展線上教學起到防控疫情作用,而對線上教學質量的把握也尤為重要。教學評價環節是掌握教學質量的關鍵環節。針對于教學評價信息缺失現象,文中在eduData教學評價數據集上使用5種數據缺失填補方法進行了實驗。實驗結果顯示,無論是完全隨機缺失還是隨機缺失表現最好的算法是IterativeIm-pute算法。IterativeImpute算法的填補精確度最高,填補后的數據集的分類性能也最優。在本實驗中表現最差的算法是SoftImpute,該算法的填補數據精確度極差,當然我們也嘗試了SoftImpute與BiScaler和KNN算法結合但誤差值比單純的使用SoftImpute更高,說明該算法不適合用于eduData數據集。在數據集中KNNimpute算法不占優勢,低于mean和median的性能。根據圖中的分類器折線圖可以看出,填補算法影響了數據集的分類性能。兩種分類器算法都受到缺失比例增加的影響,但是相應的表現不同。針對兩種趨勢整體來看DT分類器的分類性能在填補操作后提升并隨缺失比例的增加呈上升趨勢,與其相反的是經過填補操作數據集的RF分類器的分類性能降低,整體低于原始數據集并隨缺失比例的增加呈下降趨勢。以上分析得出未來在填補評價信息缺失值方面我們可以使用IterativeImpute算法。
本文對于教學評價信息缺失現象實現了5種信息填補算法,然而這對于廣泛存在的缺失數據填補算法是遠遠不夠的,未來嘗試針對教學評價信息缺失實現更多的插補算法來提高評價信息填補的精確度。文中評估了填補算法對分類器性能的影響,在以后的實驗中會研究填補算法對數據之間相關性的影響。從上文的實驗知KNN算法的填補性能沒有很好的展現,可能與k值的選擇有關,未來工作嘗試使用無參的方法填補教育評價信息的缺失值,并為確定K值探究更好的方法。未來會進一步嘗試使用R語言的經典包庫來填補教育評價信息缺失值并與Python中填補缺失值的包庫做比較。希望本文對大家有所幫助。