湯玉榮
(蘭州現(xiàn)代職業(yè)學(xué)院衛(wèi)生健康分院,甘肅 蘭州 730300)
中藥材在預(yù)防和治療感染、寄生蟲病、腫瘤,以及緩解身體疼痛等方面效果顯著。此外,中藥材還可以縮短退熱時(shí)間、治愈時(shí)間,提高中性粒細(xì)胞和淋巴細(xì)胞計(jì)數(shù)等。中藥材種類和道地性是療效的重要保障。不同種中藥材的成分相差很大,很多長(zhǎng)相相似,肉眼無(wú)法準(zhǔn)確識(shí)別。不同產(chǎn)地的同種中藥材成分也存在一定差異,有些還會(huì)受到地質(zhì)和環(huán)境污染的影響。從統(tǒng)計(jì)學(xué)的角度分析,中醫(yī)的平均療效較好,但缺乏可重復(fù)性,故相同方子產(chǎn)生的療效方差較大(參差不齊)[1]。因此,為了確保中藥材療效的可靠性,準(zhǔn)確鑒別中藥材的種類和產(chǎn)地對(duì)于中醫(yī)藥的發(fā)展具有重要意義。
中藥材種類和產(chǎn)地的鑒別方法有很多[2-7],如氣相色譜法、薄層色譜法、紅外光譜法等。紅外光譜法通過(guò)紅外光譜儀采集中藥材的光譜數(shù)據(jù),分析藥材種類和產(chǎn)地的主要特征,具有高效、快速、精準(zhǔn)、低廉等特點(diǎn),但是識(shí)別的準(zhǔn)確率還需要進(jìn)一步提高。
近年來(lái),基于藥材的近紅外光譜數(shù)據(jù),使用機(jī)器學(xué)習(xí)方法對(duì)未知種類和產(chǎn)地的藥材進(jìn)行識(shí)別受到了越來(lái)越多的關(guān)注。機(jī)器學(xué)習(xí)[8]是一門涉及了數(shù)學(xué)、計(jì)算機(jī)、物理等多學(xué)科的交叉算法,成功運(yùn)用到了語(yǔ)音和手寫識(shí)別、自然語(yǔ)言處理、圖像識(shí)別、生物特征識(shí)別、醫(yī)學(xué)診斷等領(lǐng)域。隨著機(jī)器學(xué)習(xí)的迅猛發(fā)展,決策樹(shù)、支持向量機(jī)、最近鄰算法、集成學(xué)習(xí)等各種機(jī)器學(xué)習(xí)算法被提出。這些算法均可用于中藥材種類和產(chǎn)地識(shí)別。
為了分析多種機(jī)器學(xué)習(xí)方法識(shí)別中藥材種類和產(chǎn)地的效果,研究選用中藥材的近紅外光譜數(shù)據(jù)集[9]中的數(shù)據(jù)。該數(shù)據(jù)集大部分藥材種類和產(chǎn)地都已知,但也有部分種類或產(chǎn)地未知,主要包括A、B、C 3種藥材,16個(gè)產(chǎn)地。從圖1可以看出3種藥材表現(xiàn)的光譜特征相對(duì)差異較大。

圖1 三種藥材的波數(shù)與吸光度曲線
圖2 為A 種藥材在1、2、3、4、5 號(hào)產(chǎn)地的光譜數(shù)據(jù)圖,可以看出數(shù)據(jù)差異較小。B 種和C 種藥材的光譜數(shù)據(jù)類似A 種。因此,藥材種類的鑒定難度較小,但是藥材產(chǎn)地的鑒定難度較大。

