楊友 丁躍武 包彩銀 李四海
甘肅中醫(yī)藥大學(xué) 信息工程學(xué)院 甘肅 蘭州 730000
光譜數(shù)據(jù)采集過程中由于光譜儀器本身特點、環(huán)境噪聲、樣本顆粒大小等原因,獲得的光譜數(shù)據(jù)必然存在一定程度的基線漂移、散射、噪聲等問題。數(shù)據(jù)預(yù)處理是通過一些數(shù)學(xué)方法抵消部分無效信息,凸顯構(gòu)建模型所需要的信息。一般選擇數(shù)據(jù)預(yù)處理方法需要結(jié)合最終構(gòu)建的模型效果,但當(dāng)了解了每種數(shù)據(jù)預(yù)處理方法的優(yōu)勢時,并結(jié)合數(shù)據(jù)特征,會更有方向性地對預(yù)處理方法進(jìn)行組合來嘗試,以選擇構(gòu)建模型效果好的預(yù)處理方法。常用的數(shù)據(jù)預(yù)處理方法有:多元散射校正、標(biāo)準(zhǔn)正態(tài)變量變換(SNV)、導(dǎo)數(shù)法、小波變換算法(CWT)、平滑處理、中心化、標(biāo)準(zhǔn)化。在Wheat kernels數(shù)據(jù)集上,使用導(dǎo)數(shù)法和SNV對數(shù)據(jù)進(jìn)行預(yù)處理,獲得了更好的實驗效果。
標(biāo)準(zhǔn)正態(tài)變量變換(standard normal variate transformation,SNV)可以削弱漫反射現(xiàn)象對光譜產(chǎn)生的影響,漫反射[1-3]一般由于固體顆粒大小不同、表面散射以及光程變化產(chǎn)生,SNV的公式與標(biāo)準(zhǔn)化公式相同,差異是標(biāo)準(zhǔn)化算法對一組光譜進(jìn)行處理(基于光譜數(shù)據(jù)矩陣的列),而SNV算法是對一條光譜進(jìn)行處理(基于光譜數(shù)據(jù)矩陣的行),SNV不需要考慮光譜數(shù)據(jù)集特征,操作簡單方便。SNV的光譜預(yù)處理公式如下:
導(dǎo)數(shù)法[4]是光譜數(shù)據(jù)基線校正常用方法,一階導(dǎo)數(shù)法可以削弱常數(shù)基線的影響,二階導(dǎo)數(shù)法可以削弱一次函數(shù)基線的影響,三階導(dǎo)數(shù)法可以削弱二次函數(shù)基線的影響。光譜數(shù)據(jù)求導(dǎo)法對復(fù)雜的基線漂移即使不能完全消除,也必然在一定程度上削弱其影響。光譜導(dǎo)數(shù)法的另一個優(yōu)勢是可以提高光譜分辨率。1個峰的一階導(dǎo)數(shù)有2個峰,二階導(dǎo)數(shù)有3個峰,使得重疊峰分開程度變大,可以有效降低光譜的基線干擾,對建模有利。但光譜導(dǎo)數(shù)法也會放大噪聲,降低光譜信噪比。一般導(dǎo)數(shù)階數(shù)越高,噪聲放大程度越大,因此近紅外光譜導(dǎo)數(shù)法一般只使用一階或二階,很少使用三階及以上,有時需要提前對數(shù)據(jù)進(jìn)行平滑處理。
光譜曲線一般很難找到與之完全匹配的函數(shù)式,無法直接用解析式計算光譜曲線的導(dǎo)數(shù)。有一些無須輸入整個光譜數(shù)據(jù)曲線解析式的求導(dǎo)算法,如差分法、窗口移動多項式擬合法(Savitzky-Golay求導(dǎo)法)等。近紅外光譜導(dǎo)數(shù)法預(yù)處理中Savitzky-Golay求導(dǎo)法被廣泛使用,簡稱S-G求導(dǎo)法。S-G求導(dǎo)法首先用窗口移動的方法從整個光譜中獲取多個局部小段,然后對每個小段用多項式函數(shù)進(jìn)行擬合,對擬合所得的多項式函數(shù)求導(dǎo),獲得局部中心波長點的導(dǎo)數(shù)值,移動窗口的策略可收集所有局部小段中心波長導(dǎo)數(shù)值,由此獲得整個光譜的導(dǎo)數(shù)曲線(光譜兩端(w-1)/2個波長點的導(dǎo)數(shù)值用w長的分段擬合函數(shù)中心點導(dǎo)數(shù)無法計算)。S-G求導(dǎo)時要對求導(dǎo)窗口大小做合適的選擇,窗口太小會擴(kuò)大噪聲,窗口太大則平滑過渡,導(dǎo)致精細(xì)信息丟失。
Wheat kernels 數(shù)據(jù)集[5]共523個樣本,其中405個用作訓(xùn)練樣本,108個用作測試樣本。樣本波長范圍為850~1048nm,每個樣本100個波數(shù)點,預(yù)測值為小麥樣本蛋白質(zhì)含量,數(shù)據(jù)集下載地址為:http://www.models.life.ku.dk/。軟件平臺為matlab、python 3.7及其機(jī)器學(xué)習(xí)庫scikit-learn框架。
首先對光譜數(shù)據(jù)進(jìn)行預(yù)處理,使用S-G求導(dǎo)法對近紅外光譜數(shù)據(jù)進(jìn)行基線校正,求光譜數(shù)據(jù)二階導(dǎo)數(shù),窗口大小設(shè)定為17。然后對數(shù)據(jù)進(jìn)行標(biāo)準(zhǔn)正態(tài)變量變換處理,標(biāo)準(zhǔn)正態(tài)變量變換是對光譜矩陣行的一種處理,使光譜曲線的均值為0,方差為1。
多元線性回歸算法,偏最小二乘回歸算法,嶺回歸算法和支持向量回歸算法分別使用預(yù)處理前和預(yù)處理后的小麥近紅外光譜數(shù)據(jù)構(gòu)建模型,預(yù)測小麥中蛋白質(zhì)含量。
分析比較使用預(yù)處理前和預(yù)處理后數(shù)據(jù)構(gòu)建模型的效果,使用均方誤差損失和決定系數(shù)作為評價指標(biāo)。
圖1為小麥近紅外光譜數(shù)據(jù)曲線,縱坐標(biāo)為樣本中小麥蛋白質(zhì)含量。圖2為小麥近紅外光譜數(shù)據(jù)預(yù)處理后的曲線圖像,縱坐標(biāo)為光譜曲線數(shù)據(jù)進(jìn)行預(yù)處理后的相對數(shù)值。
圖1 小麥近紅外光譜數(shù)據(jù)曲線
圖2 小麥近紅外光譜數(shù)據(jù)預(yù)處理后的曲線
圖3為原始數(shù)據(jù)擬合效果,圖4為預(yù)處理后數(shù)據(jù)擬合效果。對比圖3與圖4,顯而易見,數(shù)據(jù)預(yù)處理后的模型擬合效果明顯優(yōu)于原始數(shù)據(jù)擬合效果。
圖3 原始數(shù)據(jù)擬合效果
圖4 預(yù)處理后數(shù)據(jù)擬合效果
從數(shù)據(jù)來看,效果更加明顯。多元線性回歸方法在預(yù)處理前的數(shù)據(jù)集上均方誤差損失和決定系數(shù)分別為0.4437和0.8536,在預(yù)處理后的數(shù)據(jù)集上均方誤差損失和決定系數(shù)分別為0.2245和0.9259;偏最小二乘回歸方法在預(yù)處理前的數(shù)據(jù)集上均方誤差損失和決定系數(shù)分別為0.4437和0.8536,在預(yù)處理后的數(shù)據(jù)集上均方誤差損失和決定系數(shù)分別為0.2246和0.9259;嶺回歸方法在預(yù)處理前的數(shù)據(jù)集上均方誤差損失和決定系數(shù)分別為1.4599和0.5183,在預(yù)處理后的數(shù)據(jù)集上均方誤差損失和決定系數(shù)分別為0.1765和0.9418;支持向量回歸方法在預(yù)處理前的數(shù)據(jù)集上均方誤差損失和決定系數(shù)分別為1.7231和0.4314,在預(yù)處理后的數(shù)據(jù)集上均方誤差損失和決定系數(shù)分別為0.1445和0.9523。四種方法使用預(yù)處理后的數(shù)據(jù)構(gòu)建的模型明顯優(yōu)于使用原始數(shù)據(jù)構(gòu)建的模型,四種方法使用原始數(shù)據(jù)構(gòu)建的最優(yōu)模型的均方誤差損失和決定系數(shù)分別為0.4437和0.8535,使用預(yù)處理后的數(shù)據(jù)構(gòu)建的最差模型的均方誤差損失和決定系數(shù)分別為0.2256和0.9258,因此,可以發(fā)現(xiàn)數(shù)據(jù)預(yù)處理對構(gòu)建模型的效果影響巨大。
基線漂移是Wheat kernels 光譜數(shù)據(jù)集存在的問題,由于數(shù)據(jù)為網(wǎng)絡(luò)公開數(shù)據(jù),無法獲得光譜儀器的“理想光譜”數(shù)據(jù),因此只能使用數(shù)學(xué)方法削弱基線漂移對實驗的影響。使用S-G求導(dǎo)法對近紅外光譜數(shù)據(jù)進(jìn)行基線校正,求光譜數(shù)據(jù)二階導(dǎo)數(shù),窗口大小設(shè)定為17。標(biāo)準(zhǔn)正態(tài)變量變換可以削弱由于樣本固體顆粒大小不同、表面散射以及光程變化產(chǎn)生的漫反射現(xiàn)象對光譜數(shù)據(jù)的影響。標(biāo)準(zhǔn)正態(tài)變量變換是對光譜矩陣行的一種處理,使光譜曲線的均值為0,方差為1。
預(yù)處理后的數(shù)據(jù)曲線出現(xiàn)了四個峰,如圖2所示,提高了光譜分辨率,有效降低光譜的基線干擾,對建模有利,這是導(dǎo)數(shù)法預(yù)處理的效果。其次,預(yù)處理后數(shù)據(jù)曲線在0值上下波動,這是標(biāo)準(zhǔn)正態(tài)變量變換的效果,標(biāo)準(zhǔn)正態(tài)變量變換使光譜曲線的均值為0,方差為1,更有利于構(gòu)建模型。
數(shù)據(jù)預(yù)處理方法較多,并且在不斷發(fā)展。在數(shù)據(jù)預(yù)處理過程中選取數(shù)據(jù)預(yù)處理方法不但要結(jié)合原始數(shù)據(jù)特征,更要了解各種預(yù)處理方法的特點。光譜數(shù)據(jù)可能存在基線漂移、散射、噪聲以及數(shù)據(jù)量綱等問題,一般都需要對光譜數(shù)據(jù)進(jìn)行預(yù)處理,最終選擇使用什么預(yù)處理方法取決于構(gòu)建模型的效果,數(shù)據(jù)預(yù)處理方法選擇是構(gòu)建模型的重要一環(huán)。在Wheat kernels 數(shù)據(jù)集上,根據(jù)數(shù)據(jù)特征,使用S-G導(dǎo)數(shù)法和標(biāo)準(zhǔn)正態(tài)變量變換方法,使預(yù)處理后的數(shù)據(jù)構(gòu)建模型的準(zhǔn)確率明顯高于使用原始數(shù)據(jù)構(gòu)建模型?;€漂移和散射在光譜數(shù)據(jù)中很常見,因此基線校正和散射校正會在光譜數(shù)據(jù)預(yù)處理時進(jìn)行考慮。光譜數(shù)據(jù)預(yù)處理可以凸顯對構(gòu)建模型更有利的數(shù)據(jù)特征,有利于構(gòu)建更為高效,準(zhǔn)確的模型。