張嵐斌,徐國慶,李 瀾
(1.武漢工程大學計算機科學與工程學院,湖北 武漢 430205;2.湖北省博物館,湖北 武漢 430077)
隨著現代檢測技術的逐步完善,以及檢測儀器精度的不斷提升,漆器漆膜分析領域積累了大量漆器檢測數據[1]。目前將考古學與機器學習相結合已成為學者們的關注熱點,如公雪霜等[2]利用決策樹分類算法評定遼寧西部地區先秦遺址規模,為考古學聚落形態研究提供了一種新的技術手段,不過該算法誤差因素太多,比較依賴數據的完整性;李鵬飛[3]分別使用決策樹和支持向量機分類方法對良渚文化時期墓葬主人的社會等級進行分類預測,發現支持向量機方法準確率更高,但容易出現過擬合問題。大量案例表明,機器學習算法在考古學領域效果明顯,而針對漆器漆膜數據的研究隨著數據的逐漸完備也開始得到研究者們的廣泛關注。
目前各地出土的漆器類型、年代、數量等分布不均,導致漆器檢測數據類間不平衡。在不平衡數據分類研究領域,數據類間不平衡、缺失數據較多等問題極大地影響了機器學習算法性能[4-5]。為此,相關學者從數據預處理、特征選擇及分類算法3 個層面出發,提出一系列解決辦法,而本文主要針對數據預處理進行研究[6-7]。
在數據預處理層面,通過數據處理改變數據結構,最具代表性的是通過一系列重采樣方法改變樣本訓練集的類別分布,從而降低樣本數據的不平衡性。根據采樣方式的不同,主要分為欠采樣以及過采樣方法[8]。欠采樣方法通過刪除多數類樣本使樣本數據達到平衡,以提高少數類樣本的分類性能。如方昊等[9]針對單次隨機欠采樣容易出現誤差的問題,提出多次隨機欠采樣方法以減小誤差,有效解決了在軟件缺陷檢測中因數據不平衡造成的分類誤差大的問題。隨機欠采樣是一種操作簡單的欠采樣方法,但是隨機舍棄多數類樣本數據可能導致多數類樣本信息丟失的風險,從而影響分類器性能。與欠采樣相反,過采樣方法則是通過增加少數類樣本數量使之達到平衡,以提高少數類的分類準確率。其中,Chawla 等[10]以隨機向上抽樣為核心思想提出的SMOTE(Synthetic Minority Oversam?pling Technique,SMOTE)算法最為經典,該算法通過人為生成少數類樣本,使數據集中少數類樣本與多數類樣本數量比例趨于平衡,并將新合成的少數類數據集與原始數據集進行組合。然而,該算法對于插入的少數類樣本選擇全部保留,少數類人工樣本都是通過隨機插值合成的,并不是所有少數類樣本都是有益的,因此會產生部分噪聲數據[11]。
針對上述問題,本文通過SMOTE 算法對少數類進行過采樣,并提出一種改進SMOTE 的過采樣算法,篩選有利于數據分類的人工樣本,去除噪聲數據,然后結合集成學習[12-13]隨機森林算法完成數據分類任務,解決了不平衡漆器數據分類中少數類準確率較低的問題,提高了算法分類性能。
本課題擬以戰國早、中、晚期湖北不同地區、不同墓葬出土的漆木器為研究對象,以曾侯乙墓、包山二號墓、九連墩二號墓出土的漆木器為重點,綜合運用理化分析和比較研究等手段,針對漆膜分層結構與組成成分、漆膜厚度、各種顏料成分及粘合劑等進行分析研究。所有漆器樣品均來自湖北省博物館館藏,部分漆器樣本如圖1 所示。
通過掃描電鏡、能譜儀、激光顯微鏡等微區分析手段對戰國漆器漆膜不同結構層的成分和物像進行原位分析是目前常用的儀器分析方法。表1 為部分戰國漆器漆膜能譜儀(Energy Dispersive Spectrometer,EDS)分析數據,這些數據來自曾侯乙墓、包山二號墓、九連墩二號墓等湖北地區出土的喪葬用具、生活用具、樂器、兵器、車馬器和甲胄6 類漆器。戰國漆器漆膜數據包括戰國早期、中晚期和晚期3 個時期的數據,實驗對各時期漆器漆膜數據特征進行分析。

