999精品在线视频,手机成人午夜在线视频,久久不卡国产精品无码,中日无码在线观看,成人av手机在线观看,日韩精品亚洲一区中文字幕,亚洲av无码人妻,四虎国产在线观看 ?

基于機器學習的在線學習者畫像的構建與實現

2023-01-15 09:23:06楊業壯
無線互聯科技 2022年21期
關鍵詞:特征模型

陳 珂,湯 鑫,楊業壯

(蘇州市職業大學,江蘇 蘇州 215004)

0 引言

隨著大數據、機器學習等技術的迅速發展,美國、英國、澳大利亞等國家已發布各自利用技術促進學習的相關計劃,《中國教育現代化2035》中也明確指出要努力推動信息技術與教育教學的深度融合,可見用信息技術改變教育已成為各國教育研究者關注的焦點。教育領域倡導以學習者為中心,為學習者提供精準化服務,隨著網絡在線課程的發展和教育應用軟件的升級,學習者畫像[1]的研究逐漸進入學界視野,與學習者畫像定義相關的更多是以“學習者畫像”“學生畫像”“數字畫像”“學習者肖像”等名詞呈現,這使得學習者畫像在教育領域[2]的應用更加貼切于教育教學的實際情境。

本文對學習者畫像構建[3]進行研究,將圍繞研究目標設計在線學習者畫像模型及其構建流程,并在此基礎上將其應用于在線學習過程,用于展現在線學習者的多維度特征[4],幫助學習者直觀明了地了解自己的整體學習情況,有利于促進學習者的參與度和學習效果。本研究獲取學習者學習過程中的行為數據,并利用該行為數據和在線評測結果數據為學習者畫像,從而客觀地揭示學習者狀態,對使用在線教學系統的學習者提高教學質量、提高學習水平起到重要作用。

1 數據預處理

本文首先對在線學習者的學習行為痕跡進行了清洗和預處理,數據清洗主要包括去重、去空和刪除異常值等步驟,數據預處理是對清洗后的數據做處理匯總,得出分析處理后的數據。本文編寫MapReduce程序對學習痕跡數據做清洗和預先處理,然后將學習行為數據導出為csv文件,以便為后續的學習者畫像分析做準備,這些學習行為數據的結構包括用戶ID、學習天數、學習總時長、學習的章節數和在線測試成績等字段。具體的實現方法如下。

1.1 Map()函數實現數據清洗

Map()利用并行化思想來對數據進行有意義的篩選,去除csv文件中第1行的字段名和空值,提取登錄時間、學習時長、章節名稱等相關數據。Map輸出的鍵值對經過shuffle過程,聚成后,會交給reduce()函數。

if (key.get()==0){

System.out.println(value.toString());

return;//拋棄第一行數據,

}

String rowvalue = value.toString();

if (rowvalue.equals("") ∣∣ rowvalue =="") {

return;//數據中存在空字符串

}

String[] strs = rowvalue.split("");

//由登錄時間、學習時長、章節名稱組成的字符串

String text =strs[1]+","+strs[2]+","+strs[3];

key.set(strs[0]);//用戶id

value.set(text);

context.write(key,value);

1.2 Reducer()函數統計學習者的登錄次數,學習總時長和學習章節數

Map過程輸出的鍵值對先經過shuffle過程把key值相同的所有value值聚集起來形成values,此時values是對應key字段的由登錄時間、學習時長、章節名稱組成的字符串的列表,然后將輸入reduce方法,reduce方法只要遍歷values后進行字符串分割后分別對學習時長求和以及求總天數、章節數求和、用戶名,即可得到某個學習者的行為數據。

List logintime = new ArrayList();//存放登錄時間

List duration = new ArrayList();//存放學習時長

Set chaptername =new HashSet();//存放章節名稱,去除重復章節名

List list = new ArrayList();

for(Text t:values)

list.add(t.toString());

