楊 利,昌 杰,張 浩,劉俊彤
(皖南醫(yī)學(xué)院 醫(yī)學(xué)信息學(xué)院,安徽 蕪湖 241002)
當前,社會競爭日益激烈和社會環(huán)境日益復(fù)雜,大學(xué)生承受著學(xué)習(xí)、人際、情感和擇業(yè)等諸多壓力。培養(yǎng)大學(xué)生的積極心理品質(zhì),提高大學(xué)生心理素質(zhì),使他們能以積極的心態(tài)面對多方面壓力,從而更好的適應(yīng)社會的發(fā)展。隨著機器學(xué)習(xí)技術(shù)的快速發(fā)展和廣泛使用,可將其應(yīng)用于大學(xué)生的積極心理品質(zhì)數(shù)據(jù)的分析,挖掘影響大學(xué)生積極心理品質(zhì)的影響因素,預(yù)測大學(xué)生積極心理品質(zhì)狀況,從而找到可提高大學(xué)生積極心理品質(zhì)的有效方法。
積極心理品質(zhì)最早由Seligman于2002年在《真實的幸福》提出,他用“積極品質(zhì)”(positive character)描述個體的積極心理品質(zhì)[1]。官群、孟萬金認為積極心理品質(zhì)是人本身固有的、潛在的、建設(shè)性的,是一種正向的或主動的心理品質(zhì),并針對中國學(xué)生人群開展了大規(guī)模問卷調(diào)查,挖掘出20項積極品質(zhì),分為6大類:認知、人際、情感、公正、節(jié)制、超越[2]。國內(nèi)不少學(xué)者對這6個維度20項積極心理品質(zhì)進行了進一步研究,各種研究表明,年齡[3]、家庭教養(yǎng)方式[4]、體育參與度[5]、社交[6]、是否獨生子女[7]等因素對個體積極心理品質(zhì)有重要影響。因此本文選取性別、年級、科別、生源地、獨生子女、父母的教養(yǎng)方式等因素,預(yù)測大學(xué)生的積極心理品質(zhì)狀況,并對這些影響因素進行分析。
機器學(xué)習(xí)是研究計算機模擬或?qū)崿F(xiàn)人類的學(xué)習(xí)行為,重組已有的知識結(jié)構(gòu)并使之不斷改善[8],廣泛應(yīng)用于心理領(lǐng)域[9-13],但大部分機器學(xué)習(xí)算法存在計算量大、過擬合及預(yù)測的準確率不高等缺點。Xgboost是一種性能優(yōu)異的機器學(xué)習(xí)算法,2016年由陳天奇提出,是一種改進的GBTD(Gradient Boosting Decision Tree)算法[14]。近年來,大量研究學(xué)者對Xgboost算法展開了深入研究,該算法已作為分類、回歸和特征排序的有效方法并迅速發(fā)展,廣泛應(yīng)用于電子商務(wù)推薦[15]、商業(yè)預(yù)測[16]、住房預(yù)測[17]、信用評估[18]等領(lǐng)域。
因此,本文通過量表收集積極心理品質(zhì)相關(guān)數(shù)據(jù),建立基于XgBoost算法的大學(xué)生積極心理品質(zhì)預(yù)測模型,預(yù)測出大學(xué)生積極心理品質(zhì),同時分析其影響因素。
Xgboost是一種提升方法(boosting)。提升方法通過構(gòu)造多個“弱學(xué)習(xí)器”,這些“弱學(xué)習(xí)器”之間有著很強的依賴關(guān)系,通過線性組合,最終形成一個“強學(xué)習(xí)器”,可大幅提升分類算法的準確度,“弱學(xué)習(xí)器”一般通過改變訓(xùn)練數(shù)據(jù)的的概率分布或權(quán)值分布所得。代表性的提升方法有AdaBoost和GBDT(Gradient Boosting Decision Tree)。AdaBoost主要用于二分類問題,選用指數(shù)損失函數(shù)作為損失函數(shù),通過提高前次學(xué)習(xí)器分錯樣本的權(quán)值用于訓(xùn)練下一個學(xué)習(xí)器[19]。而GBDT以決策樹為基分類器,可選用多種損失函數(shù),計算前次學(xué)習(xí)器的殘差,在殘差減少(負梯度)的方向上擬合下一個決策樹(學(xué)習(xí)器)。GBDT只需擬合當前分類器的殘差,相對于AdaBoost算法要簡單的多[20]。然而對于一些復(fù)雜的損失函數(shù),GBDT難以計算其負梯度。Xgboost對損失函數(shù)進行了二階泰勒展開,通過計算參數(shù)的一階和二階導(dǎo)數(shù)替代負梯度,同時Xgboost還引入了樹的復(fù)雜度作為正則化項,樹的復(fù)雜度由樹的葉子節(jié)點數(shù)目和權(quán)值構(gòu)成,有效降低了計算的復(fù)雜度,顯著提升了模型的泛化能力。
下面對Xgboost算法的決策樹模型、目標函數(shù)及具體步驟進行說明。
設(shè)訓(xùn)練數(shù)據(jù)集T={(x1,y1),(x2,y2),…,(xn,yn)},xi為第i個樣本點,yi為第i個樣本點對應(yīng)的標簽。決策樹模型定義如下:
(1)
對于第k次訓(xùn)練,設(shè)目標函數(shù)為:
(2)
目標函數(shù)由損失函數(shù)和正則化項構(gòu)成,正則化項Ω(fk)定義如下:
(3)
使用二階泰勒展開式(3)并優(yōu)化可得:
(4)
1.3.1 初始化f0(xi)=0。
1.3.2 使用貪心算法構(gòu)建第k(k∈1,2,…,K)次決策樹模型。
對樹中的每個葉子節(jié)點,使用貪心算法遍歷所有特征值及其切分點,選取切分后目標函數(shù)變化最大的作為當前決策樹fk(xi)。目標函數(shù)變化的計算公式如下:
(5)
GL、GR分別為切分后左、右子樹對參數(shù)的一階導(dǎo)數(shù),HL、HR為切分后左、右子樹對參數(shù)的二階導(dǎo)數(shù)。
1.3.4 設(shè)定Gain閾值或樹的深度,終止節(jié)點分裂,得到最終模型式(1)。
采取整群抽樣的方法,從安徽蕪湖6所高校選取在校大學(xué)生為施測對象,通過紙質(zhì)問卷和網(wǎng)絡(luò)問卷的方式發(fā)放量表,施測對象共計2764人,有效回收量表數(shù)據(jù)2053人,有效率74.3%。
施測量表由以下兩部分組成:
2.1.1 大學(xué)生積極心理品質(zhì)影響因素調(diào)查表
包括性別(男、女),年級(大一、大二、大三、大四、大五),科別(文科,理科),生源地(農(nóng)村,城市),獨生子女(是、否),父母的教養(yǎng)方式(民主型、專制型、溺愛型、忽視型),父母的受教育程度(小學(xué)及以下、中學(xué)及高中、大學(xué)及以上),學(xué)習(xí)成績(班級排名前30%、班級排名70%至30%、班級排名后30%),戀愛(是、否),每周鍛煉時間(0~2小時、2~5小時、5小時以上),家庭經(jīng)濟狀況(較差、一般、較好),社團活動(從不參加、很少參加、一般、經(jīng)常參加)共計12個因素。設(shè)項目選項數(shù)為n,則計分為1至n,例如每周鍛煉時間0~2小時、2~5小時、5小時以上分別計分為1、2、3。每條記錄最多允許存在2個缺失值,否則作為無效數(shù)據(jù),對于缺失值用眾數(shù)填充。此次統(tǒng)計數(shù)據(jù)的被試的人口統(tǒng)計學(xué)變量(已填充缺失值)如表1所示。
表1 被試對象的人口統(tǒng)計學(xué)變量
2.1.2 中國大學(xué)生積極心理品質(zhì)量表
表2 大學(xué)生積極心理品質(zhì)總體情況
2.2.1 評價指標
實驗采用R2(Coefficient of Determination,決定系數(shù))作為評價指標,R2的計算公式如式(6)所示。
(6)
2.2.2 模型參數(shù)
本實驗環(huán)境為python3.7,使用xgboost.sklearn包中的XGBRegressor模塊訓(xùn)練數(shù)據(jù)。實驗中,隨機從這2053份大學(xué)生心理健康數(shù)據(jù)中選取70%(1437份)作為訓(xùn)練樣本,30%(616份)數(shù)據(jù)作為測試樣本。以R2為指標,使用GridSearchCV函數(shù)搜索learning_rate(學(xué)習(xí)率)、n_estimators(迭代次數(shù))和max_depth(樹的最大深度)等參數(shù),找出最佳模型。GridSearchCV函數(shù)主要功能為自動調(diào)參,給出參數(shù)范圍,能找出最優(yōu)結(jié)果及其對應(yīng)的參數(shù),適用于小數(shù)據(jù)集。通過多次不斷變化樣本數(shù)據(jù)及設(shè)定參數(shù)范圍,最終確定參數(shù)為learning_rate=0.12,n_estimators=322,max_depth=5。
2.2.3 實驗結(jié)果
使用Xgboost和目前常用的心理數(shù)據(jù)分析方法決策樹、SVM(support vector machines,支持向量機)、隨機森林對大學(xué)生積極心理品質(zhì)數(shù)據(jù)進行預(yù)測,先用GridSearchCV函數(shù)對決策樹等3種方法進行參數(shù)優(yōu)化,每種方法進行10次實驗,每次實驗隨機選取總樣本的70%進行訓(xùn)練,30%用于測試。記錄R2指標的最大值和平均值,實驗結(jié)果如表3所示。
表3 四種模型的的最大值和平均值
使用內(nèi)置函數(shù)get_booster().get_fscore()分析Xgboost模型的特征權(quán)重,找出影響大學(xué)生積極心理品質(zhì)的重要因素,為制定大學(xué)生積極心理品質(zhì)培養(yǎng)策略提供決策支持。根據(jù)特征權(quán)重對模型貢獻所占的百分比進行排名,結(jié)果如圖1所示。
圖1 特征重要性排名
從圖1可以看出,與家庭環(huán)境相關(guān)的特征有:父母的教育方式、家庭經(jīng)濟狀況、父母的受教育程度、獨生子女,其特征權(quán)重分別排在第1、5、6、8位,說明家庭環(huán)境對于大學(xué)生積極心理品質(zhì)的影響較大,相關(guān)教育工作者可通過建立有效的家庭聯(lián)系常態(tài)化機制,及時掌握學(xué)生的家庭環(huán)境變化。模型貢獻度較高的特征還有:每周鍛煉時間、學(xué)習(xí)成績以及社團活動,利用線性回歸分析單獨分析每個特征與積極心理品質(zhì)關(guān)系發(fā)現(xiàn),這三個特征與積極心理品質(zhì)均呈現(xiàn)出一定的線性正相關(guān)性,因此鼓勵學(xué)生積極參加體育運動、培育良好的學(xué)習(xí)氛圍及各類社團活動,均有利于培養(yǎng)大學(xué)生積極心理品質(zhì)。年級對模型的貢獻度排在第4位,說明隨著大學(xué)生的成長,其積極心理品質(zhì)也不斷發(fā)生變化,反映出大學(xué)生積極積極心理品質(zhì)可塑性較高,因此需定期開展積極心理品質(zhì)教育,確保變化朝著有助于提高積極心理品質(zhì)的方向發(fā)展。
本文使用Xgboost算法構(gòu)建模型對大學(xué)生積極心理品質(zhì)進行了預(yù)測,并使用GridSearchCV函數(shù)對模型參數(shù)進行優(yōu)化,指標的最大值達到0.93,高于決策樹、SVM和隨機森林等算法。同時,對模型中的特征依據(jù)貢獻度進行了排序,對影響大學(xué)生積極心理品質(zhì)的重要因素進行了分析。本文不足之處在于使用了GridSearchCV函數(shù)對Xgboost算法模型進行調(diào)參,但這種調(diào)參方式一般適用于小樣本,后續(xù)將研究大樣本下Xgboost算法在大學(xué)生積極心理品質(zhì)分析中的應(yīng)用。