Fig.1 Lacquer sample圖1 漆器樣本

Table 1 Analysis data of some Warring States lacquerware films by energy dispersive spectrometer表1 部分戰國漆器漆膜能譜儀分析數據
傳統分類算法常采用準確率作為衡量算法有效性的指標,但準確率對于不平衡數據集而言,不能準確衡量少數類的精度。為更好地評估分類器性能,通常采用基于混淆矩陣的其它指標進行綜合考量[14]。混淆矩陣如表2 所示。

Table 2 Confusion matrix表2 混淆矩陣
準確率如式(1)所示,還有一些其它指標如precision表示精確率,用于衡量預測為正類中真正正類的概率,如式(2)所示;recall 表示召回率,用于衡量在正類中正類預測正確的概率,如式(3)所示;F1-score 是precision 與recall的調和平均數,是對兩者進行綜合考量的一個評價指標,如式(4)所示[15]。AUC 是ROC 曲線下的面積,可以較好地對不平衡分類算法進行評價[15]。

隨機森林分類模型是由多個決策樹{H(X,θk),k=1,2,...,K}所集成的,其中k是決策樹個數,{θk} 是相互獨立的隨機向量。通過隨機生成樣本訓練集分配到決策樹上進行獨立處理,直到所有樹停止生長,將所有結果集成到一個集合并公平地進行投票,票數最多的類別為最終輸出結果,該過程采用了集成學習中的Bagging(Bootstrap aggre?gating)思想[16]。采用最簡單的投票規則,輸入變量x 的最終分類結果如式(5)所示。

式中,hi(x)為單個決策樹模型,y為對應類別,I(?)為示性函數(值為1 或0),H(x)為組合分類器模型,argmax函數表示括號中表達式取最大值時x、y的取值。
泛化誤差是指機器學習模型通過訓練集訓練后,在任意測試樣本集上表現出的誤差期望值。根據Leo Breiman的定義,隨機森林模型泛化誤差PE*如式(6)所示。

泛化誤差PE*反映了通過訓練模型構建的集成分類器對測試樣本正確分類的能力,泛化誤差越小,表明該模型分類性能越好[17]。
SMOTE 算法是經典的啟發式采樣算法[18-19],是用于合成少數類樣本的過采樣技術。它其實是隨機過采樣算法的一種改進算法,通過隨機過采樣增加少數類樣本的方法只是通過簡單復制樣本,雖然操作簡單,但會使模型學習到的信息過于特別而不夠泛化,而SMOTE 算法是通過少數類樣本在特征空間的相似性合成少數類樣本。
設原始數據集為S,少數類樣本集為X(X∈S),樣本數目為xnum,SMOTE 算法具體流程如下:
(1)對于每一個少數類樣本,在少數類樣本集X 中找出該樣本的k 個最近鄰。
(2)從k 個最近鄰樣本中隨機選擇n 個樣本xj(j=1,2,...n),然后對每一個樣本按照式(7)合成新的少數類樣本。

其中,rand(0,1)表示產生一個0~1 的隨機數。
(3)重復步驟(2),直到插入的少數類使新數據達到平衡。新合成的少數類數據集與原始數據集構成平衡數據集S'。
借鑒Relief 特征選擇算法思想[20-21],Relief 算法是通過計算在特征上樣本與同類最近鄰及異類最近鄰的歐氏距離,然后對比歐氏距離進行特征選擇;RSMOTE 算法則是比較插入樣本與少數類中k 個最近鄰樣本的歐氏距離之和的平均值,以及每個少數類樣本與其它少數類中k 個最近鄰樣本平均歐氏距離之和的平均值。設原始數據集為S,少數類樣本集為X(X∈S),樣本數目為xnum,RSMOTE 算法具體流程如下:
(1)計算少數類數據集中每個樣本xi(i=1,2,...xnum)與k 個同類最近鄰樣本的平均歐氏距離Dx(xi),累加后除以總樣本數xnum,得到少數類樣本之間的平均歐氏距離Dxx,表達式如下:

(2)使用SMOTE 算法合成少數類樣本時,計算新合成的樣本xnew與k 個同類最近鄰樣本的平均歐氏距離Dnewx,對比Dnewx與Dxx,計算距離比。當μ≤1 時,說明新合成的樣本在少數類樣本密集區;當μ>1 時,說明Dnewx比較大,可能該樣本距離少數類樣本稍遠,也可能該樣本就在多數類樣本密集區,因此將該樣本剔除。
(3)重復步驟(2)的歐氏距離判定過程,直到數據集達到平衡。
本章所用實驗數據選自UCI 公開數據庫中的3 個不平衡數據集(glass、diabetes、blood),以及不平衡漆器漆膜數據集(qiqi_data)。針對有多個類別的數據集,將其轉化為只有少數類和多數類的二類數據集。
為驗證模型的有效性,本文利用分層隨機劃分方法,確保訓練集與測試集的樣本不平衡率一致,并采用80% 的訓練集、20% 的測試集進行實驗。由于訓練集與測試集劃分以及各采樣算法過程存在一定隨機性,為充分驗證不同算法分類效果,所有分類指標計算結果均為循環10 次求得的平均值。
本實驗首先對3 個不平衡UCI 公開數據集采用SMOTE、RSMOTE 算法進行過采樣,為保證采樣結果的可比性,分別使用RF、SMOTE+RF(SRF)、RSMOTE+RF(RSRF)進行實驗,通過對比驗證改進過采樣RSMOTE 算法的有效性,最后對不平衡漆器漆膜數據進行分類。
近鄰參數k 是RSMOTE 過采樣算法的關鍵參數,對3個UCI 數據集分別在不同k 值下計算分類方法的最優F1-score 與最優AUC 值,然后取3 個數據集F1-score 與AUC的均值,如圖2 所示。從圖中可以看出,當k 值為5 時,F1-score 與AUC 的值最優。因此,為了增強算法的可對比性,將幾種分類算法的近鄰參數k 均設為5。

Fig.2 Average F1 score and average AUC under different K values圖2 不同k 值平均F1-score 與AUC
對3 個數據集分別進行不采樣、SMOTE 過采樣以及RSMOTE 過采樣,之后使用RF 算法、SRF 算法以及RSRF算法進行數據分類,分別比較F1-score 與AUC 值,結果如表3 所示。相比另外兩種算法,改進算法在diabetes 數據集上F1-score 與AUC 值的提升不是很明顯,但在其它數據集上,F1-score 與AUC 值均有明顯提升。

Table 3 Comparison of results under different sampling methods表3 不同采樣方法F1-socre 與AUC 值對比
上述實驗驗證了改進RSMOTE 算法比原算法具有更好的性能,將該方法運用于古漆器年代判別中,首先通過RSMOTE 算法進行數據預處理,然后對幾種機器學習算法進行對比實驗,結果如表4 所示。
由表4 可見,隨機森林算法兩個指標都很高,進一步證明了數據預處理結合集成學習算法能夠有效解決數據不平衡問題。

Table 4 Comparison of experimental results of age determination of ancient lacquerware表4 不同算法古漆器年代判別結果對比
針對古漆器漆膜數據類別不平衡、樣本規模小等問題,結合數據預處理與集成學習算法,提出一種改進的SMOTE 過采樣算法,并運用隨機森林算法進行分類,建立了漆器能譜分析數據與漆器年代的內在映射關系。針對不同采樣方法進行對比實驗,結果表明,本文算法的F1-score 與AUC 值均有明顯提升。但該方法也存在一些不足,本文主要研究古漆器年代判別并對漆器能譜特征進行分類,而地域特征也可能會對能譜特征造成一定影響,接下來將考慮融合漆器的地域特征進行研究。另外,針對古漆器漆膜數據的其它應用,如漆器類型分類、漆器漆膜各組成成分關聯分析等也有一定的研究價值。