for(String str:list){

String[] strs = str.split(",");

logintime.add(strs[0]);

duration.add(strs[1]);

chaptername.add(strs[2]);

}

long dur_sum=0;

for(String d :duration){

dur_sum += Long.parseLong(d);//統計學習總時長

}

//用戶id、學習總時長、學習天數、學習的章節數、在線測試成績,組成一個字符串

String recordstr = key.toString()+""+dur_sum+""+ dur_sum /24+""+chaptername.size()+""+score;

text.set(recordstr);

context.write(text,NullWritable.get());

1.3 Job對象負責管理和運行MapReduce的一個計算任務

在main()主函數中新建一個Job對象,負責管理和運行MapReduce的一個計算任務,并設定任務的輸出和輸入路徑,將預處理后的數據保存為csv文件。

2 建立機器學習模型

經過MapReduce清洗和預處理后的在線學習者的學習行為數據將用于構建機器學習模型。為了挖掘學習行為與學業表現的相關性,本文運用Scikit-Learn庫中K-means模型,對學生各行為指標和學習績效指標進行相關分析[5]。學習者的參與程度和努力程度將會對學習者的學習質量產生影響,因此了解學生的學習投入情況是至關重要的,并對學習投入程度過低的學習者進行有針對性的干預。本文確定了學習者2個特征指標,如表1所示。

表1 學習者特征要素

K-means是一種典型的聚類算法,該算法是基于不同對象特征值間的相似度,來確定對象的歸屬問題。本文使用K-means模型對預處理后的數據文件takypen.csv中數據進行聚類,以便分析成績與學習投入之間關系。takypen.csv文件包含有4個特征,分別如下:day_mean(學習天數);play_mean(學習時長);chapters_mean(學習章節數);score(在線測試成績)。前3個字段對應學習投入指標,score字段對應學習績效指標,通過KMeans模型訓練得到預測列type,該列即為預測出的學習投入度。

2.1 Scikit-Learn庫中K-means模型的結構

sklearn.cluster.KMeans(n_clusters=8,init='k-means++',n_init=10,max_iter=300,tol=0.0001,

precompute_distances='auto',verbose=0,random_state=None,

copy_x=True,n_jobs=1,algorithm='auto')

2.2 建立K-means聚類模型

kmeans=KMeans(n_clusters=3,n_init=10,tol=0.0002, random_state=0).fit(X)

2.3 模型評估

#屬性Labels_是獲取每個點的分類

labels=kmeans.labels_

acc = float((labels==y).sum())/len(y)

print('KMeans 準確率為:%.2f' %(acc))

3 學習行為畫像的實現

3.1 基于高斯樸素貝葉斯模型的學習者分類預測

本文使用Scikit-Learn庫提供的高斯樸素貝葉斯模型構建分類器,根據學習天數、學習時長、學習的章節數等行為特征來判斷學習者屬于哪一類,為學習者加一個分類標簽。takypen.csv文件中存放了學習行為特征數據,使用GaussianNB類建立高斯樸素貝葉斯模型并進行學習者分類預測,實現方法如下。

(1)數據歸一化處理,并建立訓練數據集。

數據歸一化處理對于大部分機器學習算法而言都是一種常規要求,如果單個特征沒有或多或少地接近于標準正態分布,那么它可能并不能在模型中表現出很好的性能。利用preprocessing類的MinMaxScaler()提前對特征數據進行歸一化后再使用高斯樸素貝葉斯模型做訓練,模型準確率將會大大提升,即數據歸一化處理對模型評分會有一定程度的提升。

data_csv = pd.read_csv('takypen.csv')

X_train = preprocessing. MinMaxScaler (data_csv.drop(['type'],axis=1))

y_train = np.ravel(data_csv[['type']])

(2)通過訓練集,構建高斯樸素貝葉斯模型。

gb= GaussianNB()

model_GaussinaNB = gb.fit(X_train,y_train)

