許思琦,謝健,林瀚,滕越
(廣東東軟學院,廣東佛山 528225)
在早期貿易來往的過程中,玻璃是其中最重要的流通物證之一。早期的玻璃常使用鉛礦石與草木灰等多項助熔劑進行研制,在煉制時使用的助熔劑不同將導致其燒制的玻璃化學成分不同,主要可以分為鉛鋇玻璃與鉀玻璃兩種,而鉛鋇玻璃通常認為是我國自主發明的玻璃品種[1]。
此外,由于古代煉制技術不夠發達,所以在埋藏地點極易受到環境的影響而導致風化,其內部元素將和環境元素進行大量的交換,使得對古代玻璃制品類型的鑒別工作難以進行。
①對這些玻璃文物的表面風化與其玻璃類型、紋飾和顏色的關系進行分析,結合玻璃的類型,分析文物樣品表面有無風化化學成分含量的統計規律,并根據風化點檢測數據,預測其風化前的化學成分含量。②對數據中未知類別玻璃文物的化學成分進行分析,鑒別其所屬類型,并對其分類結果的敏感性進行分析。
綜上,于是提出基本假設如下:①假設各玻璃文物在制造時相同特征的玻璃加工參數相同。②假設各玻璃文物各部位隨機采樣時的采樣面質地均勻。③假設各玻璃文物中檢測空白處的值趨近于0。④假設各玻璃文物顏色僅由有無風化及化學成分決定。
在本節中,需要研究各玻璃文物中各項屬性之間的關聯程度,利用附件表單1中的各項數據進行可視化處理。其中,由于數據項多為文本數據,于是考慮先對其進行文本向量化處理。在明確了玻璃文物之間的關聯程度后,依照兩種玻璃類型討論樣品表面有無風化對應的化學含量的變化,并設計預測模型研究風化文物風化前的化學成分含量。
1)利用獨熱編碼思想的文本向量化
①獨熱編碼規則
獨熱編碼(One-Hot)其根本思想為將各類文本數據進行劃分,以n維向量集對n個不同狀態進行編碼,而對應每一種狀態下的第n維向量應只有一位數據有效。以本題為例,對于58 個文物編號即有58 種組合關系,以文物編號01-03 為代表,于是利用獨熱編碼規則有:
對各類文物編號進行組合編碼如上所示,但考慮到各文物其對應的各項屬性應均不相同,所以對其中各項屬性進行分類,以紋飾、類型、顏色和表面風化為主屬性,將其中屬性項依照文物編號進行獨熱編碼。
②統計文本特征
考慮到數據表格中的各文物屬性對應的屬性項不同,所以需要對其中的屬性特征進行分類,將其不同的數據項進行提取。對應各屬性有如下屬性項:

表1 各文物屬性特征
對應上表,可以發現類型和表面風化可以分為兩類,紋飾分為三類。對應顏色特征,其中可能存在部分文物風化程度較高的原因從而使得玻璃顏色無法辨認,所以有顏色未知的情況,加上未知項,共有九類顏色特征。
③文本特征編碼規則
由上可以得知,對各文物的屬性項進行拆分后,有16 種不同屬性特征。此外,由于存在有58 種特征組合,所以對文本特征進行向量化后得到一個58×16的特征編碼矩陣。58 種組合中的一個行向量中包含的各數據名稱依次為紋飾屬性、類型屬性、顏色屬性和有無風化。于是,對任意的向量應有如下所示:
其中,對應各編碼含義如下表所示:

表2 各文物屬性特征編碼含義
如上,(ai1,…,ai3)為紋飾屬性,(ai4,ai5)為類型屬性,(ai5,…,ai14)為顏色屬性,(ai15,ai16)為表面風化屬性。其中,對任意的ain,其值為1 時,意味著在第i個文物編號下具有第n個屬性特征,反之則代表不具有對應特征。
2)編碼結果
綜上所述,對附件表單1中的文本數據進行編碼,考慮顏色類型可能由于風化程度的原因導致有部分數據為空,于是對應有其一個特征編碼。對所有的特征進行編碼后,矩陣onehot有如下所示:
3)對編碼結果的卡方檢驗
為保證各數據的有效性,需要對上述編碼結果進行卡方檢驗。研究上述各特征之間的相關關系,卡方值越小,即代表各特征之間的偏差程度較低,各編碼對風化的影響程度較高。于是,利用SPSS 對上述各編碼與風化之間進行卡方檢驗,對應有如下表格:

表3 各文物屬性特征卡方檢驗
4)logistic回歸分析
依據上述向量化的數據與卡方檢驗結果,需要考慮部分變量對于回歸可能無意義,且在相同類別的中國古代玻璃制品化學成分在風化前后可能發生改變,于是為研究各玻璃文物表面有無風化與其各項屬性的關系,可以設有無風化為一個“0-1”變量wi,即將玻璃文物之間的各項屬性與風化之間的關系轉化為一個二分類問題。
①分析過程
首先將上述經過編碼的文本數據導入Matlab 進行處理,為對其進行多元線性回歸分析,需要在首列插入一個全1列。隨后利用Matlab中的regress函數求得其對應的各項系數,并得到其殘差值。于是,可以得到如下多元線性回歸函數:
其中,β0為常數項,βl和xl分別為變量系數和解釋變量,ε則為誤差項。于是,考慮到logistics回歸模型的特性,設pi為第i組文物編號風化的可能性,結合上述函數有:
于是變換后對應有:
綜上,依據其文物編號風化的可能性表達,分別對整體數據,高鉀類型和鉛鋇類型進行logistics回歸分析。同時選擇其可能性的閾值為0.5,即pi在不同閾值對應的文物有無風化,所以設wi為第i組文物編號有無風化,于是有對應結果如下所述:
此外,對于高鉀類型和鉛鋇類型做logistics回歸分析時的向量集應提前剔除全0列。于是對上述得到的編碼矩陣進行數據清洗,其中保留各類類型對應編碼做對照實驗,若回歸結果對其不產生依賴,則代表回歸模型具有一定合理性。
②分析結果
將上述各項數據帶入分析過程中,可以得到其對應的相關系數及殘差項,其中對各項殘差做殘差分析有如下所述:

圖1 殘差分析圖
從上可以看出,在整體殘差分析中存在有3 個離群點,而對應高鉀及鉛鋇的殘差分析當中殘差狀態均較良好。其中對于整體殘差分析得離群點,其分別為文物編號33、37和41項。對附件表單1進行分析不難發現,其離群的原因為與33、37 屬性相同的34、35、38、39號數據均為風化,而其則為無風化;41號數據則對應有32 號,35 號數據與之對應有屬性相同但風化屬性不同。所以可以認為上述三點為離群點但不必剔除。綜上,有三組不同logistics回歸模型如下:
如上,對應整體的logistics回歸函數ponehot中,ε為隨機誤差項,βi依次為:0,1.0055,0.224,0.7923,0,0.3333,0.8705,0.6846,0.6202,0.5,0,1.0109,1.224,1.112。其中對應紋飾_A,類型_高鉀和顏色_綠屬性特征在回歸中沒有貢獻,即上述值不影響有無風化,可以選擇將其剔除。
上述為對應高鉀的logistics回歸函數pk。其βi依次為:-1.82×10-18,1,0,0,1.71×10-16,2.48×10-16,0,2.29×10-16。其中對應紋飾_C,類型_高鉀和顏色_深藍屬性特征在函數中不影響有無風化,在回歸時可以相應剔除。
此外,有對應鉛鋇的logistics回歸函數pPbBa如上。其βi值依次有:-0.2769,0,0,0.0564,0.6462,0.3897,0,0.2231,-0.2769,0.8154,1,0.8615。其中對應紋飾_C,類型_鉛鋇和顏色_深藍屬性特征不影響回歸函數的結果,故可以考慮剔除。
綜上可以發現,對各類型的回歸效果及無關因素均不相同,所以考慮對其實際效果進行驗證,其中ε為文物編號對應的殘差項。
③logistics回歸逆向驗證
對應上述三類回歸函數,為驗證表面風化與其相關因素關系的有效性,嘗試利用上述向量化后的特征矩陣onehot,對“高鉀”和“鉛鋇”屬性進行帶入,研究其結果是否對應表面風化情況,于是以pK為例,其中高鉀測試結果如下:

表4 高鉀測試結果
用“高鉀”表單帶入后結果如上所述,其中已按照logistic估計值大小進行排序。此外,以表面風化為原假設,對應原假設的logistic估計值大于0.5 的部分視為假設成立。可以看到,其中上述表格的結果中滿足預設閾值要求,以閾值為0.5 和0.7311 對測試結果進行區分,由于其為一個二分類的回歸模型,在其中logistic估計值較大的一方視為1,較小的一方則是為0,經由上述結果測試可知,該回歸函數擬合較好,測試集的準確率為100%。
5)預測風化前化學成分含量
對各風化文物的化學成分含量進行研究,依照上述得到的logistic回歸對文物表面采樣點進行測試,將采樣點未知風化的進行確定,并依照對應風化前后成分變化數據,求得該文物的風化化學成分含量轉化率,并基于此預測其在風化前的化學成分含量,其中由于數據量較大,所以此處以54號文物的化學成分預測為例,如下:

表5 54號文物風化前成分預測
此外,考慮到不同顏色對應的化學含量關系不同[2],對其附件的四個未知顏色的化學含量進行判別,經過判定后可知:文物編號19為深綠、文物編號40為紫色、文物編號48和58為淺綠。
在本節中,需要依附附件數據研究兩類玻璃的分類規律,并以各不同的化學成分對其進行亞類劃分,建立相應的劃分模型,設計相應算法求解劃分結果,并研究模型的靈敏度和合理性。
1)分類準備
為考慮研究不同玻璃對應的分類規律,需要分析高鉀與鉛鋇中分類特征。于是對高鉀玻璃及鉛鋇玻璃中鉀含量和鉛、鋇含量進行對照[3],基于此對其進行類別劃分,所以對附件表單2中的相關數據進行可視化,建立三維散點圖對其進行相關分析,具體圖像如下:

圖2 高鉀與鉛鋇的化學含量比較散點圖
上圖中,淺灰色“o”為鉛鋇類型對應的相關含量,深灰色“o”為高鉀類型對應的相關含量。可以看出,其中以原點為分割,其中相對含量較為明顯。此外,對于各類類型對應的化學含量可能存在缺失值,于是考慮建立決策樹分類模型對各玻璃類型進行明確劃分。
2)決策樹分類模型
由于玻璃的各項化學成分中,有部分數據為缺失值,若使用logistics回歸模型將無法較好的進行類型劃分。而對于機器學習的決策樹模型,由于其基于樹結構來進行決策,所以針對此類問題通常會進行一系列的判斷或子決策,最后綜合得出最終決策,即判斷玻璃的類別。最終結果應當對應的正確的判定結果。由于最終的結果為二分類,一棵決策樹包含一個根結點、若干個內部結點和若干個葉結點;葉結點對應于決策結果,其他每個結點則對應于一個屬性測試。由于數據屬性為不同化學成分的含量,決策結果對應玻璃類別。綜上,基于python的構建決策樹模型如圖3所示。

圖3 決策樹分類模型

圖4 深度2時決策樹分類結果占比示意

圖5 深度3(上),4(下)時決策樹分類結果占比示意
其中,Ka_Before和Pa-Ba_before分別為高鉀類與鉛鋇類風化前對應的類別,Ka_After和Pa-Ba_After則對應高鉀類與鉛鋇類風化后對應的類別。中間靠上的化學式則為當前需要判斷的決策變量,其與決策值進行判斷,若小于則通向左子樹,反之通向右子樹。
3)分類結果
其中,結合上述計算步驟,利用決策樹中得到的答案對于上述表6中的A1-A8玻璃文物進行分類,其依次均分別為高鉀類、鉛鋇類、鉛鋇類、鉛鋇類、鉛鋇類、高鉀類、高鉀類、鉛鋇類。

表6 分類測試集
4)敏感性分析
決策樹中的重要參數為樹的深度,在訓練時不斷更改樹的高度,并對比不同樹的深度時的分類情況。由于所選決策樹模型的分叉為二叉樹,因此,當樹的深度小于二時,無法將四個分類完全區分開。故敏感性分析從樹的深度為2開始討論。可以看到當深度為二時,預測未能將所有的類都分開,預測的準確度只有83.33%,其中具體圖像如下:
其中,當深度為3 時,其分類的出錯率為0.033,當深度為4時出錯率0.015,具體圖像如下:
依據上述不同深度對應的分類出錯率,最終經多次試驗后可以確定,當深度為5即以上時錯誤率維持在0%,其準確率隨深度的變化趨勢如圖6:

圖6 分類準確率隨樹深度變化示意圖
為了更好地對中國古代玻璃制品的風化前后成分進行分析,考慮研究各玻璃文物的化學成分含量的統計規律,并基于此預測風化前化學成分含量。隨后在上述成分分析的前提下,同時考慮到決策樹可能存在的過擬合情況,對決策樹在保證其準確率的前提下盡可能避免生成決策樹復雜。最終在實際判斷中國古代玻璃制品的類型時可以較高效率地完成區分。