楊 利,昌 杰,張 浩,劉俊彤
(皖南醫學院 醫學信息學院,安徽 蕪湖 241002)
當前,社會競爭日益激烈和社會環境日益復雜,大學生承受著學習、人際、情感和擇業等諸多壓力。培養大學生的積極心理品質,提高大學生心理素質,使他們能以積極的心態面對多方面壓力,從而更好的適應社會的發展。隨著機器學習技術的快速發展和廣泛使用,可將其應用于大學生的積極心理品質數據的分析,挖掘影響大學生積極心理品質的影響因素,預測大學生積極心理品質狀況,從而找到可提高大學生積極心理品質的有效方法。
積極心理品質最早由Seligman于2002年在《真實的幸?!诽岢?,他用“積極品質”(positive character)描述個體的積極心理品質[1]。官群、孟萬金認為積極心理品質是人本身固有的、潛在的、建設性的,是一種正向的或主動的心理品質,并針對中國學生人群開展了大規模問卷調查,挖掘出20項積極品質,分為6大類:認知、人際、情感、公正、節制、超越[2]。國內不少學者對這6個維度20項積極心理品質進行了進一步研究,各種研究表明,年齡[3]、家庭教養方式[4]、體育參與度[5]、社交[6]、是否獨生子女[7]等因素對個體積極心理品質有重要影響。因此本文選取性別、年級、科別、生源地、獨生子女、父母的教養方式等因素,預測大學生的積極心理品質狀況,并對這些影響因素進行分析。
機器學習是研究計算機模擬或實現人類的學習行為,重組已有的知識結構并使之不斷改善[8],廣泛應用于心理領域[9-13],但大部分機器學習算法存在計算量大、過擬合及預測的準確率不高等缺點。Xgboost是一種性能優異的機器學習算法,2016年由陳天奇提出,是一種改進的GBTD(Gradient Boosting Decision Tree)算法[14]。近年來,大量研究學者對Xgboost算法展開了深入研究,該算法已作為分類、回歸和特征排序的有效方法并迅速發展,廣泛應用于電子商務推薦[15]、商業預測[16]、住房預測[17]、信用評估[18]等領域。
因此,本文通過量表收集積極心理品質相關數據,建立基于XgBoost算法的大學生積極心理品質預測模型,預測出大學生積極心理品質,同時分析其影響因素。
Xgboost是一種提升方法(boosting)。提升方法通過構造多個“弱學習器”,這些“弱學習器”之間有著很強的依賴關系,通過線性組合,最終形成一個“強學習器”,可大幅提升分類算法的準確度,“弱學習器”一般通過改變訓練數據的的概率分布或權值分布所得。代表性的提升方法有AdaBoost和GBDT(Gradient Boosting Decision Tree)。AdaBoost主要用于二分類問題,選用指數損失函數作為損失函數,通過提高前次學習器分錯樣本的權值用于訓練下一個學習器[19]。而GBDT以決策樹為基分類器,可選用多種損失函數,計算前次學習器的殘差,在殘差減少(負梯度)的方向上擬合下一個決策樹(學習器)。GBDT只需擬合當前分類器的殘差,相對于AdaBoost算法要簡單的多[20]。然而對于一些復雜的損失函數,GBDT難以計算其負梯度。Xgboost對損失函數進行了二階泰勒展開,通過計算參數的一階和二階導數替代負梯度,同時Xgboost還引入了樹的復雜度作為正則化項,樹的復雜度由樹的葉子節點數目和權值構成,有效降低了計算的復雜度,顯著提升了模型的泛化能力。
下面對Xgboost算法的決策樹模型、目標函數及具體步驟進行說明。
設訓練數據集T={(x1,y1),(x2,y2),…,(xn,yn)},xi為第i個樣本點,yi為第i個樣本點對應的標簽。決策樹模型定義如下:
(1)

對于第k次訓練,設目標函數為:

(2)
目標函數由損失函數和正則化項構成,正則化項Ω(fk)定義如下:
(3)
使用二階泰勒展開式(3)并優化可得:
(4)

1.3.1 初始化f0(xi)=0。
1.3.2 使用貪心算法構建第k(k∈1,2,…,K)次決策樹模型。
對樹中的每個葉子節點,使用貪心算法遍歷所有特征值及其切分點,選取切分后目標函數變化最大的作為當前決策樹fk(xi)。目標函數變化的計算公式如下:
(5)
GL、GR分別為切分后左、右子樹對參數的一階導數,HL、HR為切分后左、右子樹對參數的二階導數。

