高晨昊 何謙 胡梓
關(guān)鍵詞:大學生家教;機器學習;SVM支持向量機;家教系統(tǒng);App
中圖分類號:TP311 文獻標識碼:A
文章編號:1009-3044(2023)08-0005-04
0 背景概述
當下,“互聯(lián)網(wǎng)+教育”已經(jīng)融入學生的方方面面,在“互聯(lián)網(wǎng)+”背景下,學生借助互聯(lián)網(wǎng)瀏覽教育信息,實現(xiàn)個性化教學目的。家教行業(yè)也借助這一背景,涌現(xiàn)出部分個性化教育平臺[1]。家教群體中有這么一個群體,占據(jù)家教市場近4成,和學生溝通強,物美價廉,這便是大學生家教。
有學者曾調(diào)研過遼寧省的大學生家教市場。調(diào)研指出,有85%的家長會選擇為孩子報名課后輔導班;所調(diào)查的近300家教育機構(gòu)中,參與過家教兼職人員多達1萬人,目標學生群體約60萬人,學生平均年消費達2500 元[2]。據(jù)項目組成員調(diào)查,在一二線城市,約每10個學生中有8個學生上過課外補習班。因此,只要大學生有兼職意向,只要中小學生有補課需求,那么大學生家長市場將持續(xù)存在,并且會隨著人數(shù)、教育發(fā)展、教育需求提高而持續(xù)擴大,線上家教匹配系統(tǒng)的未來前景仍是一片光明。
但是,大學生家教市場也存在著諸多問題。最主要的是大學生家教市場信息閉塞,大學生尋找家教系統(tǒng)途徑單一[3]。
根據(jù)項目組成員考察調(diào)研,將目前市場上的家教平臺分成以下三類:
1) 綜合性兼職平臺分屬家教模塊(如58同城、BOSS直聘);
2) 專職線下家教平臺(如學而思,學大教育);
3) 較強地域性的家教小網(wǎng)站和小平臺(如知善師家教)。
三種模式各有利弊,本項目設計為第三類家教平臺。
團隊利用機器學習算法庫中的SVM算法,將中小學生在本平臺的上課習慣、成績、學習能力以及家教需求等個人數(shù)據(jù)作為輸入,作為每個學生的學習模型,存儲在數(shù)據(jù)庫中,然后通過家教匹配系統(tǒng),按需匹配最適合中小學生的大學生教員。該平臺依據(jù)個體學習模型提供更契合的教員,從而滿足個性化需求,解決潛在的教員“講授方式”和“能力不足”等問題,減少中小學生找家教的時間,同時也為大學生提供了兼職渠道,進一步提高平臺的競爭力[4]。
App前端使用基于Vue.js所搭載的uniapp框架搭建,同時利用MySQL數(shù)據(jù)庫進行信息整合與存放,借助node.js搭建后端、調(diào)用數(shù)據(jù),實現(xiàn)了教員信息展示、學生信息展示、喜歡教員、聯(lián)絡教員等諸多基礎功能[5]。同時,使用Python 語言在jupyter notebook 中調(diào)用機器學習算法庫中的SVM支持向量機,訓練已獲得的數(shù)據(jù)得到模型,模型實現(xiàn)了教員與中小學生匹配,減少了中小學生挑選聯(lián)絡教員以及與教員磨合的時間,并對教員的教學方式提供即時反饋。
本系統(tǒng)的主要目標是通過匹配中小學生與教員特點,滿足不同學生的個性化需求,同時解決大學生家教市場信息閉塞的現(xiàn)實問題。
1 系統(tǒng)的需求分析與設計
1.1 需求分析
本系統(tǒng)解決的核心是完成滿足學生和教員的相互匹配,找到合適的“最優(yōu)”伙伴。系統(tǒng)主要分為兩個角色:學生和教員。
學生端需要功能:注冊登錄、教師信息預覽、收藏喜歡的教員、教員匹配、分數(shù)教學反饋。
教員端需要功能:注冊登錄、學生信息預覽、學生匹配、學生反饋。
1.1.1 系統(tǒng)架構(gòu)圖
整個系統(tǒng)主要由三層組成:應用層,邏輯分析層,數(shù)據(jù)層。
數(shù)據(jù)層:底層數(shù)據(jù)庫存儲:1) 教員庫:教員基本信息、教室模型;2) 學生庫:學生基本信息、學生需求、成績、課程記錄反饋。學生庫中的數(shù)據(jù)輸入相關(guān)算法,抽象出特征模型后存儲在模型數(shù)據(jù)庫中。
邏輯分析層:對模型數(shù)據(jù)庫進行分析,將分析結(jié)果發(fā)送到匹配端,庫中模擬匹配出若干結(jié)果按契合度從高到低排序
應用層:利用下層的算法接口,將匹配的最優(yōu)信息用前端頁面可視化地展示出來,具體如圖1所示。
1.1.2 系統(tǒng)流程圖設計
圖2為系統(tǒng)流程圖。
1.2 系統(tǒng)數(shù)據(jù)庫設計
1.2.1 數(shù)據(jù)庫設計的原則
在創(chuàng)建數(shù)據(jù)庫之前,根據(jù)系統(tǒng)的數(shù)據(jù)需求和處理需求,設定以下建表要求:具有同一主題的數(shù)據(jù)應盡量存儲在同一個表中,減少不必要的字段出現(xiàn),也要根據(jù)存儲數(shù)據(jù)的實際情況確定字段類型,提高后端查詢數(shù)據(jù)的工作效率;建立表與表之間的關(guān)系時,表的主鍵及外鍵關(guān)系要盡量少,降低聯(lián)合查詢的復雜度;表的安全性和保密性要強,不能將系統(tǒng)關(guān)鍵字設置在表中,防止SQL注入攻擊,對如用戶賬號密碼此類信息不能采用明文形式儲存,要對其進行加密后再儲存;表與表間的管理要合理化,減少SQL查詢帶來的系統(tǒng)性能下降。
1.2.2 數(shù)據(jù)庫表的設計
(1) 教員信息表:字段包括:photo、id、username、name、age、sex、phone、grade、location、score、school、所在地、subject、characteristics。
(2) 學生信息表:字段包括:id、sname、sage、ssex、sgrade、slocation、sscore、sschool、schara、sneed。表1為學生信息表樣例。
2 基于支持向量機的教員和學生數(shù)據(jù)匹配
為了實現(xiàn)教員和學生之間的最優(yōu)匹配,本文擬使用支持向量機SVM進行模型構(gòu)建與訓練,以達到教員和學生的最佳數(shù)據(jù)匹配。
2.1 支持向量機
1992年,Vapnik 對有限樣本下的機器學習問題進行研究,提出一種小樣本統(tǒng)計學習理論SLT。SLT為機器學習問題建立了理論框架,發(fā)展出一種新的學習算法:SVM-支持向量機[6]。支持向量機(SupportVector Machine, SVM) 是一類按監(jiān)督學習(supervised
learning) 方式對數(shù)據(jù)進行二元分類的廣義線性分類器(generalized linear classifier) ,其決策邊界是對學習樣本求解的最大邊距超平面(maximum-margin hyper?plane) [7-8]。
跳過理論證明,SVM 所處理的最優(yōu)化解決問題為:
上述方程即為找到各類樣本點到超平面的距離最遠,也就是找到最大間隔超平面。也就是說,此方法的距離求解即為求解由學生和教師屬性構(gòu)成超平面,用得分來刻畫該數(shù)據(jù)到超平面的距離。
2.2 基于SVM 的教員和學生的數(shù)據(jù)匹配
按需求來說,學生將自己的基本信息輸入系統(tǒng),然后根據(jù)算法推出一個最合適學生的教員。但是在實際操作上,只輸入學生的信息給模型算法是不可以的。因為通過模型算法給出的y 值要么是一個數(shù),要么是一個矩陣,性格相關(guān)均為并列關(guān)系,無法給出各項的準確分數(shù)的標準。比如算法給出教員的數(shù)據(jù)為:幽默18和嚴肅42,但是庫中有一位教員A:幽默20,嚴肅40;教員B:幽默16,嚴肅44,沒有辦法比較哪一位是最匹配的教員。針對此問題,項目組提出的解決方案是對數(shù)據(jù)進行歸并。
數(shù)據(jù)歸并是指將學生希望教員的數(shù)據(jù)和庫中所有教員的數(shù)據(jù)進行組合,得到若干條原始數(shù)據(jù),得出的分數(shù)為系統(tǒng)給教員的評分,將評分從高到低排序,得到分數(shù)最高的ID,后臺將該ID傳送給后端,由前端進行數(shù)據(jù)渲染,完成教員的推送。
因此,在數(shù)據(jù)收集初期,讓挑選出的大學生教員錄制/線下試講5分鐘的習題,將錄制的視頻發(fā)至收集數(shù)據(jù)的中小學生,不告訴其教員的相關(guān)信息,由第一感覺評判該大學生教員是否符合自己的心意,并給這些教員打分,由此獲得最初的完整數(shù)據(jù)集,從而完成教員和學生的匹配。
2.2.1 信息庫的建立
本文使用jupyter notebook工具進行研究,首先導入學生教員信息庫的csv文件。
發(fā)現(xiàn)數(shù)據(jù)有分類類型與數(shù)值類型,首先需要進行數(shù)據(jù)的分析與統(tǒng)計,為了更好地展示數(shù)據(jù)信息,利用seaborn庫中的繪圖功能進行可視化地展示圖片,根據(jù)繪制出的熱力圖,可以更好地查看各個屬性之間的相關(guān)性,如圖3所示。
2.2.2 數(shù)據(jù)標準化
接下來,需要對分類數(shù)據(jù)與數(shù)值數(shù)據(jù)分別進行處理,對于類別字段,采用OneHot進行數(shù)字編碼,對于數(shù)值數(shù)據(jù)進行去均值和方差標準化,以此達到分離特征矩陣X和預估向量Y的目的。
針對數(shù)值數(shù)據(jù)標準化,可以利用scikit-learn 中自帶的preprocessing 庫中Standard?Scaler 很快進行實現(xiàn),如圖4所示。
2.2.3 特征矩陣和預估向量的構(gòu)建
處理好數(shù)據(jù)后,開始構(gòu)建最終特征矩陣和最終預估的向量,特征矩陣是指分類特征數(shù)據(jù)和數(shù)值特征數(shù)據(jù)之間的拼接,利用numpy中的np.has?tack,將預估的向量轉(zhuǎn)換成numpy數(shù)組,至此完成了特征矩陣和預估向量的構(gòu)建。
2.3 模型訓練
構(gòu)建完成后,需要進行模型的訓練。首先將數(shù)據(jù)集分為測試集和訓練集,利用scikit-learn 中的model_selec?tion子包進行數(shù)據(jù)集的劃分,本模型將80%的數(shù)據(jù)作為訓練集,20% 的數(shù)據(jù)作為測試集,如圖5所示。
使用SVM支持向量機進行模型的訓練,在scikitlearn中引入SVM庫,使用fit的方法進行訓練,在fit中傳入特征矩陣X-train和預估目標y-train,就可以很快完成訓練。接著在測試集中進行預估,傳入X-test,可以得到預估的匹配度,即y-predict,如圖6所示。
最后,模型在訓練集上的分數(shù)為0.94,測試機上的結(jié)果為0.92,證明SVM算法和本文的要求有極高的匹配度。本文將該組數(shù)據(jù)采用KNN臨近算法進行模型訓練,在KNN回歸模型中,結(jié)果如圖7所示,訓練集上的準確度是0.90,測試集上的準確度為0.86,將兩者相比較,發(fā)現(xiàn)SVM模型比KNN模型有著更高的準確性,如圖7所示。
3 系統(tǒng)實現(xiàn)以及介紹
3.1 部分頁面功能實現(xiàn)
3.1.1 教員大廳、學生大廳頁面的實現(xiàn)
學生用戶登錄成功后,系統(tǒng)將自動跳轉(zhuǎn)到“教員大廳”頁(如圖),學生用戶可使用頂部搜索欄進行關(guān)鍵詞檢索,尋找心儀的教員;通過首頁輪播圖點擊進入“金牌名師”的課堂報名;通過首頁展示的教員卡片閱讀教員的生源地、高考成績、教學科目、授課特點等信息,并根據(jù)自身需求選擇心儀教員。
3.1.2 個性化匹配功能實現(xiàn)
點擊“匹配”按鈕,前端向后端發(fā)送匹配請求,后端將前端捕捉的數(shù)據(jù)傳入后臺模型,由模型得出各個教員的評分,在后臺從高到低排序,將排名第一的教員ID傳送給后端,由后端將該教員信息傳送到前端渲染展示。
4 結(jié)束語
本文設計的基于機器學習的大學生家教適配系統(tǒng),即利用SVM支持向量機算法對教員和學生數(shù)據(jù)進行機器學習,通過建立“評價反饋”機制為模型進行修正,訓練完成的模型可以進行學生和教員的適配。通過實驗驗證,SVM支持向量機對于本項目來說優(yōu)于其他算法。本文采用的:前端-后端-后臺-后端-前端的數(shù)據(jù)傳送模式也十分契合本項目。在前后端優(yōu)化過程中,注重信息保護,信息推送的合理性。同時考慮到面向的用戶為年輕群體,UI總體設計簡約,配色清新活潑,符合系統(tǒng)用戶的審美特點。