圖2 A 種藥材在不同產(chǎn)地的波數(shù)與吸光度曲線
采用決策樹(shù)、支持向量機(jī)、最近鄰算法、集成學(xué)習(xí)四種經(jīng)典的機(jī)器學(xué)習(xí)方法,識(shí)別中藥材的種類和產(chǎn)地,具體如下。
決策樹(shù)是一種將已知數(shù)據(jù)樣本作為基礎(chǔ)進(jìn)行歸納學(xué)習(xí)的方法。利用已知中藥材種類或產(chǎn)地的數(shù)據(jù)特性進(jìn)行總結(jié)分類,為各特性找到一種確切的刻畫與分類,然后對(duì)未知種類或產(chǎn)地的數(shù)據(jù)進(jìn)行分類。該算法的基本思想是把最高信息增益的描述特性作為近紅外光譜數(shù)據(jù)集的分支特性,創(chuàng)建決策樹(shù)中的一個(gè)節(jié)點(diǎn),再利用描述特性的不同取值創(chuàng)建新的分支,最后對(duì)新分支中樣本子集重復(fù)調(diào)用構(gòu)建該節(jié)點(diǎn)的子節(jié)點(diǎn)。
支持向量機(jī)是基于監(jiān)督學(xué)習(xí)方式對(duì)近紅外光譜數(shù)據(jù)樣本進(jìn)行二元分類的一種廣義線性分類器,其決策邊界是對(duì)學(xué)習(xí)樣本求解最大邊距超平面,將分類問(wèn)題化為一個(gè)求解凸二次規(guī)劃的問(wèn)題。在原空間線性可分時(shí),尋找兩類樣本的最優(yōu)分類超平面。在線性不可分時(shí),加入松弛變量,利用非線性映射將低維度輸入空間的樣本映射到高維度空間,使其變得線性可分,然后在該特征空間尋找實(shí)現(xiàn)最優(yōu)分類的超平面。
最近鄰算法(KNN)的想法來(lái)源于“近朱者赤,近墨者黑”,該方法是最簡(jiǎn)單的機(jī)器學(xué)習(xí)算法之一,也是最基本、最好用的分類算法之一,其基本思想是將距離近的數(shù)據(jù)點(diǎn)劃為同一類。利用已知種類或產(chǎn)地的數(shù)據(jù)集,對(duì)新輸入未知種類或產(chǎn)地的數(shù)據(jù)點(diǎn)計(jì)算到已知各數(shù)據(jù)點(diǎn)的距離,在已知數(shù)據(jù)集中找到與該數(shù)據(jù)點(diǎn)最鄰近的K 個(gè)數(shù)據(jù),這K 個(gè)實(shí)例的多數(shù)屬于那個(gè)類,就把該輸入數(shù)據(jù)點(diǎn)分到這個(gè)類。
集成學(xué)習(xí)的想法源自“三個(gè)臭皮匠頂一個(gè)諸葛亮”。單個(gè)機(jī)器學(xué)習(xí)算法所能解決的問(wèn)題很有限,推廣應(yīng)用能力也較差,但組合多個(gè)機(jī)器學(xué)習(xí)算法完成某個(gè)學(xué)習(xí)任務(wù)往往會(huì)產(chǎn)生更好的效果。每個(gè)學(xué)習(xí)器可以看成是一個(gè)基本的學(xué)習(xí)單元,通過(guò)他們組合最終集成一個(gè)強(qiáng)大的整體,該整體可用于解決更復(fù)雜的問(wèn)題。集成學(xué)習(xí)具有增加模型的性能、減少過(guò)擬合、降低方差、提供更高的預(yù)測(cè)精度、處理線性和非線性數(shù)據(jù)等優(yōu)點(diǎn)。
為了比較機(jī)器學(xué)習(xí)算法在中藥材種類或產(chǎn)地識(shí)別的效果,同時(shí)避免復(fù)雜的編程,使用MATLAB R2016a 自帶的機(jī)器學(xué)習(xí)工具箱APP—分類學(xué)習(xí)器(Classification Learner)。這個(gè)工具箱里面集成了一些經(jīng)典的機(jī)器學(xué)習(xí)算法,具有簡(jiǎn)單、實(shí)用等優(yōu)點(diǎn),對(duì)于處理數(shù)據(jù)量不大的分類問(wèn)題非常高效。主要分為以下幾個(gè)步驟:
(1)將已知種類或產(chǎn)地的中藥材數(shù)據(jù)讀入MATLAB空間,類型為數(shù)值矩陣,命名為data。
(2)打開(kāi)程序選項(xiàng)中的Classification Learner,然后選擇新任務(wù)(New Session)選項(xiàng)。
(3)從選擇列表或矩陣(Select table or matrix)中選取data變量。由于一組數(shù)據(jù)其變量需要包括每一列數(shù)據(jù),之后使用列作為變量(Use columns as variables),接著選擇第一列為響應(yīng)值(Response)代表輸出的目標(biāo),其余列為預(yù)測(cè)因子(Predictors),即訓(xùn)練的輸入中藥材數(shù)據(jù)。驗(yàn)證一般選擇交叉驗(yàn)證(Cross-Validation)選項(xiàng),然后點(diǎn)擊開(kāi)始任務(wù)(Start Session)。
(4)接著選擇不同的算法進(jìn)行訓(xùn)練,使用All 把所有算法訓(xùn)練一遍,點(diǎn)擊Train開(kāi)始訓(xùn)練。
(5)訓(xùn)練結(jié)束后,可以看到每一種算法的識(shí)別準(zhǔn)確率。識(shí)別率越高,說(shuō)明算法相對(duì)越好。然后在工具箱中點(diǎn)擊輸出模型(Export model),就可以將訓(xùn)練好的模型導(dǎo)出到MATLAB主界面。
(6)導(dǎo)入未知產(chǎn)地和種類的數(shù)組X,依照命令行中的提示,在命令行窗口輸入命令trainedModel.predictFcn(X)語(yǔ)句,實(shí)現(xiàn)產(chǎn)地和種類的預(yù)測(cè)。
利用已知藥材種類的近紅外光譜數(shù)據(jù)鑒定未知種類,首先分析已知種類藥材的相關(guān)數(shù)據(jù)信息和特征,然后使用分類學(xué)習(xí)器得到?jīng)Q策樹(shù)、支持向量機(jī)、最近鄰算法、集成學(xué)習(xí)4種機(jī)器學(xué)習(xí)方法的學(xué)習(xí)模型,再對(duì)未知種類的藥材進(jìn)行識(shí)別,比較4種方法的識(shí)別效果。
為防止出現(xiàn)過(guò)擬合現(xiàn)象,分析中藥材樣本數(shù)據(jù)種類的均衡性。近紅外光譜數(shù)據(jù)集中256個(gè)已知種類的藥材分布情況統(tǒng)計(jì)見(jiàn)表1,可以看出各種類的樣本數(shù)都相對(duì)較多,則不調(diào)整樣本數(shù)。

