

摘要:教育數據挖掘廣泛應用于學習行為分析、學生成績預測、個性化教育推薦、教學改進及評估等多個方面。該研究重點關注學生成績缺失數據補充的方法改進,提出了一種基于改進KNN算法的數值插補方法,通過計算與缺失樣本距離最近的K個樣本,采用它們的值來估計缺失數據,通過對學生缺失成績數據的分析和插補能夠提高預測的準確性,從而為教育工作者提供更加科學的管理決策依據,為教學改革和學業管理提供數據支持。
關鍵詞:數據分析;成績預測;數據插補;KNN
中圖分類號:TP311" " " " 文獻標識碼:A
文章編號:1009-3044(2025)16-0057-03
開放科學(資源服務) 標識碼(OSID)
1 研究背景與研究意義
1.1 研究背景
每年,許多高校學生面臨不及格、留級或勸退,嚴重影響未來發展[1]。為此,許多學校出臺每學年或每學期的學籍預警工作,旨在幫助學業困難的學生及時發現問題,糾正學習態度。但是現階段學籍預警工作的結果存在滯后的問題,一些學習困難的學生在預警后已經來不及糾正,存在留級或無法取得畢業證的風險,達不到幫助學生更好地完成學業的目的。所以若能在學籍預警工作開展前或每一門科目結束前就預測出學生的學習動態,就能夠更加有效地幫助學生分析學習狀況,幫助教師理清教學思路。學生的學習成績是長期動態變化的數據,若能及時通過過去表現情況預測未來成績,就能夠為教師教學提供合理的參考意見,幫助教師及時調整教學策略,并提醒學業困難的學生更加關注學習,從而達到提高成績的效果。
1.2 研究意義
教育數據挖掘是將數據挖掘技術應用于教育領域的過程,旨在分析教育環境生成的數據,以發現有助于改善教育效果的信息和知識。當前學術界針對教學行為的數據挖掘分析主要聚焦于三大方向:其一,圍繞數據挖掘算法本身的優化與創新;其二,探索教學行為分析模型的構建方法;其三,著重研究教學場景中的師生行為特征識別及干預策略[2]。本文主要研究的是一種缺失數據的插補方法的改進,通過這種插補方法可以更好地識別學生行為特征以便于提高預測的效果與干預。具體來看,通過現階段許多在線學習平臺的學生學習數據分析可以分析不同學生的學習時長、答題速度及正確率,避免“一刀切”的教育模式,提升學生的學習效率;教師通過學生課堂表現、課后作業的分析可以實時收集學生的錯誤回答,及時調節講解的重難點,提升教學質量。
教育數據挖掘可以應用于多個方面,如學生學習行為分析、學生成績預測、個性化教育推薦系統、教學改進和評估等[3]。學生成績預測作為教育評估領域的核心話題,一直面臨著傳統人工評估機制的內在局限性,如人工預測的效率瓶頸,不僅流程較為煩瑣,工作量大,而且成績預測只能局限于有教師的課程或考試培訓班,并且教師主觀性較大,可能評估的成績與正式考試的成績存在較大的出入[4]。本文聚焦于學生成績的數據分析,通過現階段高校教務管理系統中存儲的大量成績數據或教師教學過程中的學業情況數據進行整理與分析,將可能有缺失的學生成績或學業數據進行缺失處理與預測,期望通過預測出各科目考試可能不合格的學生來為教師進行教學管理、教學方法的針對性改善提供數據支持。
2 問題提出
在現代信息技術的發展下,越來越多的高校開始使用數據分析。然而,傳統教學方法存在局限,數據分析和數據可視化等技術可以幫助高校教師更有效地提高教學質量,但是在實際操作過程中往往面臨數據缺失的問題,數據缺失對于學生學業的影響是較大的。具體來看如果某地區未建立跨校數據共享平臺,導致轉學生歷史成績和選修課程記錄丟失,學生成績掌握不清,被錯誤分班,重復學習已掌握內容或無法跟上班級學習進度。因此,如何在包含缺失數據的數據集中進行學生期末成績的精準預測成為關鍵問題。
3 數據預處理與缺失處理
3.1 均值插補法
插補法在模型訓練中常用,通常通過屬性的平均值、中位數或眾數對缺失數據進行簡單插補。對于連續型數據,常使用的方法是平均數或眾數進行插補,而對于離散型數據則通常使用眾數進行插補。另一方面,當使用插補法時,考慮到同一種屬性的樣本可能會表現出相似的特征,如果使用所有樣本的平均值或眾數進行插補是不適用的,所以通常的做法是對于某一種屬性的缺失值,使用這個屬性的平均值或眾數來進行插補。比如,統計某次考試高中全部年級物理成績中,若某一名高二學生的數據丟失,考慮到不同年級物理題難度的區別以及學生的學習情況不同,更應該使用高二年級全體學生的物理平均成績來代替其成績,而不是高中全部年級物理成績的平均成績來代替。盡管無法得知學生的具體成績,但這對進一步分析和預測的影響有限。
3.2" 基于KNN算法的數值插補
缺失數據是指由于自然或人為原因,某些統計數據的單個或多個屬性值未被記錄[5]。缺失值大致可分為兩類:一類是實際存在而沒有被觀測記錄到的值;另一類是實際就不存在的值[6]。在本文中學生成績數據的缺失值應屬于實際存在而沒有被觀測記錄到的值。例如:系統方面,在學校教務管理系統數據遷移的時候造成的數據丟失或數據受損等情況;人為方面,教師點名時遺漏某學生數據,某學生課堂作業未提交等情況。
KNN(K-Nearest Neighbors) 缺失值插補是一種基于樣本相似性填充方法,通過計算缺失數據與完好樣本的相似性,選擇最近的K個樣本以預測缺失值。當K等于1時,最近鄰插補法又稱為熱卡插補法,比如,高三模擬考試某個學生某一次物理成績丟失,可以用前后共K次成績的平均值為其賦值,如果數據是二維或二維以上的,則需要先計算出所有樣本兩兩之間的相似度距離,找到與其相似距離最低的K個樣本,再計算它們的加權平均值。常用的計算距離的公式有兩種:1) 歐氏距離:[i=1n(xi-yi)2];2) 曼哈頓距離: [i=1n|xi-yi|]。
對于連續型缺失值,通常取K個鄰居對應特征的?均值?或?加權均值;對于分類型缺失值,可采用K個鄰居的?眾數?填充。若K值過小,模型可能過擬合;若K值過大,則可能引入無關樣本噪聲。因此,可以使用交叉驗證選擇使預測誤差最小的值,初始值可以使用3或者5來進行嘗試。算法描述如下。
基于KNN算法數值插補和其他插補方法相比,有以下優勢:首先,KNN通過尋找最鄰近的樣本進行插補,能夠更好地捕捉數據的局部結構和模式,適用于數據分布復雜的情況;其次,KNN可以處理連續變量和分類變量的插補,只須選擇適當的距離度量方法(如歐氏距離、曼哈頓距離等) ;最后,該方法不需要對數據的分布做任何假設,因此在數據不滿足某些分布假設時(如正態分布) ,KNN仍能有效工作。而傳統的插值方法,如使用平均值、中位數或眾數對缺失數據進行簡單插補,雖然快速但是忽略了數據的局部結構和特征之間的關系,而KNN插補可以通過鄰居保持數據的局部信息。
3.3 一種基于KNN算法改進的數值插補方法
上文已經提到,KNN缺失值插補是一種通過測量樣本間相似性進行填充的方法,能夠有效處理缺失數據。但是KNN也有其局限性,在高緯度數據中,無論是歐氏距離還是曼哈頓距離的計算,都會受到噪聲和冗余信息的影響,導致選擇鄰居的不準確性大幅提高,導致插補效果下降。而使用PCA算法,可以通過主成分分析降低數據的緯度,消除無關噪聲,去除冗余信息,最后達到提升距離測量有效性的效果。
主成分分析法主要目的是降維,通過一個新的坐標系來重新表示數據,要求這個新坐標系能最大限度表示每個軸上的數據變化大小,取前K個變化最大的軸上的數據,從而實現降維,將PCA應用于KNN的插值可以找到每個缺失值更加有效的鄰居。
4 實驗
4.1 數據集
UCL機器學習數據集倉庫,是數據挖掘、機器學習領域中常用的數據集資源之一,該網站提供了大量機器學習和數據挖掘領域的數據集,涵蓋了從生物、地理、信息和市場經濟等各個領域的數據。UCL數據集,是一個經典且被廣泛使用的數據集,該網站的數據集適用于進行機器學習方面的研究,并且提供了詳細的數據集描述信息,可以使研究者更好的使用這些數據集。本文使用的Student Performance數據集,該數據主要是為了評估了兩所葡萄牙學校的中等教育成績。數據屬性包括學生成績、人口統計學特征、社會和學校相關特征,通過使用學校報告和問卷收集。通過這些數據特征和前兩次的學生成績來預測第三次學生成績。由于研究的是缺失數據的預測,所以首先需要制造缺失數據,本文采用的是完全隨機缺失(MCAR) 構建方法,對完整數據集中的任意變量按固定比例隨機選取位置為缺失值,缺失概率與任何變量無關。可以使用Python的numpy.random.choice生成隨機索引,在選定位置插入NaN值。
4.2 實驗過程?
4.2.1 實驗環境
本文使用的模型是在Python環境下完成的,使用的工具是Anaconda,python版本為3.11。計算機系統是Windows 10企業版,硬件配置為Intel(R) Core(TM) i5-10400F CPU、32 GRAM、nVIDIA GeForce GTX 1080 8 GB GPU。
4.2.2 模型評估標準
模型的評價指標有很多,使用誤差評估可以更加直觀有效的衡量模型的預測水平,所以在模型訓練中大多采用誤差評估的方法來衡量模型的預測水平,本文使用均方誤差(MAE) ,均方根誤差(RMSE) 兩種常用的誤差評價指標。
這兩種統計方法的定義如下:
1) MAE。[Y'i]表示預測值,[Yi]表示實際值,n表示樣本數。則[MAE = 1ni-1n|Y'i-Yi|]。
模型的預測精度與MAE的值成反比,即計算出來的MAE值越小,模型性能越好。
2) RMSE。[Y'i]表示預測值,[Yi]表示實際值,n表示樣本數。則[RMSE = (i=1n(Y'i-Yi)2n]。
模型的預測精度與RMSE結果成反比,即計算出來的MAE值越小模型性能越好。
4.2.3 實驗數據
數據的準備由數據的集成、選擇、清洗和轉換4個步驟完成[7]。
數據集成,即數據來自不用的地方,是由專門的人員以發傳單的方式搜集而來。
數據清洗,初步的整理數據,過濾掉不完整的數據,在搜集數據的過程中,存在部分數據丟失的過程或者是被調查者填寫數據的不規范性,造成部分數據不可用。
數據轉換,將數據轉化為模型可以直接運行的數據類型,包括數據的標準化、歸一化、編碼等操作,目的是讓數據滿足模型的需求并提高數據的建模效果。
使用留一法進行交叉驗證,因為實驗數據集小于1 000,屬于小樣本數據,使用留一法,可以最大化利用有限數據,訓練出性能更好的模型。
4.2.4 模型與訓練
經過特征選擇與處理之后,使用決策樹算法建立學生期末成績表現的預測模型,最終輸入模型的數據一共有33個,其中,G3(final grade) 為預測目標變量,其他32個變量為特征變量。
本文中使用的模型為決策樹模型,首先,決策樹模型的可解釋性強,通過樹狀結構可以直觀地顯示分類規則,便于教育工作者理解影響成績的關鍵因素(如出勤率、作業完成度、課堂互動等) ;其次,數據兼容度高,支持混合數據模型以及非線性關系建模,對缺失值和異常值具有比較好的包容性,且分類效果顯著。本實驗是一個二分類問題,主要是根據學生的一些家庭信息與平時表現來預測學生是否可以通過本學期的期末考試,對于預測為不通過的學生加以干預,從而提高教學質量。?
4.2.5 實驗結果
本次研究一共做了以下8組實驗,分別使用中位數插補法、平均值插補法、眾數插補法、基于KNN算法改進的數值插補方法和改良的基于KNN算法的插補法,結果如表1所示。
為了保證實驗結果的可靠性,選取建模中未用到的數據進行預測。本次實驗主要是從兩個指標來衡量使用了各種插補法的數據在決策樹模型下的表現情況。第一種插補法是中位數插補法,其原理是用特征列的中位數(50%分位數) 來填補數據中的缺失值,此方法的優點是對異常值和偏態分布魯棒性強,插補值穩定性高?,缺點是忽略特征間相關性,可能丟失數據內在模式?,所以適合房價、收入之類的連續性數據。第二種插補法是平均值插補法,用特征列的算術均值填補缺失值,缺點是對異常值比較敏感,受極端值影響較大,使得預測的值并不準確,而且在缺失率較高數據的預測中效果并不是很好,一般來說效果不如中位數插補法。第三種插補法是眾數插補法,是用特征列中出現頻率最高的值填補缺失值,缺點是對連續型數據效果差,若類別分布不均可能引入偏差?,所以本實驗中的效果,不如其他方法。最后是本文提出的基于KNN算法改進的數值插補方法,通過計算樣本間距離,選擇最近的K個近鄰,用其均值或加權值填補缺失值,可以利用數據局部的相似性來填補數據,還可以通過調整K值平衡噪聲抑制和局部細節保留,所以效果優于中位數插補法,平均值插補法和眾數插補法。?
可以很清楚地看到,不論是MAE的計算還是RMSE的計算,使用基于KNN算法改進的數值插補方法得到的數據在決策樹模型下的表現都是最佳的。
5 結束語
本文的主要目的是處理數據中的缺失值,針對缺失值的插補,提出了一種基于KNN算法改進的數值插補算法,該算法有別于傳統的缺失值的插補算法,傳統的缺失值插補算法,如平均值、中位數和眾數插補方法,雖然在一定程度上使數據更完整,但可能導致某些數據特征丟失,本文提出的基于KNN算法改進的數值插補算法,可以根據距離公式算法計算出與該樣本距離最小的K個樣本,然后再取這K個樣本的值去估計當前數據的缺失值,可以使得對缺失值的預測更加接近丟失的真實值,從而提高模型預測的準確性。通過數值插補算法可以使教師根據學生的平時表現、作業完成情況等對學生的期末表現進行預測,如果發現某學生的預測結果不好,教師也可以提前采取一些措施來應對,提高該門課的教學質量。在今后的研究中可以進一步探索數據的多元整合,比如通過融合學習行為視頻、文本等數據,提升插補與預測精度。
參考文獻:
[1] 姚河花,張彤,張順,等.基于課程學習過程性數據的成績預測研究[J].軟件導刊,2024,23(8):287-293.
[2] 張澤,褚哲.基于XGBoost的學生成績預測及SHAP特征分析研究[J].信息化研究,2024,50(3):34-40.
[3] 王昕琰,張秀梅,陳翠屏.基于教育數據挖掘技術的智慧課堂學習行為特征分析[J].教育測量與評價,2024(6):31-46.
[4] 李英.英語訓練學生成績預測模型的設計及實現[D].桂林:桂林電子科技大學,2024.
[5] 吳俊杰.基于對抗生成網絡的隨機缺失數據填補及其效果研究[D].上海:上海師范大學,2020.
[6] 廖祥超.九種常用缺失值插補方法的比較[D].昆明:云南師范大學,2017.
[7] 崔鴻剛,張萍,曾學,等.基于LightGBM的航班落地時間預測研究[J].自動化與儀器儀表,2025(2):33-36.
【通聯編輯:聞翔軍】