1.3.4 設定Gain閾值或樹的深度,終止節點分裂,得到最終模型式(1)。
采取整群抽樣的方法,從安徽蕪湖6所高校選取在校大學生為施測對象,通過紙質問卷和網絡問卷的方式發放量表,施測對象共計2764人,有效回收量表數據2053人,有效率74.3%。
施測量表由以下兩部分組成:
2.1.1 大學生積極心理品質影響因素調查表
包括性別(男、女),年級(大一、大二、大三、大四、大五),科別(文科,理科),生源地(農村,城市),獨生子女(是、否),父母的教養方式(民主型、專制型、溺愛型、忽視型),父母的受教育程度(小學及以下、中學及高中、大學及以上),學習成績(班級排名前30%、班級排名70%至30%、班級排名后30%),戀愛(是、否),每周鍛煉時間(0~2小時、2~5小時、5小時以上),家庭經濟狀況(較差、一般、較好),社團活動(從不參加、很少參加、一般、經常參加)共計12個因素。設項目選項數為n,則計分為1至n,例如每周鍛煉時間0~2小時、2~5小時、5小時以上分別計分為1、2、3。每條記錄最多允許存在2個缺失值,否則作為無效數據,對于缺失值用眾數填充。此次統計數據的被試的人口統計學變量(已填充缺失值)如表1所示。

表1 被試對象的人口統計學變量
2.1.2 中國大學生積極心理品質量表


表2 大學生積極心理品質總體情況
2.2.1 評價指標
實驗采用R2(Coefficient of Determination,決定系數)作為評價指標,R2的計算公式如式(6)所示。
(6)

2.2.2 模型參數
本實驗環境為python3.7,使用xgboost.sklearn包中的XGBRegressor模塊訓練數據。實驗中,隨機從這2053份大學生心理健康數據中選取70%(1437份)作為訓練樣本,30%(616份)數據作為測試樣本。以R2為指標,使用GridSearchCV函數搜索learning_rate(學習率)、n_estimators(迭代次數)和max_depth(樹的最大深度)等參數,找出最佳模型。GridSearchCV函數主要功能為自動調參,給出參數范圍,能找出最優結果及其對應的參數,適用于小數據集。通過多次不斷變化樣本數據及設定參數范圍,最終確定參數為learning_rate=0.12,n_estimators=322,max_depth=5。
2.2.3 實驗結果
使用Xgboost和目前常用的心理數據分析方法決策樹、SVM(support vector machines,支持向量機)、隨機森林對大學生積極心理品質數據進行預測,先用GridSearchCV函數對決策樹等3種方法進行參數優化,每種方法進行10次實驗,每次實驗隨機選取總樣本的70%進行訓練,30%用于測試。記錄R2指標的最大值和平均值,實驗結果如表3所示。

表3 四種模型的的最大值和平均值
使用內置函數get_booster().get_fscore()分析Xgboost模型的特征權重,找出影響大學生積極心理品質的重要因素,為制定大學生積極心理品質培養策略提供決策支持。根據特征權重對模型貢獻所占的百分比進行排名,結果如圖1所示。

圖1 特征重要性排名
從圖1可以看出,與家庭環境相關的特征有:父母的教育方式、家庭經濟狀況、父母的受教育程度、獨生子女,其特征權重分別排在第1、5、6、8位,說明家庭環境對于大學生積極心理品質的影響較大,相關教育工作者可通過建立有效的家庭聯系常態化機制,及時掌握學生的家庭環境變化。模型貢獻度較高的特征還有:每周鍛煉時間、學習成績以及社團活動,利用線性回歸分析單獨分析每個特征與積極心理品質關系發現,這三個特征與積極心理品質均呈現出一定的線性正相關性,因此鼓勵學生積極參加體育運動、培育良好的學習氛圍及各類社團活動,均有利于培養大學生積極心理品質。年級對模型的貢獻度排在第4位,說明隨著大學生的成長,其積極心理品質也不斷發生變化,反映出大學生積極積極心理品質可塑性較高,因此需定期開展積極心理品質教育,確保變化朝著有助于提高積極心理品質的方向發展。
本文使用Xgboost算法構建模型對大學生積極心理品質進行了預測,并使用GridSearchCV函數對模型參數進行優化,指標的最大值達到0.93,高于決策樹、SVM和隨機森林等算法。同時,對模型中的特征依據貢獻度進行了排序,對影響大學生積極心理品質的重要因素進行了分析。本文不足之處在于使用了GridSearchCV函數對Xgboost算法模型進行調參,但這種調參方式一般適用于小樣本,后續將研究大樣本下Xgboost算法在大學生積極心理品質分析中的應用。