y_predict_GaussianNB= model_GaussinaNB.predict(X_test)

print("y_predict_GaussianNB: ",y_predict_GaussianNB)

(3)將一個新的測試數據(33,40,10)帶入模型得到預測結果如圖2所示,該模塊預測出學習者的標簽為簡單體驗者(Easy_learning),如圖1所示。

圖1 運行結果

z_data ={'day_mean':['33'],'play_mean':['40'],'chapters_mean':['10']}

Z_data =pd.DataFrame(z_data,columns=['day_mean','play_mean','chapters_mean'])

print('Test_data: ',Z_data)

Z_model_predict=model_GaussinaNB.predict(Z_data)

#每個標簽下樣本最大的概率

Z_model_proba=model_GaussinaNB.predict_proba(Z_data)

print('Test_predict:',Z_model_predict)

print('Test_probability:',Z_model_proba)

(4)預測結果的平均值和預測正確率,如圖1所示。

y_test_mean=np.mean(y_predict_GaussianNB==y_test)

print('y_test_GaussianNB_mean:%.2f '%y_test_mean)

print('y_test_GaussianNB_ave_accuracy:%.2f '%gb.score(X_test,y_test))

本研究以準確性、召回率和F1這3個指標對高斯樸素貝葉斯模型在分類任務上的性能進行評估,如圖2所示。

圖2 分類任務評估

由圖2可知,本研究通過高斯樸素貝葉斯分類器對測試樣本分類,可以得到平均準確率、平均召回率以及平均F1指標,分別為0.79,0.78和0.78。

3.2 用戶畫像實現

本文選取了用戶學習過程中12天的數據作為樣本進行研究,在前端JS文件中引用echarts.js來獲取學習者行為數據,使用折線圖和柱狀圖進行展示。圖3可以很直觀地看出用戶訪問的次數和學習時長的總和及平均值分析結果。

圖3 學習者畫像展示

4 學習效果畫像的實現

4.1 基于K-means算法的群體畫像分析

采用構建的K-means模型對takypen.csv中的數據進行訓練,得到的訓練結果中包含4個特征值列和1個目標值列。其中,目標值列包含了3個數字0,1,2,分別對應的分類標簽為:Highl-yinvestment,Moderateinvestment,Lowinvestment。本文根據107個結果樣本數據中的這4個特征以及3類標簽來研究學習者的學習投入度與在線測試成績之間的關系[6],實現方法如下。

4.1.1 導入數據并提取特征值和目標值

訓練數據是由107個樣本和4列特征值組成,其中4列特征值為day_mean,play_mean,chapters_mean和score,學習投入度標簽Highlyinvestment,Moderatei-nvestment,Lowinvestment分別用數字0,1,2表示,type列是由標簽數組轉換成的數字數組。

4.1.2 數據解析

本研究通過describe()函數對每一個特征列數據進行統計,包括計數、均值、標準偏差、最小值、最大值、各個分位數等,執行print(takypen.describe())后的運行結果如圖4所示。

4.2 學習投入指標與學習表現

本研究以三維散點圖分析各特征變量對學習成績的影響,并借助3個維度特征來反映學習者的學習效果,這三維特征分別是:在線測試成績、學習次數和學習時長。學習者群體畫像的三維散點圖如圖5所示。

圖4 運行結果

由圖5可知,學習者的學習投入偏高時,知識點掌握水平多為優秀;學習投入中等偏低時,知識點掌握水平為中等水平;學習投入偏低時,知識點掌握水平則較差。綜上,聚類為高度投入的學習者整體學習情況優秀,聚類為中度投入的學習者整體學習情況良好,聚類為低投入的學習者的整體學習情況較差。

5 結語

