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