謝曉敏
(川北幼兒師范高等??茖W(xué)校 初等教育系,四川 廣元 628017)
中藥是成分復(fù)雜的混合物,其品質(zhì)鑒別與質(zhì)量控制一直是科研和實踐領(lǐng)域關(guān)注的重點。產(chǎn)地是中藥材道地性的主要指標,對于藥材品質(zhì)鑒別尤為重要。相比較而言,利用紅外光譜技術(shù)進行中藥材品質(zhì)鑒別更直接、快速,也更準確[1]。由于不同中藥材表現(xiàn)的光譜特征差異較大,即使來自不同產(chǎn)地的同一藥材,因其無機元素的化學(xué)成分、有機物等存在差異性,在近紅外、中紅外光譜的照射下,也會表現(xiàn)出不同特征,因此可利用這些特征鑒別中藥材的種類及產(chǎn)地。不同種類中藥材呈現(xiàn)的光譜區(qū)別較明顯,故中藥材種類鑒別相對比較容易。然而,不同產(chǎn)地的同一藥材在同一波段內(nèi)光譜較接近,使光譜鑒別誤差增大,而有些中藥材近紅外光譜區(qū)別較明顯,有些則中紅外光譜區(qū)別較明顯,故分析、提取紅外光譜特征顯得尤為重要。
數(shù)據(jù)來源于2021年高教社杯全國大學(xué)生數(shù)學(xué)建模競賽E題附件2、3、4,且假設(shè)所獲數(shù)據(jù)真實有效,未受空氣濕度、光照強度等因素干擾。
問題一:附件2給出了673個藥材從551到3 998連續(xù)3 448個波數(shù)的中紅外吸光度信息,已知其中658個藥材來源于11個產(chǎn)地,15個藥材產(chǎn)地信息未知,需要根據(jù)已知判別其產(chǎn)地。
問題二:附件3給出了255個藥材從552到3 999連續(xù)3 498個波數(shù)的中紅外及從4 004到10 000連續(xù)5 996個波數(shù)的近紅外吸光度信息,已知其中245個藥材來源于17個產(chǎn)地,10個藥材產(chǎn)地信息未知,需要根據(jù)已知判別其產(chǎn)地。
問題三:附件4給出了399個藥材從4 004到10 000連續(xù)5 996個波數(shù)的近紅外吸光度信息,其中:A類藥材97個,B類藥材102個,C類藥材57個,143個藥材未知類別,需要根據(jù)已知判別其類別;349個藥材來源于16個產(chǎn)地,50個藥材產(chǎn)地信息未知,需要根據(jù)已知判別產(chǎn)地,將所給編號藥材的類別與產(chǎn)地鑒別結(jié)果填入表格。
上述三個問題都需要充分挖掘已知信息,剔除信息量較少的數(shù)據(jù),降低原始數(shù)據(jù)維數(shù),掌握不同產(chǎn)地和種類藥材的特征及其差異性,選擇恰當?shù)呐袆e方法,最終正確鑒別出未知產(chǎn)地及類別,并交叉驗證其判別法的正確率及所用判別法的優(yōu)劣。
以附件2為例,說明對原始數(shù)據(jù)所使用的降維處理方法。
在Excel中利用STDEV函數(shù)對附件2數(shù)據(jù)計算每個波數(shù)下吸光度的標準差,一些波數(shù)的標準差完全相等,認為這些波數(shù)貢獻了相同的吸光度信息,可在Excel中利用刪除重復(fù)項功能,除去標準差重復(fù)的波數(shù),保留標準差不相同的波數(shù),可將已知數(shù)據(jù)從3 448列降至1 789列。雖然剩余波數(shù)的標準差不同,但很多仍接近,因此,對所剩波數(shù)的標準差保留3位小數(shù),再次使用刪除重復(fù)項操作,將1 789列數(shù)據(jù)降至181列。
隨機選取11個產(chǎn)地中的任一藥材進行數(shù)據(jù)處理并對比,結(jié)果見圖1。
圖1 方法一數(shù)據(jù)處理前后圖像對比
觀察圖1(a)發(fā)現(xiàn),11個產(chǎn)地藥材的光譜趨勢大體一致,但各藥材的最大吸光度、峰高、峰寬、峰差不同。對比圖1(a)(b)可看出,數(shù)據(jù)預(yù)處理后不同產(chǎn)地的圖像間區(qū)別更明顯,更容易辨別出產(chǎn)地,表明數(shù)據(jù)預(yù)處理方法有效。
對附件2中每i個連續(xù)波數(shù)的吸光度求平均值,最后不足i的剩余波數(shù)也同樣求均值,以此降低數(shù)據(jù)的維數(shù)。維數(shù)Vi計算公式為
當i=10、15、20、25、30時,原始數(shù)據(jù)維數(shù)將由3 448分別降至345、230、173、138和115。選擇和圖1相同編號的中藥材降維數(shù)據(jù)繪制圖像如圖2所示。
從圖2可看出,數(shù)據(jù)預(yù)處理后圖像的走勢和原始數(shù)據(jù)一致,可見此數(shù)據(jù)預(yù)處理方法最大限度保留了原始數(shù)據(jù)的單調(diào)性特征。
圖2 方法二數(shù)據(jù)預(yù)處理后連續(xù)i個波數(shù)對應(yīng)的平均吸光度
方法一、方法二均可對原始數(shù)據(jù)簡單降維,降維后還可進行一階導(dǎo)數(shù)和二階導(dǎo)數(shù)運算,通過求導(dǎo)可突出譜線的變化部分,消除各譜線基線不同帶來的影響[2]。
3.1.1 樣本均衡性分析
為防止出現(xiàn)過擬合現(xiàn)象,需對樣本的均衡性進行分析。附件2中658個已知產(chǎn)地信息的藥材產(chǎn)地分布情況統(tǒng)計如表1。
表1 11個產(chǎn)地的藥材數(shù)量
從表1可看出,每個產(chǎn)地的樣本數(shù)相差不大,可以不考慮對樣本數(shù)進行統(tǒng)一。
3.1.2 判別分析綜述
判別分析是對未知類別樣本進行歸類的一種方法。判別分析的研究對象已有了分類,只需根據(jù)抽樣樣本建立判別公式和判別準則,然后判別樣品類別。用數(shù)學(xué)語言表達為:設(shè)有n個樣本,每個樣本測量p項指標,已知每個樣本屬于k個類別(或總體)G1,G2,…,Gk的某一類,分布函數(shù)為F1(x),F(xiàn)2(x),…,F(xiàn)k(x),找到一種判別函數(shù),使得這一函數(shù)具有某種最優(yōu)性質(zhì),能把屬于不同類別的樣本點盡可能區(qū)分開,并對同樣測得p項指標的新樣本進行分類。
判別分析的主要方法有距離判別法、Fisher判別法、Bayes判別法和逐步判別法。
3.1.3 線性判別模式
設(shè)有k個總體G1,G2,…Gk,其均值和協(xié)方差矩陣分別為μ1,μ2,…μk和∑1,∑2,…∑k,而且∑1=∑2=…=∑k=∑。
假定Gi~Np(μi,∑),i=1,2,…,k,即各組的先驗分布均為協(xié)方差矩陣相同的p元正態(tài)分布。對于一個新的樣品X,要判斷其來自哪個總體。
運用貝葉斯判別法思路,先計算k個總體按先驗分布加權(quán)的誤判平均損失hj(x),
其中:f(ix),i=1,2,…,k為每一個總體Gi的分布密度函數(shù);來自總體Gi的樣品被錯判為來自總體G(ji,j=1,2,…,k)時所造成的損失記為且為樣品來自總體Gi的先驗概率。
然后,再比較這k個誤判平均損失h1(x),h2(x),…,hk(x)的大小,選取其中最小的,判定樣品X來自該總體。
3.1.4 判別方法選擇
調(diào)用MATLAB統(tǒng)計工具箱提供的classify函數(shù),可進行先驗分布為正態(tài)分布的貝葉斯判別,調(diào)用格式如下:
其中:type參數(shù)選擇 “l(fā)inear” 線性判別模式;sample是帶判別的樣本數(shù)據(jù);trainning是已知分類結(jié)果的樣本數(shù)據(jù)矩陣,用于構(gòu)造判別函數(shù),其每一行對應(yīng)一個觀察,每一列對應(yīng)一個變量;sample和training具有相同的列數(shù);參數(shù)group是與training相應(yīng)的分組變量,group和training具有相同的行數(shù),group中的每個元素指定了training中相應(yīng)的觀測值所在的組。
3.1.5 交叉驗證
數(shù)據(jù)處理和判別方法的選擇有效性直接決定了判別結(jié)果的正確率,為了證明判別的優(yōu)劣,需進行交叉驗證。
本文采用留一法進行交叉驗證[3]。留一法是機器學(xué)習(xí)中對學(xué)習(xí)器進行評估的一種方法,屬于交叉驗證法的一個特例。假定數(shù)據(jù)D中有m個樣本,分成m個小數(shù)據(jù)集,即每個樣本都是一個數(shù)據(jù)集,每次使用其中一個作為測試集,其余m-1個為訓(xùn)練集,重復(fù)檢驗m次,統(tǒng)計被錯分的樣本數(shù)k,最后用k/m作為錯誤率的估計值,則正確率的估計值為1-k/m。此法使用的訓(xùn)練集與初始數(shù)據(jù)集相比只少了一個樣本,在絕大多數(shù)情況下,留一法中被實際評估的模型與期望評估的D訓(xùn)練所得的模型很相似。因此,留一法評估結(jié)果往往比較準確。但留一法最大的缺陷在于,數(shù)據(jù)集較大時,訓(xùn)練m個模型的計算量可能很大。本文數(shù)據(jù)集并不大,故交叉驗證選擇留一法可行,能取得較好結(jié)果。
運用方法一處理數(shù)據(jù)不求導(dǎo)、求一階導(dǎo)、求二階導(dǎo)后,用留一法交叉驗證計算所得準確率分別為98.02%、97.87%、98.02%。未知產(chǎn)地信息的判別情況均相同,如表2所示。
表2 附件2未知產(chǎn)地編號藥材的產(chǎn)地判別信息
運用方法二處理數(shù)據(jù)后,無論求一階還是二階導(dǎo),都不能提高判別的準確率,因此,直接運用降維后的數(shù)據(jù)來判別。用留一法交叉驗證計算準確率,當i=10、15、20、25、30時,準確率分別為98.18%、98.02%、97.26%、97.57%、96.96%。無論i取何值,未知產(chǎn)地信息的判別情況均相同,且與方法一表2中判別結(jié)果一致。
3.1.6 性能評價
(1)運用方法一處理數(shù)據(jù)不求導(dǎo)和求二階導(dǎo)后,判別的準確率相同,其中658個藥材有13個判別錯誤,其余全部判斷正確。判別錯誤的藥材編號一樣,且判別錯誤的產(chǎn)地也相同,如表3所示。
表3 判別分析錯誤情況表
對11個產(chǎn)地的判別準確率分析,結(jié)果見表4。由表4可見,判別準確率最低為94%,2、4、5號產(chǎn)地全部判別正確,綜合判別準確率為98%。因此,表2中對未知產(chǎn)地的判別結(jié)果準確可靠。
表4 各產(chǎn)地的評價指標
(2)運用方法二處理后數(shù)據(jù)不求導(dǎo),當i=10時,交叉驗證的準確率最高,總計658個藥材中12個判別錯誤,其余全部判斷正確。判別錯誤的情況如表5所示。
表5 i=10時判別錯誤情況
對11個產(chǎn)地的判別準確率分析結(jié)果如表6。由表6可見,判別準確率最低為95%,5、9、11號產(chǎn)地全部判別正確,綜合判別準確率為98%。因此,表2中對未知產(chǎn)地的判別結(jié)果是準確可靠的。
表6 各產(chǎn)地的評價指標
附件3中有中紅外、近紅外兩種光譜信息,先用近紅外,再用中紅外,最后將近紅外和中紅外兩種光譜結(jié)合起來進行判別分析[4]。
3.2.1 樣本均衡性分析
17個產(chǎn)地藥材數(shù)量信息如表7。從表7可看出,每個產(chǎn)地的樣本數(shù)相差不大,可不考慮對樣本數(shù)進行統(tǒng)一處理[5]。
表7 17個產(chǎn)地的藥材數(shù)量信息
判別和交叉驗證方法與3.1相同。
3.2.2 結(jié)果分析與性能評價
運用方法一處理近紅外數(shù)據(jù),將數(shù)據(jù)降至215維,不求導(dǎo)、求一階導(dǎo)、求二階導(dǎo)后進行留一法交叉驗證,計算的準確率分別為68.57%、69.80%、71.02%,表明判斷正確率較低。
運用方法一處理中紅外數(shù)據(jù),將數(shù)據(jù)降至86維,求二階導(dǎo)后留一法交叉驗證,計算的準確率為97.14%,判斷正確率較為理想。
運用方法一將近紅外數(shù)據(jù)降至25維,與中紅外數(shù)據(jù)86維合并成111維,求二階導(dǎo)并交叉驗證,計算準確率達98.37%。
各產(chǎn)地的評價指標見表8,通過對17個產(chǎn)地的判別準確率分析,發(fā)現(xiàn)2、3、10、17號產(chǎn)地的判別準確率為93%,其余全部判別正確(準確率為100%),綜合判別準確率為98%,可見此法可用于判別未知產(chǎn)地。
表8 各產(chǎn)地的評價指標
針對近紅外光譜數(shù)據(jù),i分別取50、55和60,運用方法二處理后數(shù)據(jù)不求導(dǎo),交叉驗證準確率分別為97.14%、97.55%和96.73%。
針對中紅外光譜數(shù)據(jù),i分別取20、25和30處理后數(shù)據(jù)不求導(dǎo),交叉驗證準確率分別為97.96%、98.37%和97.96%。
將附件中近紅外和中紅外數(shù)據(jù)僅作合并處理,i分別取80、90、95和100,數(shù)據(jù)不求導(dǎo),交叉驗證準確率分別為97.55%、97.96%、97.55%、97.96%和97.55%。
綜上所述,無論運用方法一還是方法二,最終附件3中未知產(chǎn)地編號藥材的產(chǎn)地判別情況如表9。
表9 附件3未知產(chǎn)地編號藥材的產(chǎn)地判別信息
相比較而言,藥材的類別容易判斷,故可先判斷類別再判別產(chǎn)地。
3.3.1 判別藥材的類別
首先,對已知類別藥材數(shù)據(jù)信息進行統(tǒng)計,如表10所示。
表10 3種類別藥材數(shù)量信息
運用方法一處理數(shù)據(jù),對標準差保留3位有效數(shù)字,然后刪除重復(fù)項,把數(shù)據(jù)從5 996維降到97維。不求導(dǎo)、求一階導(dǎo)、求二階導(dǎo)后判別,再用留一法交叉驗證,計算的準確率均達100%,且對未知類別藥材的判別結(jié)果均一樣,因此,可采用此法對未知類別的藥材進行類別判別。
運用方法二處理數(shù)據(jù),當i分別取30、40、50、60時,判別后用留一法交叉驗證,計算準確率均為100%,且對未知類別藥材的判別結(jié)果均相同,與方法一的判別結(jié)果也完全一致,即未知類別的藥材判別準確率能達100%。
3.3.2 判別藥材的產(chǎn)地
首先,對已知產(chǎn)地的藥材數(shù)據(jù)信息進行統(tǒng)計,如表11所示,其中已知總計349,未知50。
表11 16個產(chǎn)地的藥材數(shù)量信息
運用方法一處理近紅外數(shù)據(jù),將數(shù)據(jù)降至97維,不求導(dǎo)、求一階導(dǎo)、求二階導(dǎo)后,留一法交叉驗證,計算準確率分別為84.53%、85.39%、84.81%,判斷正確率較低。
運用方法二處理數(shù)據(jù),當i分別取50、60、70、80、90時,判別后用留一法交叉驗證,計算準確率分別為91.4%、92.26%、92.84%、94.27%、94.27%。對未知產(chǎn)地藥材的判別結(jié)果一致,且與方法一的判別結(jié)果也完全相同。
顯然,運用方法二處理數(shù)據(jù)所得結(jié)果判別更為準確,效果更優(yōu)。未知50個編號產(chǎn)地藥材判斷結(jié)果最多有4個不同,i為80和90時,只有2個判斷結(jié)果不同。
以i=90為例,對各產(chǎn)地判斷情況進行分析,結(jié)果如表12。無論采用何種方式處理數(shù)據(jù),最終求得所給出編號的藥材類別與產(chǎn)地的鑒別結(jié)果都相同,如表13所示。
表12 各產(chǎn)地的評價指標
表13 給出編號的藥材類別與產(chǎn)地鑒別結(jié)果
從上述研究可看出,利用紅外光譜分析法鑒別中藥材的種類和產(chǎn)地,判斷較為準確,效果較好。