申 琦,李 盎,張曉芋,桑澤農(nóng),王志瑩
(鄭州大學 化學學院 河南 鄭州 450001)
食用油是人們?nèi)粘I钪兄匾氖称分?,包含有大豆油、玉米油、花生油、葵花籽油以及橄欖油等。由于不同食用油的功效、營養(yǎng)價值和價格有很大差異,不法商販會將廉價油摻入優(yōu)質(zhì)油中以次充好。傳統(tǒng)的食用油品質(zhì)分析是通過檢測色澤、比重、折光率、皂化值、酸值、羰基值、過氧化值、電導率等理化指標,進行品質(zhì)鑒定與分類,具有消耗試劑多、操作復(fù)雜耗時等缺點[1-2]。隨著人們食品安全意識的逐漸提高,發(fā)展低成本、快速可靠和無損的食用油篩選檢測技術(shù)是很有必要的[3-5]。
傅里葉變換紅外光譜(FT-IR)技術(shù)是一種無損、綠色且高效的分析技術(shù)[6],具有樣品預(yù)處理簡單、分析速度快等優(yōu)點,廣泛應(yīng)用于基礎(chǔ)和應(yīng)用化學研究中。但是,由于FT-IR光譜變量較多,光譜重疊嚴重且難以解析,經(jīng)常需要結(jié)合變量篩選和多元校正方法對光譜數(shù)據(jù)進行分析[7-8]。常用的變量篩選方法有無信息變量消除算法、連續(xù)投影算法、競爭自適應(yīng)加權(quán)采樣算法[9]、遺傳算法[10]和粒子群優(yōu)化算法[11-12]等。其中,粒子群優(yōu)化算法具有概念簡明、收斂速度快以及需要調(diào)整的參數(shù)較少等優(yōu)點,但其在用于變量篩選時仍會在一定程度上陷入局部最優(yōu),結(jié)果不夠理想。本文采用離散粒子群優(yōu)化算法對五種食用油進行分類,為進一步優(yōu)化算法性能,將變量重要度指數(shù)引入離散粒子群優(yōu)化算法的初始化過程中,并利用輪盤賭算法增大重要度大的變量的篩選概率,獲得了較好的分類效果。
全部77個食用油樣本均從當?shù)爻兄匈徺I,包括21個玉米油、24個橄欖油、14個花生油、11個葵花籽油和7個大豆油。采用隨機分類方法將77個樣本分為含有51個樣本的訓練集和含有26個樣本的預(yù)測集。其中,訓練集含有14個玉米油、16個橄欖油、9個花生油、7個葵花籽油和5個大豆油,剩余樣本為預(yù)測集。這些食用油樣本的傅里葉變換紅外光譜(FT-IR)的波數(shù)范圍為650~4 000 cm-1,分辨率為2 cm-1,將光譜數(shù)據(jù)變換到(0,1)進行定性分析。
1.2.1改進的離散粒子群優(yōu)化算法 粒子群優(yōu)化算法(particle swarm optimization,PSO)是Kennedy和Eberhart[13]通過對鳥群覓食行為的研究,提出的一種啟發(fā)式的全局優(yōu)化方法。PSO算法首先隨機生成N個初始粒子,每個粒子都有一個位置和速度,算法會記住所有粒子在搜索過程中找到的全局最佳位置和每個粒子所找到的個體最佳位置。粒子通過跟蹤兩個最佳位置更新自己,迭代找到最優(yōu)解。
離散粒子群優(yōu)化算法初始化是隨機產(chǎn)生個體,雖然隨機初始化群體可以保證個體分布的均勻性,但是初始化的個體粒子可能距離最優(yōu)解較遠,從而增加了方法的收斂難度以及計算量。本文在初始化過程引入變量的重要度指數(shù),可以縮短搜索路徑,提高算法的收斂速度。
某個變量在不同樣本中的差異越大,則其可能包含的信息量就越大。衡量變量在不同樣本中的差異性可以用變量的光譜純度(Pi)[14]表示,光譜純度定義為每個變量的光譜標準偏差(σi)與光譜均值(μi)的比值,即
Pi=σi/μi。
(1)
變量的光譜純度值越大,意味著不同樣本在該波長變量處的吸光度數(shù)值有較大的差異,該變量可能為強信息變量。在多種變量篩選方法中,變量的偏最小二乘(partial least squares,PLS)回歸系數(shù)的絕對值是一種常用的衡量變量重要性的指標,回歸系數(shù)絕對值大的變量說明其對模型的貢獻量大。
分別歸一化變量的PLS回歸系數(shù)(bi)和光譜純度(Pi) ,將二者的乘積作為變量的重要度指數(shù)(VIi),即
VIi=Pi*bi。
(2)
基于變量重要度指數(shù)的離散粒子群算法將變量重要度用于初始化選擇變量,其具體步驟如下。
Step 1 首先計算每個變量的重要度指數(shù),并按降序排列。為保證算法的隨機性,沒有直接選擇重要度最高的變量構(gòu)成粒子,而是引入輪盤賭算法為每個個體選取一定數(shù)量的變量。采用輪盤賭算法,則重要度大的變量選中的概率較大,重要度小的變量選中的概率較小。一般而言,選中的變量的概率由問題決定。本研究中每個個體選取8%的變量,對選取的變量進行二進制編碼(0/1),即被選中的8%的變量為1,其余的變量為0。
Step 2 根據(jù)目標函數(shù)計算每個粒子的適應(yīng)度值。粒子當前最優(yōu)位置為Pbest,粒子群體中最佳粒子位置為Gbest。
Step 3 對粒子的位置以及速度進行更新。當0 Step 4 如果滿足終止條件,則輸出解。否則,返回Step 2。 1.2.2目標函數(shù) 目標函數(shù)采用了基于自助抽樣的Bootstrap交叉驗證方法。Bootstrap方法[15]是采用重抽樣技術(shù)從原始數(shù)據(jù)中隨機選取m個樣本,建立分類模型,并預(yù)測其他未選中的樣本,該過程重復(fù)N次,取N次分類錯誤率的平均值。本文采用3倍交叉驗證,采樣次數(shù)為10,將交叉驗證分類錯誤率的平均值作為該粒子的目標函數(shù)值。 實驗數(shù)據(jù)集含有玉米油、橄欖油、花生油、葵花籽油和大豆油共77個食用油樣本,在650~4 000 cm-1波數(shù)范圍內(nèi),間隔2 cm-1掃描紅外吸收光譜,每個樣本獲得957個光譜變量。圖1為77個食用油樣本的FT-IR光譜。 圖1 食用油樣本的FT-IR光譜Figure 1 FT-IR spectra of edible oil samples 由圖1可以看出,不同樣本的FT-IR光譜分布基本相同,重疊情況非常嚴重。在這些FT-IR光譜中,樣本的特征峰數(shù)、峰形和峰的位置都是相似的,表明不同種類食用油的主要成分大致相同。 本文基于全部957個變量建立偏最小二乘判別分析(PLS-DA)分類模型。采用訓練集的51個樣本構(gòu)建PLS-DA模型,再用此模型對26個預(yù)測集的樣本進行預(yù)測。采用全變量模型獲得的訓練集和預(yù)測集的分類錯誤率分別為1.96%和3.85%。 由于采用了全部變量,變量中可能含有無信息變量以及噪音,而這些無關(guān)變量參與建模會降低模型的預(yù)測能力。為了降低模型的分類錯誤率,應(yīng)用PSO算法優(yōu)化篩選變量的PLS-DA方法。首先采用了經(jīng)典PSO算法,即初始化步驟為隨機挑選變量。隨機初始化大約5%的變量,運行100代,采用最優(yōu)個體篩選得到的變量建立PLS-DA分類模型。PSO算法優(yōu)化篩選到48個變量,模型的訓練集和預(yù)測集的分類錯誤率分別為0和3.85%。雖然PSO算法準確地分類了全部訓練集的食用油樣本,但是預(yù)測集的分類錯誤率并未降低,表明PSO算法優(yōu)化篩選變量的PLS-DA方法獲得的模型可能存在過擬合現(xiàn)象,暗示著PSO算法篩選獲得的變量中可能仍存在無信息變量。 使用改進的離散PSO算法,在初始化步驟引入變量重要度指數(shù)和輪盤賭算法。圖2顯示了不同變量的重要度指數(shù)、PLS回歸系數(shù)值和光譜純度值經(jīng)過歸一化計算后排序的分布情況??梢钥闯觯蟛糠肿兞康闹匾葦?shù)值不大,僅有大約十分之一的變量具有較大的重要度數(shù)值。 圖2 變量重要度指數(shù)、PLS回歸系數(shù)值和光譜純度值的分布Figure 2 The distribution of the variable importance index,regression coefficient of PLS and spectral purity value 對全部變量進行篩選,最后選擇了32個變量,訓練集和預(yù)測集的分類錯誤率均為0。改進前后PSO算法的目標函數(shù)收斂情況如圖3所示??梢钥闯?,經(jīng)典PSO算法需要54代收斂,而改進的PSO算法經(jīng)過23代運算就能達到收斂,收斂速度更快,而且改進的PSO算法獲得的目標函數(shù)值更小,結(jié)果更準確。 圖3 改進前后PSO算法的目標函數(shù)收斂曲線Figure 3 Objective function convergence curve of PSO algorithm before and after improvement 由于訓練集和預(yù)測集的分類為隨機分類,為獲得更準確的結(jié)果,對樣本集隨機進行了100次分配,將不同訓練集和預(yù)測集獲得的分類結(jié)果進行平均,并計算100次結(jié)果的標準偏差。全變量PLS-DA方法、經(jīng)典PSO算法和改進的離散PSO算法的平均結(jié)果見表1。 表1 不同方法100次分配訓練集和預(yù)測集的平均結(jié)果Table 1 Average results of 100 assignments of training sets and prediction sets by different methods 由表1可以看出,全部957個變量的PLS-DA模型的訓練集和預(yù)測集的平均分類錯誤率分別為2.82%和2.73%,100次運行結(jié)果的標準偏差為1.96%和2.58%。經(jīng)典PSO算法得到大約48個變量,訓練集和預(yù)測集的平均分類錯誤率分別為0.92%和2.77%,標準偏差分別為1.16%以及3.10%。與全變量PLS-DA方法的結(jié)果進行對比,采用PSO算法篩選變量后訓練集的平均分類錯誤率有了明顯的降低,并且標準偏差也較??;預(yù)測集的分類錯誤率略有升高,且波動較大。改進的離散PSO算法得到大約32個變量,訓練集和預(yù)測集的平均分類錯誤率分別為0.22%和1.77%,標準偏差分別為0.59%和2.22%。通過對比可以看出,改進的PSO算法篩選得到較少的變量,訓練集和預(yù)測集的結(jié)果均有明顯的改善,且標準偏差較小,表明結(jié)果具有一定的穩(wěn)定性。引入變量重要度指數(shù)來衡量變量的重要性,不僅可以優(yōu)化PSO算法的收斂速度,還減少了計算量,且收斂值更優(yōu)。 圖4 改進的PSO算法篩選得到的變量分布Figure 4 The variable distribution selected by the modified PSO algorithm 綜上,使用FT-IR光譜技術(shù)結(jié)合化學計量學建立模型對五種食用油進行分類,具有無損、試劑消耗少等優(yōu)點,可以未經(jīng)預(yù)處理進行直接和快速的測定。此外,改進的PSO算法的分類錯誤率相比經(jīng)典PSO算法和全變量PLS-DA分類模型有明顯降低,可實現(xiàn)對食用油樣品快速、準確的分類。 本文提出了基于變量重要度指數(shù)的離散PSO算法,將PLS回歸系數(shù)和光譜純度的乘積作為變量的重要度指數(shù),引入離散PSO算法的初始化過程中,并利用輪盤賭算法增加算法的多樣性。實驗結(jié)果表明,改進的離散PSO算法收斂速度快,計算量較少。與經(jīng)典PSO和全變量PLS-DA方法相比,改進的離散PSO算法可以跳出局部最優(yōu),找到最優(yōu)解,是一種快速、無損的食用油分類方法。2 結(jié)果與討論
3 小結(jié)