首先,本文通過MapReduce程序對在線學習者的痕跡數據進行數據清洗和預處理,從而得到了學習者的學習行為數據。其次,構建K-means聚類模型為學習者生成學習投入度和學習效果的畫像信息,并根據學習天數、學習總時長、學習章節數等行為特征指標,使用高斯樸素貝葉斯模型構建分類器對學習者分類,并采用K-means回歸方法對學習者進行了群體畫像分析,形成了3類學習者的群體畫像標簽。最后,本文使用Echarts和Seaborn生成相關數據圖表,以便對學習者畫像進行可視化展示。因為采集的學習者行為數據樣本數量不夠,所以本文選擇了高斯樸素貝葉斯的模型,該模型的特點就是對訓練數據量要求不大,如果訓練數據量比較大,還可以選擇其他的分類模型。

圖5 群體畫像三維散點圖

猜你喜歡
特征模型
一半模型
抓住特征巧觀察
重要模型『一線三等角』
新型冠狀病毒及其流行病學特征認識
重尾非線性自回歸模型自加權M-估計的漸近分布
如何表達“特征”
不忠誠的四個特征
當代陜西(2019年10期)2019-06-03 10:12:04
抓住特征巧觀察
3D打印中的模型分割與打包
FLUKA幾何模型到CAD幾何模型轉換方法初步研究
主站蜘蛛池模板: 亚洲水蜜桃久久综合网站| 九九久久精品免费观看| 成人午夜视频网站| 国产激爽爽爽大片在线观看| 国产午夜无码专区喷水| 日韩美毛片| 99re免费视频| 在线观看91香蕉国产免费| 538精品在线观看| 毛片在线看网站| 成人午夜久久| 国产精品妖精视频| 又粗又硬又大又爽免费视频播放| 自偷自拍三级全三级视频| 欧美精品1区2区| 亚洲精品无码专区在线观看 | 黄色国产在线| 国产自在自线午夜精品视频| 青青草国产在线视频| 亚洲国产天堂久久综合| 在线另类稀缺国产呦| 日韩高清无码免费| 国产爽爽视频| 欧美精品影院| 国产一区二区三区免费| Aⅴ无码专区在线观看| 午夜视频免费试看| 成人一级黄色毛片| 在线观看国产精品一区| 欧美综合中文字幕久久| 国产成人午夜福利免费无码r| 2019年国产精品自拍不卡| 成人在线天堂| 2019年国产精品自拍不卡| 亚洲Aⅴ无码专区在线观看q| 国产成人综合久久精品尤物| 免费高清毛片| 亚洲成人一区二区三区| 亚洲无码精彩视频在线观看| 青青草原国产一区二区| 呦视频在线一区二区三区| 亚洲综合二区| 无遮挡国产高潮视频免费观看| 国产自在自线午夜精品视频| 最新午夜男女福利片视频| 五月丁香在线视频| 欧美午夜精品| 91精品国产自产91精品资源| 亚洲国产精品一区二区第一页免| 日韩av手机在线| 成人国内精品久久久久影院| 四虎成人免费毛片| 亚洲精品在线影院| 99视频在线观看免费| 啪啪永久免费av| 日韩成人午夜| 免费国产黄线在线观看| 粉嫩国产白浆在线观看| 全色黄大色大片免费久久老太| 免费 国产 无码久久久| 人妻一本久道久久综合久久鬼色| 国内精品一区二区在线观看| 亚洲成A人V欧美综合| 免费一级毛片| 欧美日韩精品在线播放| 亚洲欧美激情小说另类| 久久精品嫩草研究院| 国产亚洲日韩av在线| 国产拍揄自揄精品视频网站| 国产人妖视频一区在线观看| 久久亚洲国产一区二区| 九九精品在线观看| 色婷婷久久| 免费在线不卡视频| 91麻豆精品国产高清在线| JIZZ亚洲国产| 999国内精品久久免费视频| 国产精品区视频中文字幕| 波多野结衣一区二区三区四区 | 国产av无码日韩av无码网站| 色偷偷男人的天堂亚洲av| 精品丝袜美腿国产一区|