田波 沈江明 張德鑫 曾志勇
(1.中國電信股份有限公司云南分公司 云南省昆明市 650000)
(2.云南省高校數(shù)據(jù)化運營管理工程研究中心 云南省昆明市 650000 3.云南財經(jīng)大學(xué)統(tǒng)計與數(shù)學(xué)學(xué)院 云南省昆明市 650000)
(4.云南財經(jīng)大學(xué)信息學(xué)院 云南省昆明市 650000)
SMOTE 過采樣技術(shù)是由Chawle[4][3]和他的團隊率先提出,該技術(shù)是通過在兩個少數(shù)類樣本之間隨機選擇一個新樣本作為少數(shù)類樣本,以此循環(huán)往復(fù),通過這種人工合成新樣本的方式不斷擴充少數(shù)類樣本的數(shù)量,直至樣本數(shù)據(jù)平衡為止。
ENN 欠采樣屬于一種將多數(shù)類樣本進行刪減,使得原本的多數(shù)類樣本和少數(shù)類樣本在數(shù)量上盡可能的保持一定的平衡的欠采樣方法,它主要對于其中的多數(shù)類選定樣本,通過觀察該樣本附近k個近鄰點,如果附近的k 個近鄰樣本中有超過一半的樣本和該樣本不屬于同一個類別,那么就將該樣本進行相應(yīng)的剔除。
隨機森林算法是集成方法bagging 流派中的典型代表,該算法將原始數(shù)據(jù)集通過有放回抽樣的方式對數(shù)據(jù)集進行擴充,通過多個決策樹并行運算,輸出各自的預(yù)測值,然后通過投票選擇法,少數(shù)服從多數(shù)的原則,確定最后的輸出結(jié)果。
Catboost 采用特殊的方式處理類別型特征,首先對類別特征做一些統(tǒng)計,計算某個類別特征出現(xiàn)的頻率,之后加上超參數(shù),生成新的數(shù)值型特征。Catboost 還使用了組合類別特征,可以利用到特征之間的聯(lián)系,而且基模型采用的是對稱樹,同時計算葉子結(jié)點方式和傳統(tǒng)的boosting 算法通過平均值的計算方式也不一樣,由于在這方面做了優(yōu)化,而這些改進都能防止模型過擬合。
關(guān)于分類問題的研究,本文將整體分類率、查準(zhǔn)率、召回率、f1-度量和auc 值作為模型分類效果的評價指標(biāo)。
如表1所示,根據(jù)混淆矩陣可以得到以下指標(biāo),準(zhǔn)確率度量的是所有預(yù)測樣本當(dāng)中預(yù)測正確的比例,但是在面對不平衡數(shù)據(jù)集的時候,準(zhǔn)確率作為最重要的評價指標(biāo)[6],就會缺乏合理性,計算公式Accuracy=(TP+TN)/(TP+FN+FP+TN)。查準(zhǔn)率主要度量所有預(yù)測為正類的樣本當(dāng)中,被判斷正確的一個比例值,計算公式Precision=TP/(TP+FP)。召回率主要度量正類樣本當(dāng)中會有多少是被預(yù)測為正類樣本的,在不平衡數(shù)據(jù)集當(dāng)中,該評價指標(biāo)更加關(guān)注的是對于少數(shù)類的預(yù)測準(zhǔn)確率,計算公式Recall=TP/(TP+FN)。F1-度量主要是針對查準(zhǔn)率和召回率的調(diào)和平均指標(biāo),通過F1-度量可以知道查準(zhǔn)率和召回率兩者的側(cè)重關(guān)系,具體的計算公式F1=2(Precision*Recall)/(Precision+Recall),針對不平衡數(shù)據(jù)集,F(xiàn)1-度量作為分類模型主要的評價指標(biāo),AUC 值是ROC 曲線下的面積值,用來評價分類學(xué)習(xí)器的模型泛化能力。
數(shù)據(jù)真實來自于醫(yī)院,主要有14 個特征字段,存在著不平衡的現(xiàn)象,少數(shù)類和多數(shù)類達到了2:8 的比例,如果直接進行模型訓(xùn)練和預(yù)測,那么即便模型不學(xué)習(xí),只要將結(jié)果全部預(yù)測為多數(shù)類,那么整體的準(zhǔn)確率也可以達到80%,但實際模型是不具備預(yù)測功能的。
通過對原始數(shù)據(jù)集進行一系列的數(shù)據(jù)預(yù)處理以及特征工程工作之后,為了測試訓(xùn)練模型的最終是否具有良好的預(yù)測效果,因此將已處理好的實驗數(shù)據(jù)集按照7:3 的比例劃分為訓(xùn)練數(shù)據(jù)集和測試數(shù)據(jù)集,訓(xùn)練數(shù)據(jù)集主要用于前期模型的訓(xùn)練學(xué)習(xí),本文通過SMOTEENN 采樣處理之后的數(shù)據(jù)集數(shù)量結(jié)果如表2所示。
通過上述結(jié)果可以看出,原始的訓(xùn)練數(shù)據(jù)集存在著不平衡現(xiàn)象,多數(shù)類和少數(shù)類的比列達到了大約4:1,經(jīng)過SMOTEENN 采樣處理之后,訓(xùn)練數(shù)據(jù)集的數(shù)量總量也由原來的77326 變成了110114,多數(shù)類和少數(shù)類的比例變得大致一樣。
3.1.1 隨機森林模型
由于隨機森林是集成方法當(dāng)中的優(yōu)良代表,本文就通過使用scikit-learn 庫中的隨機森林模型,將未經(jīng)采樣處理的訓(xùn)練數(shù)據(jù)集和經(jīng)過SMOTEENN 采樣處理的訓(xùn)練數(shù)據(jù)集通過隨機森林模型進行學(xué)習(xí)訓(xùn)練,然后將未知的測試數(shù)據(jù)集通過已經(jīng)學(xué)習(xí)好的隨機森林模型進行結(jié)果的預(yù)測,并輸出最后的評價指標(biāo)參數(shù),結(jié)果如表3所示。
結(jié)果顯示,precision(查準(zhǔn)率)達到了99%,recall(召回率)達到了93%,f1-score(f1-度量)達到了96%,而另類別1,也就是重點關(guān)注的少數(shù)類,precision(查準(zhǔn)率)達到了78%,recall(召回率)達到了95%,f1-score(f1-度量)達到了86%,而總體分類accuracy(精度)可達到94%,輸出AUC 值也達到了97%,說明該模型的泛化效果是比較優(yōu)秀的。
3.1.2 Catboost 模型
通過將經(jīng)過SMOTEENN 采樣處理的Catboost 算法結(jié)果如表4所示。
對于多數(shù)類類別0,precision(查準(zhǔn)率)達到了99%,recall(召回率)達到了93%,f1-score(f1-度量)達到了96%,而另一邊的類別1,也就是關(guān)注的少數(shù)類,它的precision(查準(zhǔn)率)達到了78%,recall(召回率)達到了95%,f1-score(f1-度量)達到了86%,最后的accuracy(精度)也可以達到93%,而總體的precision(查準(zhǔn)率)達到了77.68%,recall(召回率)達到了95.38%,f1-score(f1-度量)達到了85.62%,處理之后的效果相對來說也是最好的,輸出的AUC 值為99%,整體效果相比于隨機森林模型效果更好,說明了Catboost 在處理分類問題上的優(yōu)良性能。
表1:混淆矩陣
表2:SMOTEENN 采樣處理不平衡數(shù)據(jù)
表3:經(jīng)SMOTEENN 混合采樣處理的隨機森林模型結(jié)果
表4:經(jīng)SMOTEENN 采樣處理的Catboost 模型結(jié)果
表5:各自模型結(jié)果對比
經(jīng)過SMOTEENN 采樣之后可以大大提高對于關(guān)鍵的少數(shù)類樣本的識別率,并通過集成方法當(dāng)中的隨機森林和Catboost 算法進行對比分析,輸出結(jié)果如表5所示。
從上述結(jié)果可以看到,未經(jīng)采樣處理的隨機森林模型和Catboost 模型,這兩者對于少數(shù)類的識別率(recall)都比較低,而經(jīng)過SMOTEENN 采樣處理之后,模型對于少數(shù)類的識別率會有較大程度的提高,這說明了SMOTEENN 采樣對于提升少數(shù)類的識別率有很大的幫助,而且通過f1-score 指標(biāo)也可以看到,通過SMOTEENN 采樣處理之后的模型都高于未經(jīng)采樣處理的模型,而且Catboost 算法相比于隨機森林模型,f1-score 指標(biāo)最高,也說明能更好的平衡少數(shù)類的查準(zhǔn)率和召回率。并且從總體分類準(zhǔn)確率可以看到,經(jīng)過采樣處理的模型雖然相比于未經(jīng)采樣處理的模型會有所降低,但是少數(shù)類的識別率卻大大的提升,而且少數(shù)類往往是關(guān)注的重點信息,因而也是可以理解的。
綜上所述,對于不平衡數(shù)據(jù)集,SMOTEENN 采樣可以大大提升對于少數(shù)類的識別率。在分類算法的選擇上,新出的Catboost 算法相比于以往的傳統(tǒng)分類模型,分類的效果會更加優(yōu)秀,可以進一步提高對于少數(shù)類的識別率,降低少數(shù)類的誤判率,即減少關(guān)鍵信息的錯判。對于現(xiàn)實生活中的不平衡數(shù)據(jù)現(xiàn)象,具有很好的借鑒意義。