楊冰清,高 珊①
(阜陽師范大學(xué) 數(shù)學(xué)與統(tǒng)計(jì)學(xué)院,安徽 阜陽 236037)
毒蘑菇又稱毒菌,屬大型真菌類,部分品種的毒性死亡率較高,其中肝毒性鵝膏菌品種中毒病死率高達(dá)80%,蘑菇中毒已經(jīng)成為我國食源性疾病中病死率最高的一類急癥[1].目前各級醫(yī)護(hù)人員和廣大群眾對于蘑菇毒性種類的認(rèn)識(shí)和區(qū)別尚沒有得到有效的提高,我國也曾多次出現(xiàn)地域性、季節(jié)性野生蘑菇中毒致死的事件.對于蘑菇毒性,從根本上提高鑒別能力,預(yù)防誤食誤采,是有待解決的問題.
目前蘑菇毒性判別主要通過外形辨別以及通過生化分析2種手段[2].基于“互聯(lián)網(wǎng)+”在醫(yī)學(xué)數(shù)據(jù)上的良好應(yīng)用,機(jī)器學(xué)習(xí)、神經(jīng)網(wǎng)絡(luò)等在多學(xué)科領(lǐng)域取得很好的研究成果,從本質(zhì)上來說對于蘑菇毒性判別問題也就是一個(gè)多維數(shù)據(jù)的非線性分類問題[3].
肖杰文等[4]對蘑菇圖像進(jìn)行圖像特征提取,對比LeNet-5、VGGNet-16、AlexNet和ShuffletV2模型,得到ShuffleNetV2參數(shù)小、運(yùn)行速度快且ShuffletNetV2的Top-1和Top-5的準(zhǔn)確度最高.劉斌等[5]采用基于貝葉斯分類模型對蘑菇數(shù)據(jù)的特征學(xué)習(xí),從而較為準(zhǔn)確地識(shí)別蘑菇的毒性,將準(zhǔn)確率控制在98.48%.樊哿等[3]建立C-SVM模型通過定步長探索法確定最優(yōu)參數(shù),并將其和神經(jīng)網(wǎng)絡(luò)、決策樹等分類器進(jìn)行性能對比,最終得出該方法準(zhǔn)確度高、操作方便和實(shí)用性強(qiáng).
本文根據(jù)以往研究學(xué)者對蘑菇毒性判別的主要依據(jù)和機(jī)器學(xué)習(xí)算法特征重要性排序相結(jié)合的方法,篩選出對蘑菇毒性判別有顯著影響的特征.將該特征應(yīng)用于以隨機(jī)森林算法、梯度提升算法和自適應(yīng)提升算法為基分類器所構(gòu)建的Stacking的模型.通過對比準(zhǔn)確度,召回率、F1-score和AUC(受試者工作特征曲線下的面積),發(fā)現(xiàn)基于Stacking的模型在上述各方面的效果相比較基分類器都有最好的結(jié)果.
Stacking是目前機(jī)器學(xué)習(xí)領(lǐng)域熱門研究方向之一,將多個(gè)學(xué)習(xí)器的結(jié)合并使用某種規(guī)則將每個(gè)學(xué)習(xí)器的結(jié)果進(jìn)行再訓(xùn)練,從而獲得比單個(gè)學(xué)習(xí)器更好的結(jié)果.其中Stacking是由Worlpert[6]提出的學(xué)習(xí)框架,是一種集合學(xué)習(xí)技術(shù),其中包括2個(gè)主要工作,一是初級學(xué)習(xí)器的構(gòu)建,二是多分類器的融合集成[7].因?yàn)槎鄠€(gè)分類模型往往是不同的算法,所以其框架往往是異構(gòu)的.其中本文模型的訓(xùn)練和測試過程如圖1所示.
圖1 本文stacking模型框架
RandomForest是在以決策樹為初級學(xué)習(xí)器構(gòu)建Bagging集成的基礎(chǔ)上,進(jìn)一步在決策樹訓(xùn)練過程中引入隨機(jī)屬性的方法[8].該算法是將決策樹進(jìn)行集成,最終結(jié)果是由若干個(gè)決策樹進(jìn)行投票產(chǎn)生,其流程如圖2所示.隨機(jī)森林旨在在控制運(yùn)算量沒有顯著提高的情況下,提高最終精度,并且不需要提前進(jìn)行變量篩選,對共線性不敏感,對缺失數(shù)據(jù)和非平衡數(shù)據(jù)更加友好.
圖2 隨機(jī)森林流程框架
GradientBoost算法建立在數(shù)據(jù)優(yōu)化的基礎(chǔ)上,其每次訓(xùn)練都是對之前建立模型的損失函數(shù)的梯度下降,即在N次訓(xùn)練中將上輪弱分類器的負(fù)梯度作為損失函數(shù)下降的方向,在N次循環(huán)中,模型的損失函數(shù)呈下降趨勢,從而達(dá)到函數(shù)空間的最優(yōu)解.
AdaBoost算法的思想是由一系列加權(quán)的弱分類器組合成一個(gè)強(qiáng)分類器[9].最初,每個(gè)樣本具有相等的權(quán)重,在N次訓(xùn)練中樣本的權(quán)重也進(jìn)行改變,其中錯(cuò)分類樣本在下次訓(xùn)練中被賦予更大的權(quán)重,相反正確分類的樣本前的權(quán)重減少,由此將訓(xùn)練的弱分類器組合成一個(gè)最優(yōu)的分類器.Adaboost算法能夠反映數(shù)據(jù)不同方面權(quán)重的組合分類器,但是該方法對異常點(diǎn)非常敏感,不適合噪音較多的數(shù)據(jù)集.
數(shù)據(jù)集來自UCI數(shù)據(jù)庫中的Mushroom數(shù)據(jù)集,包括8 124條樣本和23個(gè)特征變量,如表1所示.對數(shù)據(jù)進(jìn)行數(shù)值化處理,并用眾數(shù)填充缺失數(shù)據(jù),其中class用指標(biāo){0,1}表示蘑菇是否有毒[10].
表1 蘑菇特征變量屬性
本數(shù)據(jù)集包含因變量class和其余22個(gè)自變量,自變量全為定性變量.通過變量重要性排序,可以篩選出對結(jié)果呈現(xiàn)顯著影響的變量,使得模型更方便、更高效.本文采用RandomForest特征選擇的方法,篩選出重要變量如圖3所示.
圖3 特征重要性排序
在蘑菇的22個(gè)特征中,結(jié)合重要性排序和以往學(xué)者對蘑菇毒性判斷的依據(jù),選擇如下5個(gè)特征作為模型的輸入變量:孢子印顏色、環(huán)的數(shù)量、菌褶、內(nèi)菌幕顏色和氣味.很多文獻(xiàn)均已記載,這5個(gè)特征對于區(qū)分蘑菇是否有毒具有更明顯的作用.其中,新鮮的蘑菇孢子印顏色鮮艷,其中紫色的蘑菇常有劇毒,如毒蠅鵝膏(Amanita muscaria)、毒紅菇(Russula emetica)、小毒紅菇(Russula fragilis)等[2].王鑫[11]指出,毒蘑菇從形狀看來,有菌環(huán)、菌托者一般有毒,如鵝膏屬,菌柄上同時(shí)有菌環(huán)和菌托.菌褶剖面為逆兩側(cè)形的蘑菇多數(shù)有毒,如毒鵝菌的菌褶離生和不等長[5].有毒的蘑菇通常氣味怪異,有麻、苦、辣、澀、腥等味道,如毒紅菇(Russula emetica)和紅褐乳菇(Lactarius rufus)[13].
基于該問題屬于分類問題,采用準(zhǔn)確率(Accuracy)、召回率(Recall)、綜合評價(jià)指標(biāo)F1-score和AUC作為模型衡量的準(zhǔn)則,具體公式如下:
在分類任務(wù)中經(jīng)常會(huì)使用一些評價(jià)指標(biāo),上述公式中,TP表示模型預(yù)測為正例,但實(shí)際為正例的個(gè)案數(shù);FP表示模型預(yù)測為正例,但實(shí)際為負(fù)例的個(gè)案數(shù);TN表示模型預(yù)測為負(fù)例,但實(shí)際為負(fù)例的個(gè)案數(shù);FN示模型預(yù)測為負(fù)例,但實(shí)際為正例的個(gè)案數(shù)[14].
ROC是接收者操作特征曲線.ROC曲線是橫坐標(biāo)為假正類率(False Positive Rate,F(xiàn)PR),即錯(cuò)誤分類的負(fù)樣本個(gè)數(shù)占負(fù)樣本總數(shù)的比例,縱坐標(biāo)為真正類率(True Positive Rate,TPR),即正確分類的正樣本個(gè)數(shù)占正樣本總數(shù)的比例.AUC是ROC曲線下的面積,在基于ROC的標(biāo)量型度量下,保留了ROC的眾多優(yōu)點(diǎn)[15].AUC越大代表分類器的分類性能越好.
將數(shù)據(jù)進(jìn)行五折交叉驗(yàn)證,最終結(jié)果如表2所示,在模型評價(jià)標(biāo)準(zhǔn)Accuracy、Recall、F1-Score、AUC中,采用Stacking框架的模型在上述評價(jià)標(biāo)準(zhǔn)中均比弱分類器有更好的效果.Stacking、RandomForest、GradientBoost、AdaBoost這些模型的準(zhǔn)確率分別是99.59%、97.35%、98.93%、95.73%,Stacking模型相比AdaBoost模型在準(zhǔn)確率方面提升4.03%.4種模型在召回率上分別是99.14%、95.71%、98.98%、92.44%,Stacking模型相比較AdaBoost模型在召回率方面提升7.25%.4種模型在F1-score上分別是99.57%,97.21%,98.89%,95.48%,Stacking模型相比AdaBoost模型在F1-score方面提升4.3%.4種模型在AUC上分別是99.57%、97.30%、98.93%、95.66%,Stacking模型相比AdaBoost模型在AUC方面提升4.09%.
表2 不同分類模型性能對比
本文將傳統(tǒng)分類方法和stacking集成學(xué)習(xí)的方法做對比,該方法具有更高的準(zhǔn)確率,有較強(qiáng)的實(shí)用性,能夠幫助識(shí)別蘑菇毒性,減少每年因蘑菇中毒而致死致病的事故,在一定程度上加快農(nóng)業(yè)智能化發(fā)展.本文首先對將預(yù)處理后的數(shù)據(jù)經(jīng)過變量重要性排名,篩選出對蘑菇毒性有重要影響的變量,并將其和歷史研究成果作對比[2],得證氣味、孢子顏色、菌褶、內(nèi)幕菌顏色等確實(shí)具有顯著影響.綜合對比RandomForest、GradientBoost、AdaBoost和Stacking,其中Stacking方法的準(zhǔn)確率、召回率、F1-score和AUC都是最高的