馮文文,郭燎原,魏雨,張興隆,郭春蘭
(河南師范大學計算機與信息工程學院,新鄉453007)
政府、社會、高校一直將大學生資助放在重要位置,如何將有限的資金用在真正需要的學生身上仍然存在許多問題。目前,大部分高校的貧困生評定都是由學生所在鄉、鎮出示相關證明后由班級骨干及輔導員審核。這樣簡單的認定存在的問題如下:①鄉、鎮出示證明及學校審核難免摻雜個人主觀情感;②真正貧困的學生或因自尊心放棄申請貧困認定;③存在極個別家庭狀況較好的學生和家長利用政府對貧困生的優惠政策來滿足自己的私利的現象。無論是家庭信息的真實性,還是評定的客觀性和公平性,都直接影響資助的公平、效率和準確率。如何優化高校貧困生的評定體系,逐步引起高校管理工作者的重視,并不斷探索新的途徑和方法[1]。
目前神經網絡已經發展了上百種模型,在諸如手寫體識別、圖像標注、語義理解和語音識別等技術領域取得了非常成功的應用[2]。本文基于BP 神經網絡和SVC 技術對數據進行訓練和研究,來幫助資助政策具體落實。利用BP 神經網絡具有高度的非線性映射能力、良好自學習能力、較強自適應的能力和并行處理能力等特點以及SVC 技術能夠非常成功的判別分析和分類處理問題[3],分別對高校貧困生進行評定。
BP 神經網絡是一種按誤差逆向傳播算法訓練的多層前饋網絡[4]。BP 神經網絡分為三層:輸入層、隱含層、輸出層,每個層次都包含若干節點,輸入層有輸入的數據決定,隱含層根據需求分配,輸出一般為一個是自己的需求結果。
網絡模型建立之后,應隨機產生節點間的權值,和隱含層節點上的閾值,輸入層和隱含層之間每一對節點都要有權值,隱含層有幾個節點就要有幾個閾值。通過輸入層的不斷輸入數據,在數據到達輸出層時,通過反向傳播來調節神經網絡的權值和閾值,使誤差達到最小[5]。在得到權值和閾值后,通過公式(1)計算下一層的輸出:

Wi1Xi表示輸入節點與對應的權值相乘,aj表示閾值,此時再求一個對應的函數值即為隱含層輸出H1,如函數表達式(2)所示:

繼續遍歷j 的值,即可得到所有的隱含層節點的輸出值Hj。
隱含層節點計算完畢后,隨機計算輸出層輸出值:根據隱含層輸出H ,連接權值Wnp和閾值b,計算神經網絡的預測輸出O,如公式(3)所示:

