程雪平,賴慶
(廣州華商學(xué)院數(shù)據(jù)科學(xué)學(xué)院,廣州 511300)
隨著時代與經(jīng)濟發(fā)展,我國高校的家庭經(jīng)濟困難學(xué)生資助體系日趨完善[1]。但就家庭經(jīng)濟困難學(xué)生認定工作而言,大多數(shù)高校仍沿用人工評定的方法。人工評定方法在實際應(yīng)用中存在諸如貧困申請材料真?zhèn)坞y辨、信息源單一等問題,因此導(dǎo)致高校家庭經(jīng)濟困難學(xué)生的準(zhǔn)確性和資助效果大打折扣。
校園一卡通記錄的是學(xué)生日常消費數(shù)據(jù),根據(jù)學(xué)生的消費行為判斷學(xué)生的家庭收入情況在所有學(xué)生中所處的水平有一定的幫助。本文以某高校(簡稱A高校)校園一卡通的消費數(shù)據(jù)為基礎(chǔ),采用聚類分析[2]對學(xué)生消費數(shù)據(jù)進行分類,從而為家庭經(jīng)濟困難學(xué)生的認定提供輔助決策支持。
采用一卡通消費特征[3]數(shù)據(jù)對家庭經(jīng)濟困難學(xué)生進行認定,基于以下幾點常識和假設(shè):①家庭經(jīng)濟困難學(xué)生使用校園卡在校內(nèi)消費的頻率較非貧困學(xué)生多。②家庭經(jīng)濟困難學(xué)生在校使用校園卡消費的總金額相對較小。③家庭經(jīng)濟困難學(xué)生使用校園卡消費的日均消費金額和次均消費金額較小,且使用校園卡消費的頻率較為穩(wěn)定。
因此,本文選用的消費特征數(shù)據(jù)包括以下四類[4]:月均消費次數(shù)、月均消費金額、日均消費金額、次均消費金額。
A高校設(shè)有專門的信息中心,其一卡通數(shù)據(jù)庫中積累了大量的教職工和學(xué)生的日常消費數(shù)據(jù)。本文真實采集了A高校28867名在校本科生2019年度總共6287134條消費數(shù)據(jù)。其中,學(xué)生消費類型包括餐費支出、賬號充值、水電費支出、圖書館借閱、認證考試培訓(xùn)費用支出等各個方面。
學(xué)生原始消費數(shù)據(jù)內(nèi)容如圖1所示。
圖1 校園一卡通原始消費數(shù)據(jù)(部分)
其中,消費數(shù)據(jù)中總共包括一卡通賬號、學(xué)號、學(xué)生姓名、交易金額、交易類型、交易時間等23個字段,為了保護學(xué)生隱私,在此將學(xué)生姓名隱去。
如前所述,一卡通消費數(shù)據(jù)中總共有23個字段,其中部分字段與本文研究內(nèi)容無關(guān),因此對這些無關(guān)字段可以進行規(guī)約。
根據(jù)研究需要,規(guī)約后的消費數(shù)據(jù)表結(jié)構(gòu)如表1所示。
表1 數(shù)據(jù)規(guī)約后的歷史消費數(shù)據(jù)表結(jié)構(gòu)
數(shù)據(jù)導(dǎo)出之后,需要對異常數(shù)據(jù)進行必要的預(yù)處理,將異常數(shù)據(jù)去除,從而提升數(shù)據(jù)的準(zhǔn)確性和有效性。
經(jīng)分析發(fā)現(xiàn)主要存在兩類數(shù)據(jù)異常情況:一類是student_id為空的消費數(shù)據(jù),student_id為空,意味著這類消費記錄無法關(guān)聯(lián)到具體的學(xué)生,且該類異常數(shù)據(jù)在總樣本中占比較小,故而選擇刪除;另一類異常情況是存在一定比例的數(shù)據(jù),其消費金額為0.01元,通過進一步查詢分析,發(fā)現(xiàn)這類數(shù)據(jù)為系統(tǒng)測試數(shù)據(jù),同樣予以刪除。
為保證數(shù)據(jù)完整性,以及方便研究與對比,從學(xué)生信息表中抽取2018級數(shù)科院882名本科生與進行預(yù)處理后的2019年度總體消費數(shù)據(jù)進行關(guān)聯(lián),總共篩選出233667條消費數(shù)據(jù)構(gòu)建家庭經(jīng)濟困難學(xué)生指標(biāo)模型。
K-Means聚類算法(K-means clustering algo?rithm)是一種迭代求解的算法,其核心思想和基本原理在諸多資料和文獻中均有具體描述,在此不再贅述。該算法具有原理簡單、便于處理大量數(shù)據(jù)等優(yōu)點,其聚類效果和性能均優(yōu)于多種其他聚類算法[5]。
選用K-means聚類算法解決實際問題,其難點在于找到一個最接近于真實情況的K值,從而實現(xiàn)數(shù)據(jù)的最優(yōu)聚類。
把經(jīng)過前述預(yù)處理之后的18級數(shù)科院882名本科生2019年度的一卡通消費數(shù)據(jù)導(dǎo)入IBM數(shù)據(jù)挖掘(建模)軟件SPSS MODELER,從而構(gòu)造出該882名學(xué)生的消費特征數(shù)據(jù)。
本文根據(jù)18級數(shù)科院學(xué)生2019年度的消費總額、消費總次數(shù)以及總消費天數(shù)和學(xué)生一年中有消費記錄的月份數(shù)構(gòu)造出每名學(xué)生的月均消費次數(shù)、月均消費金額、日均消費金額、次均消費金額等消費特征數(shù)據(jù),為后續(xù)K-means算法中的家庭經(jīng)濟困難學(xué)生聚類提供數(shù)據(jù)基礎(chǔ)。
如前所述,采用一卡通消費特征數(shù)據(jù)進行聚類,其前提條件之一,是家庭經(jīng)濟困難學(xué)生使用一卡通消費頻率較高。
對樣本數(shù)據(jù)進行分析,發(fā)現(xiàn)樣本數(shù)據(jù)中有部分學(xué)生整個年度的消費記錄較少,例如,某學(xué)生整個2019年度只有一條消費記錄,這種情況下的消費金額存在著較大的偶然性,甚至可能會孤立成類,如果將類似的消費數(shù)據(jù)一并帶到模型中進行聚類分析,勢必會影響聚類結(jié)果的客觀性與合理性,因此在進行聚類分析之前,對樣本中消費次數(shù)過少的情況應(yīng)該加以過濾。
為了將消費次數(shù)較少的樣本數(shù)據(jù)過濾,又不至于因過濾的數(shù)據(jù)太多而影響聚類效果,在參考國內(nèi)外有關(guān)一卡通消費行為研究文獻的基礎(chǔ)上,引入年度必要消費次數(shù)[6]概念——如果樣本數(shù)據(jù)消費次數(shù)小于必要消費次數(shù),則將樣本數(shù)據(jù)剔除,否則,樣本數(shù)據(jù)保留。
必要消費次數(shù)的計算公式如下:
年度必要消費次數(shù)=全部學(xué)生年度平均消費次數(shù)×必要消費控制因子
通常,必要消費因子控制在0.71~0.85[7]之間較為合適,由于A高校各種消費場所支持的支付方式不僅包括校園一卡通,也包括各種移動支付,如微信、支付寶等,為了盡可能保留有效記錄,本文選取的必要消費控制因子為其取值范圍的下限,即0.71。
在此基礎(chǔ)上通過計算,構(gòu)建模型之前,首先要過濾掉年度消費次數(shù)小于262的樣本,然后再去構(gòu)造消費特征數(shù)據(jù)模型。
使用SPSS MODELER數(shù)據(jù)挖掘工具過濾并構(gòu)建的學(xué)生一卡通消費特征模型如圖2所示。
圖2 一卡通消費特征數(shù)據(jù)模型構(gòu)造
其計算結(jié)果如圖3所示。
圖3 18級數(shù)科院學(xué)生19年度消費特征數(shù)據(jù)(部分)
如前所述,K-means聚類算法的主要問題,在于找到一個最優(yōu)的K值,從而達到最佳聚類效果。
K-means聚類算法中關(guān)于最優(yōu)K值的確定,通常有兩種方法,即拐點法[8](elbow method)和輪廓系數(shù)法。
拐點法通過計算簇內(nèi)誤方差(sum of squares due to error,SSE)作為目標(biāo)函數(shù)劃分簇確定最佳的K值[9]。
由于SPSS Modeler數(shù)據(jù)挖掘工具本身自帶的聚類效果評價算法就是輪廓系數(shù)測量法,因此本文主要采用簇內(nèi)誤方差法確定K值,然后在此基礎(chǔ)上觀察該K值在SPSS Modeler的聚類效果。
拐點法確定K值的基本思想如下:若K值小于真實聚類數(shù),隨著K值增大,每個簇簇內(nèi)的聚合度會大幅提升,代表簇內(nèi)誤方差的SSE值則會猛烈下降;而當(dāng)K值比較接近真實聚類數(shù)時,K值若再增加,簇內(nèi)聚合程度就會大幅減小,此時SSE的下降幅度會驟然減小,在此基礎(chǔ)上K值再增加,SSE的值便會趨于平緩,而在驟減和趨于平緩的曲線圖中可以得到一個較為明顯的拐點,這個拐點對應(yīng)的K值,就是比較合適的聚類數(shù)。
拐點法的核心指標(biāo)是簇內(nèi)誤方差(sum of squares due to error,SSE),
其中,X i指K-means中的第i個簇,p是X i的樣本點,m i是X i的質(zhì)心(X i中所有樣本的均值),S S E是所有樣本的聚類誤差[10],代表著聚類質(zhì)量的高低。
綜上,利用簇內(nèi)誤方差法(SSE)確定K-means參數(shù)的算法流程如下:
(1)讀取預(yù)處理過后的特征數(shù)據(jù)。
(2)讓K從1開始取值,直到取到比較合適的上限(通常這個上限值不會太大,一般在10以內(nèi))。
(3)對每一個K值按照特定條件進行聚類(本文使用學(xué)生消費特征數(shù)據(jù)進行聚類,包括學(xué)生的月均消費次數(shù)、月均消費金額、日均消費金額,次均消費金額),并記錄相對應(yīng)的S S E值。
(4)畫出K和S S E的曲線關(guān)系圖。
(5)根據(jù)圖形特征,選取曲線拐點對應(yīng)的K值作為最佳聚類數(shù)。
根據(jù)以上理論和算法,本文利用jupyter Note?book平臺編寫Python程序,將2018級數(shù)科院學(xué)生2019年度的一卡通消費特征數(shù)據(jù)的肘部曲線圖描繪出來,程序運行結(jié)果如圖4所示。
圖4 使用肘部法確定K值
從圖4可以看出,當(dāng)K的值取4時,明顯是該肘部曲線的拐點,由此可以判定,K=4是比較接近真實情況的聚類數(shù)。
據(jù)此,在使用spss modeler數(shù)據(jù)挖掘工具進行K-means建模時,聚類數(shù)K可直接設(shè)置為4,并以學(xué)生消費特征數(shù)據(jù)月均消費總次數(shù)、月均消費金額、次均消費金額、日均消費金額作為輸入條件進行聚類分析。
考慮到歷史消費數(shù)據(jù)中,絕大多數(shù)數(shù)據(jù)屬于食堂餐費支出,而餐費支出中男生和女生的消費特點具有一定的差異性,因此,在使用聚類算法對消費特征數(shù)據(jù)進行挖掘時,將男生和女生的數(shù)據(jù)分別進行聚類,從而得出一個更加客觀和接近真實情況的聚類結(jié)果。
圖5是2018級數(shù)科院男生2019年度一卡通消費特征數(shù)據(jù)的聚類結(jié)果,其聚類數(shù)為K=4。
圖5 2018級數(shù)科院男生2019年度一卡通消費特征數(shù)據(jù)聚類結(jié)果
其中預(yù)測變量的重要性如圖6所示。
圖6 2018級數(shù)科院男生2019年度消費特征數(shù)據(jù)預(yù)測變量重要性
取K=4時,SPSS Modeler數(shù)據(jù)挖掘工具聚類效果評價如圖7所示。
圖7 取K=4時聚類質(zhì)量評價
從聚類結(jié)果評價來看,本文采用簇內(nèi)誤方差確定K值的方法達到了良好的聚類效果。
如前所述,用一卡通消費特征數(shù)據(jù)建模判定家庭經(jīng)濟困難學(xué)生所假設(shè)的前提是,家庭經(jīng)濟困難學(xué)生在校使用校園卡消費的頻次較高,并且日均消費金額和次均消費金額均比較低的,綜合數(shù)據(jù)的聚類結(jié)果分析,圖5中的聚類2符合家庭經(jīng)濟困難學(xué)生的消費特征,而其他聚類為不貧困的三種情況。
混淆矩陣(confusion matrix),是一種用來評判模型結(jié)果的指標(biāo),屬于模型評估的一部分,多用于判斷分類器的優(yōu)劣,非常適用于分類型的數(shù)據(jù)模型,其中二分類問題是混淆矩陣最典型也是最簡單的應(yīng)用場景[11]。
本文根據(jù)學(xué)生消費特征構(gòu)造的聚類模型,最終將學(xué)生分為貧困與非貧困兩大類,是典型的二分類問題,因此可以采用混淆矩陣來判斷聚類分析結(jié)果的質(zhì)量。
在混淆矩陣的二分類問題中,模型最終需要判斷樣本的結(jié)果是0或者1,或者是positive(正例)還是negative(負例)。
通過樣本采集,可以了解在真實情況下,哪些數(shù)據(jù)結(jié)果是正例,哪些結(jié)果是負例。同時,通過樣本數(shù)據(jù)跑出分類型模型的結(jié)果,也可以指導(dǎo)模型對正例和負例進行分類,由此可以得到如下四個基礎(chǔ)指標(biāo):
真實值是正例,模型認為是正例的數(shù)量(True Positive=T P)
真實值是正例,模型認為是負例的數(shù)量(False Negative=F N)
真實值是負例,模型認為是正例的數(shù)量(False Positive=FP)
真實值是負例,模型認為是負例的數(shù)量(True Negative=TN)
將以上四個基礎(chǔ)指標(biāo)構(gòu)造如下混淆矩陣表。
表2 混淆矩陣表
混淆矩陣的準(zhǔn)確率是一個二級指標(biāo),其通過統(tǒng)計正例與反例的數(shù)量衡量整個聚類模型質(zhì)量的好壞,而為了進一步度量聚類模型識別家庭經(jīng)濟困難學(xué)生的精確度,需要引入混淆矩陣中另外兩個二級指標(biāo)——精確率(precision)和召回率(re?call)。
其中精確率針對預(yù)測結(jié)果而言,用來計算預(yù)測為正的樣本中有多少是真正的樣本,而召回率則是針對原來的樣本數(shù),表示樣本中有多少正例數(shù)被正確的預(yù)測到。
高校制定家庭經(jīng)濟困難學(xué)生資助體系的初衷,就是最大限度地照顧到所有家庭經(jīng)濟困難的學(xué)生,資助其順利完成學(xué)業(yè),因此,根據(jù)本文研究場景和目標(biāo),選擇召回率作為衡量家庭經(jīng)濟困難學(xué)生識別率的指標(biāo)更為合理。
混淆矩陣中,召回率計算公式如下:
將A高校學(xué)生處提供的真實的2018級數(shù)科院性別為男的家庭經(jīng)濟困難學(xué)生名單與前述聚類3中的數(shù)據(jù)放入到混淆矩陣,結(jié)果如表3所示。
表3 混淆矩陣表
根據(jù)上表中的數(shù)據(jù),通過簡單計算,該聚類模型的準(zhǔn)確率約為88.9%,而家庭經(jīng)濟困難學(xué)生識別率約為64.4%。
單從結(jié)果數(shù)據(jù)來看,該聚類模型與實際情況存在一定的差距,經(jīng)過對數(shù)據(jù)進一步分析發(fā)現(xiàn),原因主要有以下兩點:
(1)在學(xué)生處提供的62名家庭經(jīng)濟困難男學(xué)生名單中,有少部分同學(xué)因為2019年度使用一卡通消費的次數(shù)沒有達到年度必要消費次數(shù),而直接被模型過濾掉。
(2)在做數(shù)據(jù)對比的過程中,發(fā)現(xiàn)有些實際被評為家庭經(jīng)濟困難的學(xué)生,并不屬于模型中的貧困類,甚至這類學(xué)生的消費水平還比較高;而有些在模型中屬于貧困類的學(xué)生,實際并沒有被評定為家庭經(jīng)濟困難學(xué)生。這在很大程度上說明,當(dāng)前實際工作中對家庭經(jīng)濟困難學(xué)生的認定方法和流程客觀上存在一定的問題,而這也恰恰說明本文使用的聚類模型具有一定的合理性與實用性。
總體來看,本文采用的一卡通消費特征數(shù)據(jù)和聚類模型具有一定的識別率和準(zhǔn)確性,能對應(yīng)用型本科院校的家庭經(jīng)濟困難學(xué)生認定提供一些的決策支持,為更好的發(fā)放家庭經(jīng)濟困難學(xué)生補助提供理論依據(jù)。
當(dāng)然,由于學(xué)校各種場所的支付方式不僅僅支持校園一卡通支付,還包括其他移動支付方式,而這些支付方式并沒有接入信息中心的數(shù)據(jù)庫,因此會導(dǎo)致一定數(shù)量的實際數(shù)據(jù)丟失,從而導(dǎo)致模型的計算結(jié)果與實際情況存在一定的偏差。
在今后的研究中,如果能夠?qū)@些移動支付數(shù)據(jù)進行接入并加以采集并使用更優(yōu)的方法,相信能夠取得更好的結(jié)果。