表1 各種類的藥材數(shù)量
以種類已知的藥材樣本數(shù)據(jù)為標(biāo)簽,將原始數(shù)據(jù)按照75∶25 的比例分成2組,一組作為訓(xùn)練集,一組作為驗(yàn)證集。利用訓(xùn)練集數(shù)據(jù)訓(xùn)練分類器,驗(yàn)證集驗(yàn)證分類器的效果,并將最后的準(zhǔn)確率作為分類器的性能指標(biāo)。利用窮舉法找出常見(jiàn)機(jī)器學(xué)習(xí)方法模型中的最優(yōu)參數(shù)。最后,對(duì)訓(xùn)練集進(jìn)行線性擬合得到訓(xùn)練好的線性分類模型,利用模型識(shí)別種類未知的藥材種類。
表2 為4 種常見(jiàn)機(jī)器學(xué)習(xí)方法的識(shí)別精度,可以看出除了決策樹(shù)方法以外,其余3 種方法的識(shí)別精度都達(dá)到了100.0%。

表2 常見(jiàn)機(jī)器學(xué)習(xí)方法識(shí)別中藥材種類的精度(%)
表3為部分藥材使用這些機(jī)器學(xué)習(xí)方法識(shí)別種類的結(jié)果,可以看出這些方法識(shí)別結(jié)果基本一致,可以確定編號(hào)94、109、140 的藥材屬于A 類,編號(hào)278、308、330的藥材屬于C類,編號(hào)347的藥材屬于B類。