得到預測的輸入之后,神經網絡才算剛剛開始,通過與期望的值進行比較,不斷更新權值和閾值,使其誤差達到最小。更新的方法即在原來權值和閾值的基礎上加上一個帶權的預測誤差,權值μ 即為學習速率,可以自由調節大小,使結果達到最佳效果。
支持向量機用于分類(Support Vector Classification,SVC)是建立在統計學習理論VC 維理論和結構風險小化原理基礎上的機器學習方法[6],能夠非常成功地判別分析和分類處理問題,廣泛的用于多個學科之中。
SVC 的機理是尋找一個滿足分類要求的優分類超平面,使得該超平面在保證分類精度的同時,能夠使超平面兩側的空白區域大化[6]。數據分類,最直接的例子便是在直角坐標系中,一次函數可以把平面分成兩部分,y>x 或y 在高緯度分類方法中,f( x )=ax+b 中的x 和a 都表示一個向量,兩個向量的乘積所得到的數與偏執量b相加,得到的結果與預定的閾值比較,實現數據的分類。 如上所說,這些能夠利用一個點、一條線或一個平面將數據進行分類,則成為線性可分的函數,這些函數被稱為超平面。當然,當我們遇到現象不可分的函數時,就要將其轉化為線性可分,利用SVC 中的核函數,通過核函數,我們可以輸入低維的數據元素,直接得到數據在高維空間中的內積,得到內積之后,與偏執量相加再與閾值比較,最終得到分類結果。 總之,我們在SVC 中,求的結果就是一個線性分類器,即一個“超平面”,通過這個超平面,高維數據得到了較好的分類結果。 本次實驗收集數據的方式為線上問卷調查,調查對象為某大學在校大學生。將得到的數據進行擴充,一共采用了1090 份數據。在輸入數據中,一共有8 個部分,分別是“家庭收入情況”、“生活費水平”、“飲食消費”、“服裝消費”、“娛樂消費”、“學習消費”、“綜合測評”、“學習成績”,每一個部分歸一化為四個等級。在輸出數據的結果中,是否有助學金也被歸化成了四個等級,即“三級助學金”、“二級助學金”、“一級助學金”和“無”。 表1 輸入數據項 其中輸入數據各部分所占比例如圖1。 圖1 輸入數據各部分所占比例 (1)BP 神經網絡結構 圖2 BP神經網絡層次圖 采用的神經網絡結構如上圖所示,其中,輸入層有四個節點,分別輸入四組數據。隱含層是BP 神經網絡的中間層,是運算的核心層,在這一層中,設置了三層節點,節點個數分別是[5 15 5]個,其結構如圖3。 圖3 BP神經網絡層次圖 (2)實驗結果分析 Data、data_labels 為原始輸入輸出數據; Input_train、output_train 為訓練輸入輸出數據; Input_test、output_test 為測試輸入輸出數據; Inputn 為input_train 的歸一化; Outputn 為output_train 的歸一化; Net 為神經網絡; 迭代次數epochs 為100 次; 學習率lr 為0.1; 均方誤差goal 為0.00004。 將實驗進行20 次;得到的實驗結果如表2 所示。 表2 BP 神經網絡實驗結果 圖4 BP神經網絡預測輸出 根據上述的20 次計算值,在BP 神經網絡中,預測正確率為80%到90%,最高可到98%,平均值為84.07%。效果良好,但使用性還存在差距,需要進一步提高準確率,這需要采用其他如“混合蛙跳算法”或“粒子群算法”來提高閾值和權重的準確率。利用BP 神經網絡進行高校貧困生預測效果如圖4-圖5。 (1)實驗過程 實驗環境設定: data 為學生數據組。 Data_labels 為學生標簽組。 Train_data 為訓練數據。 Test_labels 為測試數據。 train_data_labels 為訓練組標簽。 test_data_labels 為訓練組標簽。 Studentsn_train 為歸一化后的訓練組數據。 Studentsn_test 為歸一化后的測試組數據。 在MATLAB 中將數據進行歸一化,采用Svmtrain函數訓練數據,參數選取為c=3,g=3。訓練完成之后采用svmpridect 函數預測輸出結果。將實驗進行20次統計實驗結果。 (2)實驗結果分析 表3 SVC 實驗結果 圖5 BP神經網絡預測誤差 由實驗數據得出SVC 的實驗結果較好,正確率在為90%到100%,最高可達到無誤差,平均值為95%,與BP 神經網絡相比有較大的提高,因此,在構建高校貧困生系統時,選擇SVC 技術更好。關于出現與實驗不符的現象,是由于支持向量機的參數均采用了默認值,它的參數調優的限度是有限的,對于參數調優,有許多種方法,例如GA 遺傳算法調優,POS 粒子群算法調優等,由于篇幅這里暫時不再調優。 附實驗截圖如圖6-圖7 所示。 本文利用BP 神經網絡和SVC 技術進行高校貧困生評定,并在某大學在校大學生學習生活數據中進行實驗仿真。對BP 神經網絡算法和SVC 技術進行比較發現,可采用SVC 技術建立優化高校貧困生評定系統。本文研究成果可以優化評定系統,以及提高高校貧困生評定的分類預測能力。 圖6 測試集的實際分類和預測分類 圖7 SVC 技術預測誤差2 實驗結果與分析
2.1 數據分析與處理


2.2 基于BP神經網絡預測分析




2.3 基于SVC預測分析


3 結語

