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幾何模型轉換方法初步研究
主站蜘蛛池模板: 精品撒尿视频一区二区三区| 色综合五月| 国产成人在线无码免费视频| 国产在线视频福利资源站| 天天综合天天综合| 国产熟睡乱子伦视频网站| 久久99国产视频| 国产精品va免费视频| 中文国产成人精品久久| 不卡无码h在线观看| 国产女人18水真多毛片18精品| 婷婷午夜影院| 99精品久久精品| 国产福利一区在线| 天堂成人在线视频| 伊人色综合久久天天| 久久久四虎成人永久免费网站| 真实国产乱子伦高清| 国产亚洲欧美在线专区| 成年人免费国产视频| 国产成人精品免费av| 91无码视频在线观看| 最新无码专区超级碰碰碰| 国产麻豆福利av在线播放| 国产91精选在线观看| 国产精品hd在线播放| 国产丝袜精品| 欧美成人影院亚洲综合图| 青青草91视频| 宅男噜噜噜66国产在线观看| 高清欧美性猛交XXXX黑人猛交| 中国成人在线视频| 九色在线视频导航91| 激情综合网激情综合| 青青青国产视频手机| 日韩欧美国产另类| 蝌蚪国产精品视频第一页| 99国产精品国产高清一区二区| 中文字幕久久波多野结衣| 四虎永久在线精品影院| 中文字幕久久波多野结衣| 久久久四虎成人永久免费网站| 欧美翘臀一区二区三区| 欧美一区二区人人喊爽| 香蕉在线视频网站| 欧美亚洲一区二区三区在线| 丁香六月激情综合| 亚洲日韩高清在线亚洲专区| 永久成人无码激情视频免费| 99久久无色码中文字幕| 亚洲无码精彩视频在线观看| 手机在线免费不卡一区二| 亚洲色无码专线精品观看| 国产精品香蕉在线| 精品无码视频在线观看| 亚洲AV永久无码精品古装片| 国产乱人伦偷精品视频AAA| 久久国产精品嫖妓| 无码AV日韩一二三区| 91精品国产自产91精品资源| 精品无码一区二区三区电影| 日韩天堂网| 日韩成人在线网站| 青青草原国产av福利网站| 国产精欧美一区二区三区| 亚洲中文字幕在线观看| 在线观看国产小视频| 国产精品人人做人人爽人人添| 一级不卡毛片| 四虎永久免费网站| 欧美亚洲国产精品第一页| 色偷偷男人的天堂亚洲av| 福利一区三区| 日韩国产欧美精品在线| 四虎亚洲国产成人久久精品| 久久毛片基地| 国产精品第5页| 久久99久久无码毛片一区二区 | 一级成人欧美一区在线观看| 最新亚洲av女人的天堂| 国产精品极品美女自在线看免费一区二区| 五月激情婷婷综合|