高晨昊 何謙 胡梓









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