崔園
(成都醫學院大健康與智能工程學院醫學信息工程教研室,成都 610500)
在課程教學中引入前沿的計算機網絡技術,對傳統的課堂教學方式進行改革,將學生在課堂上被動地接受知識轉變為學生能夠積極主動地進行個性化、高效率的學習,在課程教學改革中如何提高教學效果,如何有效改善課程教學現狀是當前一個重要的研究方向。
目前關于網絡教學平臺的相關研究表明,學習效果與訪問次數、在線學習時間和線上討論次數是有相關性的[1];含有微課視頻服務的教學平臺,為學生進行課后線上學習提供了新途徑,也對提高教學效果有較大的幫助[2];另外,也有研究表明根據學生的學習行為數據,運用分類算法可較準確的預測學生學習態度[3]。我們結合已有的研究結果,并對現有的課程網絡教學平臺進行研究,總結出如下問題并提出想法:①部分網絡教學平臺中所產生的統計數據不全面,以至不能有效地充分地分析統計數據,因此,選擇一款統計數據較為全面的網絡教學平臺尤為重要。②網絡教學平臺普遍缺少對學生學習效果提供智能評價功能,如果我們利用人工智能算法對學生在網絡教學平臺學習過程中所產生的海量數據進行數據分析,評估課終考試成績等級,那么教師對學習效果不佳的學生就可以進行督促與指導,也能為教師提供教學改革的決策依據。針對上述問題,本文研究了運用人工智能算法對網絡教學平臺統計數據進行分析及成績等級預測。
在本研究中,我們選擇基于超星網絡教學平臺統計的學習行為數據作為研究對象,該平臺是基于任務驅動教學模式的課程平臺,是基于資源共享式和師生互動式的網絡平臺,可作為傳統課堂教學的網絡輔助教學平臺。超星網絡在課程內容上按照教學大綱設計了知識結構,加入了充足的有趣味性的教學案例,同時教學平臺將重難點做成微課,并拓展了知識點的講解,方便學生自主學習。
超星網絡教學平臺的主要功能包括:用戶管理、角色權限、學生信息管理、任務管理、作業管理、教學資料管理、教學管理等。在本研究中我們建立了教學數據分析庫,它是學生通過網絡教學平臺參與并完成任務模塊、在線學習、觀看微課視頻、在線測驗及作業等任務之后產生的。運用綜合學習效果評價算法對學生在教學平臺的學習參與和學習效果方面給予評價,運用人工智能的分類算法對學生學習參與數據進行課終考試成績等級預測分析。一方面,教師對于任務點完成情況不好及作業、測驗結果不理想的學生給予督導教學,另一方面,教師在教學中可以及時調整授課內容及教學方法,評價報表為教師教學方法改革及學生調整自我學習方式提供了輔助決策支持[3]。
在本研究中,我們對學生參與學習程度、作業完成情況等任務點執行情況做出綜合學習效果評價,從教學數據分析庫中發現潛在的規律或關聯數據,運用人工智能中的分類算法對學生學習參與數據進行課終考試成績等級預測分析,進而對在網絡教學平臺上學習時間不夠、自主學習的效果不太理想的學生進行督導。
在進行學生綜合學習效果評價中我們建立了良好的評價模型,結合了學生參與平臺互動教學的情況,我們將綜合學習效果評價設計為:在線學習時間、微課學習時間、平臺作業完成情況、在線章節測驗情況、階段性考試情況5個維度,以下將對綜合學習效果評價算法進行說明,公式如下:

式(1)中:N=5,S i為學生在網絡教學平臺某一項教學環節上的參與程度或成績,具體計算公式如下:

公式(2)及公式(3)為學生學習過程任務的參與程度,是學生本人在該教學環節上的參與情況與教師發布的任務點總數的比值,公式(4)、公式(5)及公式(6)可以反映學生學習效果,該比值對于不同層次、不同專業的學習對象都能較為客觀真實地反映學生完成教師發布任務的情況,學生要想得到較高的S分數必須認真參與每一項任務,因而該教學平臺是任務驅動的教學模式。
分類分析是通過分析具有類別的樣本的特點,得到決定樣本屬于各種類別的規則或方法。分類算法的主要作用是對已標記好類別的訓練數據訓練得出規則,從而對新樣本進行分類,預測一個歸屬的類別。常用的分類算法包括:隨機森林分類法、邏輯回歸分類算法、基于支持向量機(SVM)和XGboost分類法等。對學生各項Si進行分類需要經過數據預處理、特征提取、分類算法選擇及最終的學習效果評價。
由教學平臺收集的數據是教學數據與學生學習行為原始數據,在經過數據預處理后,從數據中找出學生學習行為特征顯得尤為重要,特征是否突出將影響分類器訓練結果。本實驗中,將學生各項Si做為特征數據進行分析。
不同訓練集選擇不同的分類算法,本文通過運用了Python中提供的隨機森林算法、邏輯回歸算法、SVM向量機以及XGboost算法進行五折交叉驗證,對不同分類器準確率進行比較,找出正確率相對較高的分類法。下面分別簡述四種分類算法及代碼:
(1)隨機森林是一種基于樹的集成分類器。采用概率熵計算方法,自動減少特征個數。在Python中的代碼如下:
from sklearn.pipeline import Pipeline
from sklearn.ensemble import RandomForestClassifier
from sklearn.model_selection import cross_val_score,train_test_split
pl_random_forest=Pipeline(steps=[('random_forest',RandomForestClassifier())])
scores=cross_val_score(pl_random_forest,teaching_data,label_df,cv=5,scoring='accuracy')
print('Accuracy for RandomForest:',scores.mean())
print('五次分類結果準確率是',scores)
(2)邏輯回歸分類器,邏輯回歸是一種線性分類器,其工作方式與線性回歸相同。代碼如下:
from sklearn.pipeline import Pipeline
from sklearn.preprocessing import StandardScaler
from sklearn.linear_model import LogisticRegression
pl_log_reg=Pipeline(steps=[('scaler',StandardScaler()),('log_reg',LogisticRegression(multi_class='multino?mial',solver='saga',max_iter=10))])
scores=cross_val_score(pl_log_reg,teaching_data,la?bel_df,cv=5,scoring='accuracy')
print('Accuracy for Logistic Regression:',scores.mean())
print('五次分類結果準確率是',scores)
(3)SVM線性支持向量機分類器。
from sklearn.pipeline import Pipeline
from sklearn.preprocessing import StandardScaler
from sklearn.svm import LinearSVC
pl_svm=Pipeline(steps=[('scaler',StandardScaler()),('pl_svm',LinearSVC())])
scores= cross_val_score(pl_svm,teaching_data,la?bel_df,cv=5,s coring='accuracy')
print('Accuracy for Linear SVM:',scores.mean())
print('五次分類結果準確率是',scores)
(4)XGBoost是一個基于提升樹的集成分類器。與“隨機森林”一樣,它也會自動減少特征集。
import xgboost as xgb
pl_xgb=Pipeline(steps=[('xgboost',xgb.XGBClassifier(objective='multi:softmax'))])
scores=cross_val_score(pl_xgb,teaching_data,label_df,cv=5,scoring='accuracy')
print('Accuracy for XGBoost Classifier:',scores.mean())
print('五次分類結果準確率是',scores)
本文選用Python做為建模工具,運用Py?thon提供的多種分類算法進行實驗,實驗數據來源于我校2019級各專業的《計算機應用基礎》公共課程的教學數據,共計11個教學班約510個學生學習數據記錄。實驗采用五折交叉驗證方式,每次訓練集合的學生數為400,測試集合數為110。實驗所用的數據集中每條記錄包括學生學習參與程度、測驗成績以及課終考試成績。訓練集分類器將學生各項參與程度及測驗成績設為輸入,將學生課終考試成績設為分類器輸出標簽,共分為三類,80分以上的標記為“excellent”,60分至80分之間的標記為“good”,60分以下標記為“bad”。
在應用不同分類器進行分類之前,首先通過代碼查看數據表中已標記好的列“label”的分布情況,代碼如下:
import pandas as pd
teaching_data=pd.read_csv('stu_data.csv',index_col=False)
teaching_data.head()
import seaborn as sns
import matplotlib.pyplot as plt
plt.figure(figsize=(12,5))
sns.countplot(x=teaching_data.label,color='mediumsea?green')
plt.title('Credit level distribution',fontsize=16)
plt.ylabel('Class Counts',fontsize=16)
plt.xlabel('Class Label',fontsize=16)
plt.xticks(rotation='vertical');
label_df=teaching_data['label']
teaching_data.drop('label',axis=1,inplace=True)
teaching_data.head()
從條形圖圖1中可以清楚地看出目標變量“label”被分為“excellent”、“good”及“bad”三類,被分到每一類的大致數據量,類分布沒有偏態,樣本數據已被分類器分離開了。

圖1 類分布柱形圖
在表1中,我們應用了Python中4種常用的分類器進行5組交叉驗證,進而比較每種分類算法對每組數據進行分類的準確率,實驗結果表明,XGboost分類算法準確率相對最高,平均值達到了0.9284。

表1 四種分類器準確率比較
本文對超星網絡教學平臺學生行為統計數據進行XGboost分類算法分析,實現了對課終考試成績等級預測的能力,在實際教學過程中,教師可根據學生在學習過程中各項學習參與度及學習效果,預測課終考試成績等級,對于學習不積極、參與度不高及學習效果不佳的學生進行監督與指導,學生也能夠根據預測成績及時改善學習方法,提高學習積極性,最終提高學習效果。
本文研究了運用人工智能分類算法進行成績等級的預測,較好地實現了對學生學習過程進行監督與指導。運用XGboost算法能較好地根據學生學習參與度預估學生知識掌握水平和成績等級,這使得該教學平臺更加智能化,為學生能夠實現自主學習進行了指導,教師也能夠依據預測結果對學生學習過程進行監督,改善了網絡教學平臺的教學效果。