表3 部分中藥材種類鑒定結(jié)果
用機(jī)器學(xué)習(xí)算法解決藥材產(chǎn)地鑒別問(wèn)題時(shí),首先將已知產(chǎn)地和未知產(chǎn)地的光譜數(shù)據(jù)分別保存。其次,以已知產(chǎn)地的藥材數(shù)據(jù)為基礎(chǔ),利用決策樹(shù)、支持向量機(jī)、最近鄰算法、集成學(xué)習(xí)等4種方法分別得到學(xué)習(xí)模型,然后導(dǎo)出得到的學(xué)習(xí)模型。最后,針對(duì)未知產(chǎn)地的藥材,利用光譜數(shù)據(jù)信息和學(xué)習(xí)模型對(duì)藥材種類進(jìn)行鑒定。
假設(shè)未知產(chǎn)地的藥材只在該藥材已出現(xiàn)的產(chǎn)地上種植。利用4.1 節(jié)中的方法,確定所有中藥材的種類。為防止出現(xiàn)過(guò)擬合現(xiàn)象,對(duì)中藥材樣本數(shù)據(jù)產(chǎn)地的均衡性進(jìn)行分析。表4可以看出A類藥材共108個(gè)樣本,但是分布不均衡,尤其是2號(hào)產(chǎn)地明顯偏少。

表4 各產(chǎn)地A 類藥材的數(shù)量
表5可以看出B類藥材共150個(gè)樣本,分布比較均衡。

表5 各產(chǎn)地B 類藥材的數(shù)量
表6 可以看出C 類藥材共69 個(gè)樣本,但是產(chǎn)地1 的樣本數(shù)量較少。因此,對(duì)樣本數(shù)量進(jìn)行數(shù)據(jù)合成,通過(guò)已有真實(shí)數(shù)據(jù)集的處理和組合,生成新的數(shù)據(jù)集。基于MATLAB 中的數(shù)據(jù)擴(kuò)展算法添加較小的高斯噪聲,擴(kuò)大現(xiàn)有數(shù)據(jù)集中A類2號(hào)產(chǎn)地和C類1號(hào)產(chǎn)地的數(shù)據(jù)規(guī)模分別到13和18,使得模型的訓(xùn)練結(jié)果更加準(zhǔn)確和可靠。

表6 各產(chǎn)地C 類藥材的數(shù)量
依次將A、B、C藥材的光譜數(shù)據(jù)挑選出來(lái),以已知產(chǎn)地的數(shù)據(jù)為基礎(chǔ),把光譜數(shù)據(jù)按照75∶25 的比例分為訓(xùn)練集與測(cè)試集,利用窮舉法找出模型最優(yōu)參數(shù),最后將訓(xùn)練集進(jìn)行線性擬合分別得到訓(xùn)練好的分類模型。針對(duì)未知產(chǎn)地的藥材,利用得到的模型對(duì)藥材產(chǎn)地進(jìn)行鑒定。
表7 為常見(jiàn)機(jī)器學(xué)習(xí)方法識(shí)別產(chǎn)地的精度,對(duì)A類和B類藥材的產(chǎn)地識(shí)別只有集成學(xué)習(xí)中的子空間判別法有效,其余方法都識(shí)別精度不高。C 類藥材的產(chǎn)地識(shí)別中,集成學(xué)習(xí)和支持向量機(jī)2 種方法有效。綜合分析,集成學(xué)習(xí)中的子空間判別法對(duì)于中藥材A類、B類、C類的產(chǎn)地識(shí)別都非常有效,可以用于中藥材的產(chǎn)地識(shí)別。

表7 常見(jiàn)機(jī)器學(xué)習(xí)方法識(shí)別中藥材產(chǎn)地的精度(%)
表8為集成學(xué)習(xí)中的子空間判別法對(duì)部分未知產(chǎn)地藥材的識(shí)別結(jié)果。

表8 部分中藥材的產(chǎn)地識(shí)別結(jié)果
中藥材的種類和道地性對(duì)中藥材的療效有直接影響。基于近紅外光譜數(shù)據(jù)分析發(fā)現(xiàn),中藥材的種類識(shí)別比較容易,產(chǎn)地鑒別相對(duì)困難。機(jī)器學(xué)習(xí)方法是鑒定中藥材種類和產(chǎn)地的有效方法之一,利用近紅外光譜數(shù)據(jù),通過(guò)系統(tǒng)比較常用的機(jī)器學(xué)習(xí)方法對(duì)中藥材產(chǎn)地和種類鑒別的準(zhǔn)確率,結(jié)果表明常用的機(jī)器學(xué)習(xí)方法包括決策樹(shù)、支持向量機(jī)、最近鄰算法、集成學(xué)習(xí)等都可以成功識(shí)別種類,但是只有集成學(xué)習(xí)中的子空間判別法對(duì)產(chǎn)地識(shí)別有效。