穆書敏,陳鋰,尹佳,郭鵬程,陳晨,董曼,趙錦,徐晴雪,文紅*,桂預(yù)風(fēng)*
(1.武漢理工大學(xué)理學(xué)院,湖北武漢 430070)(2.湖北省食品質(zhì)量安全監(jiān)督檢驗(yàn)研究院,湖北省食品質(zhì)量安全檢測(cè)工程技術(shù)研究中心,國(guó)家市場(chǎng)監(jiān)管重點(diǎn)實(shí)驗(yàn)室(動(dòng)物源性食品中重點(diǎn)化學(xué)危害物檢測(cè)技術(shù)),湖北武漢 430075)(3.石首市公共檢驗(yàn)檢測(cè)中心,湖北荊州 434200)
隨著我國(guó)全面建成小康社會(huì)的目標(biāo)實(shí)現(xiàn),人民的生活質(zhì)量不斷提高,人民群眾對(duì)食物的需求也隨之從溫飽轉(zhuǎn)為安全和營(yíng)養(yǎng)。近年頻發(fā)的食品安全問題事件不僅嚴(yán)重影響群眾身體健康,還關(guān)乎社會(huì)穩(wěn)定,食品安全問題已成為我國(guó)的民生問題[1]。食品安全風(fēng)險(xiǎn)管理是食品安全工作的主要內(nèi)容,涉及原材料提供、加工、生產(chǎn)、銷售、運(yùn)輸?shù)榷鄠€(gè)環(huán)節(jié),加強(qiáng)各環(huán)節(jié)的管控是降低食品安全風(fēng)險(xiǎn)的有效途徑[2-4]。據(jù)調(diào)查,肉制品在我國(guó)居民日常食品消費(fèi)中所占的比重越來越大,作為具有高營(yíng)養(yǎng)價(jià)值的重要日常消費(fèi)食品,也是具有較高安全風(fēng)險(xiǎn)和隱患的食品之一,保障肉制品質(zhì)量安全滿足消費(fèi)者的需求刻不容緩[5]。但當(dāng)前肉制品供應(yīng)鏈環(huán)節(jié)復(fù)雜多變,經(jīng)手的企業(yè)公司較多,且各企業(yè)之間無法相互監(jiān)控,信息不對(duì)稱使得肉制品安全問題缺乏可溯源性,難以有效的定位和管理[6]。囤積的肉制品檢測(cè)數(shù)據(jù)具有數(shù)據(jù)量多信息量少的特征,挖掘該歷史數(shù)據(jù)中的信息研究肉制品檢測(cè)數(shù)據(jù)的食品安全風(fēng)險(xiǎn)評(píng)價(jià)預(yù)警反饋機(jī)制具有重要意義。目前數(shù)據(jù)挖掘工作受到學(xué)者的廣泛關(guān)注,該研究對(duì)保障人民身體健康、實(shí)現(xiàn)肉制品的源頭防控和主動(dòng)預(yù)防具有重要意義。
大數(shù)據(jù)時(shí)代的到來推動(dòng)了機(jī)器學(xué)習(xí)的發(fā)展,機(jī)器學(xué)習(xí)被廣泛應(yīng)用于各領(lǐng)域并取得了良好效果[7-9]。根據(jù)目前食品安全風(fēng)險(xiǎn)評(píng)估和預(yù)警研究現(xiàn)狀,將經(jīng)典方法與機(jī)器學(xué)習(xí)模型進(jìn)行組合往往取得較好的效果[10-14]。而集成學(xué)習(xí)考慮綜合不同機(jī)器學(xué)習(xí)算法的優(yōu)點(diǎn),將多種簡(jiǎn)單的機(jī)器學(xué)習(xí)模型結(jié)合起來,通過一定的策略形成一個(gè)集成學(xué)習(xí)模型[15,16],在食品生產(chǎn)以及其他領(lǐng)域有廣泛應(yīng)用[17-20]。荷蘭食品和消費(fèi)品安全局在2015年起草了關(guān)于紅肉鏈的DT分類模型,Van Asselt等[21]使用三個(gè)DT分別對(duì)紅肉中化學(xué)物質(zhì)(禁用物質(zhì)、污染物、獸藥)進(jìn)行分類,研究表明DT有助于化學(xué)物質(zhì)的分類,可作為風(fēng)險(xiǎn)監(jiān)測(cè)的計(jì)劃工具。王小藝等[22]使用層次分析法(AHP)結(jié)合XGBOOST算法對(duì)大米安全風(fēng)險(xiǎn)進(jìn)行預(yù)測(cè),研究對(duì)比了支持向量機(jī)(SVM)、最鄰近分類算法(KNN)、長(zhǎng)短期記憶人工神經(jīng)網(wǎng)絡(luò)(LSTM),XGBOOST顯示出較好的平穩(wěn)性和準(zhǔn)確性。Xu等[23]使用RF對(duì)家禽農(nóng)場(chǎng)和加工環(huán)境中的菌落進(jìn)行預(yù)測(cè),該研究有效的幫助牧場(chǎng)家禽種植場(chǎng)指定食品安全控制策略。
本文基于全國(guó)肉制品抽檢數(shù)據(jù),采用獨(dú)熱編碼對(duì)不平衡數(shù)據(jù)進(jìn)行數(shù)據(jù)處理,以決策樹為基礎(chǔ),分別構(gòu)建決策樹(DT)、極端梯度提升樹算法(XGBOOST)和隨機(jī)森林(RF)集成學(xué)習(xí)算法,建立食品安全風(fēng)險(xiǎn)評(píng)價(jià)預(yù)警模型,并通過準(zhǔn)確率、精確度、召回率等一系列指標(biāo)說明模型的應(yīng)用效果。該研究有助于監(jiān)管部門提高對(duì)于肉制品安全的監(jiān)管效率,有助于構(gòu)建更加完善的肉制品質(zhì)量安全監(jiān)督管理體系,也為集成學(xué)習(xí)在食品安全問題中的進(jìn)一步應(yīng)用提供了參考。
1.1.1 數(shù)據(jù)來源
本文數(shù)據(jù)來源市場(chǎng)監(jiān)督管理局[24]公開的2013~2017年全國(guó)(除港澳臺(tái)地區(qū))肉制品抽檢數(shù)據(jù)和HBQT檢驗(yàn)檢測(cè)數(shù)據(jù)。原始數(shù)據(jù)的信息包括抽樣地點(diǎn)、單位地點(diǎn)、被抽樣單位名稱、抽樣編號(hào)、樣品名稱、生產(chǎn)日期、樣品規(guī)格、保質(zhì)期、檢驗(yàn)項(xiàng)目、檢驗(yàn)結(jié)果等79項(xiàng)內(nèi)容,涵蓋了熟肉制品和預(yù)制肉制品等多種肉制品類別,共計(jì)約4萬條數(shù)據(jù)。本文以肉制品數(shù)據(jù)檢驗(yàn)結(jié)果的綜合風(fēng)險(xiǎn)等級(jí)為研究對(duì)象,通過與各產(chǎn)品的生產(chǎn)信息相關(guān)聯(lián)來構(gòu)造對(duì)于肉制品質(zhì)量安全風(fēng)險(xiǎn)等級(jí)預(yù)警機(jī)制。但原始數(shù)據(jù)中如“商標(biāo)”、“檢驗(yàn)機(jī)構(gòu)”等多列與研究無關(guān),且部分列不能直接作為變量使用,需要對(duì)數(shù)據(jù)所含信息的內(nèi)容進(jìn)行整合、提取、清洗等處理后確定變量。
1.1.2 數(shù)據(jù)清洗
數(shù)據(jù)的質(zhì)量和特征決定了機(jī)器學(xué)習(xí)的上限,而模型和算法只是在逼近這個(gè)上限[8]。本研究中肉制品數(shù)據(jù)涵蓋維度信息少,因此數(shù)據(jù)處理部分尤為關(guān)鍵。數(shù)據(jù)預(yù)處理的首要步驟為數(shù)據(jù)清洗,數(shù)據(jù)清洗主要包括刪除重復(fù)值、統(tǒng)一規(guī)格、修正邏輯、數(shù)據(jù)壓縮、補(bǔ)足缺失或空值、丟棄異常值等,該過程能有效地提高數(shù)據(jù)質(zhì)量,保證數(shù)據(jù)的完整性、唯一性和合法性[25]。然而數(shù)據(jù)清洗工作同時(shí)存在復(fù)雜繁瑣、耗時(shí)長(zhǎng),且影響結(jié)果分析的問題需要解決。綜上所述,本文對(duì)肉制品數(shù)據(jù)處理工作主要通過計(jì)算機(jī)程序化解決,部分結(jié)合人工處理。本研究具體數(shù)據(jù)處理流程如圖1所示。
圖1 數(shù)據(jù)處理流程圖Fig.1 The flow diagram of data processing
選擇與本研究中與肉制品安全風(fēng)險(xiǎn)等級(jí)預(yù)警有關(guān)的食品品種、生產(chǎn)省份、抽樣省份、抽樣地點(diǎn)、生產(chǎn)日期、保質(zhì)期、抽樣日期、是否大型生產(chǎn)企業(yè)、是否大型經(jīng)營(yíng)企業(yè)、是否進(jìn)口、檢驗(yàn)項(xiàng)目、檢驗(yàn)結(jié)果作為數(shù)據(jù)源。其中食品品種、抽樣地點(diǎn)、是否大型生產(chǎn)企業(yè)、是否大型經(jīng)營(yíng)企業(yè)、是否進(jìn)口劃分類別明確,且無缺失值,可直接作為輸入變量。產(chǎn)品的生產(chǎn)日期和抽樣日期記錄形式有多種,需要進(jìn)行統(tǒng)一,并將前者拆分為年(Year)、月(Month)兩個(gè)變量便于特征重要性分析確定模型的輸入變量。保質(zhì)期中含有信息多、內(nèi)容復(fù)雜,有30 d、6個(gè)月、12個(gè)月(25 ℃以下真空包裝)、1年等多種記錄,本研究中將保質(zhì)期轉(zhuǎn)化為以天為單位并去溫度、包裝完整性等條件,如12個(gè)月(25 ℃以下真空包裝)轉(zhuǎn)化為720 d,作為輸入變量。檢驗(yàn)項(xiàng)目的檢驗(yàn)結(jié)果按照前期研究[26]的處理方式進(jìn)行標(biāo)準(zhǔn)化和歸一化進(jìn)行去量綱,用于劃分及計(jì)算綜合風(fēng)險(xiǎn)等級(jí),作為模型的輸出變量。
異常值檢測(cè)中,一個(gè)產(chǎn)品的抽檢時(shí)間為2005年4月8日,對(duì)此判斷為錄入時(shí)的人工錯(cuò)誤,將其年份修改為2015而不作刪除。數(shù)據(jù)處理過程嚴(yán)格遵循完整性、合法性、唯一性原則。原始數(shù)據(jù)40 052條經(jīng)處理后為38 315條,利用率達(dá)到96%。
1.1.3 獲取等級(jí)數(shù)據(jù)
將抽樣產(chǎn)品的檢測(cè)結(jié)果進(jìn)行分級(jí)區(qū)分有利于提高對(duì)于食品安全的敏感度和精準(zhǔn)判斷[27,28]。本文研究對(duì)象為肉制品綜合風(fēng)險(xiǎn)等級(jí),該等級(jí)通過兩步得到:以抽樣產(chǎn)品編號(hào)作為每個(gè)產(chǎn)品的唯一編號(hào),第一步將去量綱后的檢測(cè)結(jié)果通過專家打分劃分為5個(gè)等級(jí),1~5級(jí)分別表示安全、無警、輕度警、中度警、重度警;第二步將每一個(gè)產(chǎn)品的所有檢測(cè)項(xiàng)目通過改進(jìn)的softmax函數(shù)獲取該產(chǎn)品的綜合風(fēng)險(xiǎn)等級(jí)。綜合風(fēng)險(xiǎn)等級(jí)用level表示,計(jì)算方法見公式(1),其預(yù)警程度和說明與檢驗(yàn)項(xiàng)目一致。肉制品的項(xiàng)目分類和檢驗(yàn)項(xiàng)目見表1,檢驗(yàn)項(xiàng)目等級(jí)劃分標(biāo)準(zhǔn)見表2。
表1 肉制品檢驗(yàn)項(xiàng)目Table 1 Inspection items of meat products
表2 檢驗(yàn)項(xiàng)目風(fēng)險(xiǎn)等級(jí)劃分標(biāo)準(zhǔn)Table 2 Standard for risk classification of inspection items
式中:
i——風(fēng)險(xiǎn)等級(jí)值,取值為i=1, 2, 3, 4, 5;
wi——每個(gè)產(chǎn)品中檢驗(yàn)項(xiàng)目等級(jí)為i的占比。
值得注意的是,綜合風(fēng)險(xiǎn)等級(jí)加大了對(duì)嚴(yán)重?fù)p害身體健康的檢驗(yàn)項(xiàng)目的懲罰力度,若一個(gè)產(chǎn)品的任一檢驗(yàn)項(xiàng)目風(fēng)險(xiǎn)等級(jí)為5,則產(chǎn)品綜合風(fēng)險(xiǎn)等級(jí)為5級(jí),而不使用公式(1)計(jì)算。
1.1.4 特征構(gòu)造
由于原數(shù)據(jù)中模型可用的特征較少,故利用清洗后數(shù)據(jù)集中的日期及省份變量進(jìn)行特征構(gòu)造。研究表明[18]通過多個(gè)字段構(gòu)造新特征作為輸入變量,新特征能夠包含無法直接獲取的重要影響因素。結(jié)合生產(chǎn)日期、抽樣日期和保質(zhì)期重新構(gòu)造新特征“保鮮度”,用lasting表示,簡(jiǎn)記為l,具體計(jì)算方法見公式(2)。
式中:
li——自定義的第i個(gè)產(chǎn)品保鮮度;
ai——第i個(gè)產(chǎn)品的抽樣日期;
βi——第i個(gè)產(chǎn)品的生產(chǎn)日期;
periodi——第i個(gè)產(chǎn)品的保質(zhì)期。
保鮮度值分布在[0,1]區(qū)間時(shí)肉制品在保質(zhì)期內(nèi),當(dāng)保鮮度大于1時(shí)為過期產(chǎn)品。
根據(jù)產(chǎn)品生產(chǎn)省份和抽樣省份信息構(gòu)造新特征“省份一致性”,用province_consistance表示,若生產(chǎn)省份與抽樣省份一致,則記為yes,若不一致則記為no。
1.1.5 獨(dú)熱編碼(One-Hot Encoding)
為了進(jìn)一步探究因素中的不同取值對(duì)食品安全風(fēng)險(xiǎn)的影響,采用one-hot encoding處理變量。one-hot encoding又稱一位有效編碼,可以處理非連續(xù)性數(shù)據(jù)特征,不但能一定程度上擴(kuò)充特征維度,還可以處理缺失數(shù)據(jù),是將類別變量轉(zhuǎn)換為機(jī)器學(xué)習(xí)算法易于利用的一種形式的過程[29]。目前多用one-hot encoding處理特征作為輸入變量來提高模型的分類精度、決策質(zhì)量以及計(jì)算時(shí)間[30-32]。本文采用one-hot encoding對(duì)變量特征進(jìn)行處理,不但能擴(kuò)充數(shù)據(jù)特征的維度,還能具體比較各取值對(duì)肉制品等級(jí)分類的影響程度,但使用過程中需要慎重選擇擴(kuò)充的變量,盲目擴(kuò)充所有變量易造成維度災(zāi)難,嚴(yán)重影響模型效果。為探究季節(jié)性因素對(duì)肉制品安全風(fēng)險(xiǎn)等級(jí)的影響,使用one-hot encoding對(duì)月份(month)變量處理將其轉(zhuǎn)化為二進(jìn)制輸入形式,然后轉(zhuǎn)化為稀疏0,1矩陣作為輸入變量。處理后月份變量由1維增加到12維,程序中默認(rèn)從0開始編碼,故一月為month_0,二月為month_1,其余月份以此類推。表3給出one-hot encoding編碼前后月份變量的比較。
表3 獨(dú)熱編碼處理前后月份變量比較Table 3 Comparison of monthly variables before and after one-hot encoding
1.1.6 數(shù)據(jù)集變量說明
結(jié)合肉制品數(shù)據(jù)特征和研究目的,決策樹模型具有較好的適用性,本文優(yōu)化模型均以決策樹為基礎(chǔ)構(gòu)造。但部分特征的變量種類過多,若按照原始類別建樹易導(dǎo)致樹過大、枝過多以及過擬合現(xiàn)象,為了提高構(gòu)建的基礎(chǔ)樹質(zhì)量,將部分變量的值重新分組后作為模型的輸入變量,將各生產(chǎn)省份根據(jù)國(guó)家地理區(qū)域?qū)⑵浞譃榘藗€(gè)大類記作地區(qū)(Areas)變量,其中生產(chǎn)地非中國(guó)的抽樣產(chǎn)品一律歸為境外類別。抽樣地區(qū)以實(shí)際情況對(duì)餐館、生產(chǎn)線等進(jìn)行合并記作位置(Location)變量。分組后變量的取值均用英文字符表示。數(shù)據(jù)經(jīng)過處理變換后對(duì)相應(yīng)的符號(hào)含義以及模型中的變量符號(hào)相關(guān)說明見表4。
表4 變量及符號(hào)說明Table 4 Description of variables and symbols
1.1.7 數(shù)據(jù)重采樣
經(jīng)上述一系列處理后得到模型的輸入和輸出變量,可使用該數(shù)據(jù)集進(jìn)行分類模型學(xué)習(xí)。分類模型基本假設(shè)為樣本類是平衡的,而本文研究數(shù)據(jù)嚴(yán)重偏離平衡。不平衡樣本下訓(xùn)練模型往往為達(dá)到更高的精確率,偏向于多類別的樣本而忽略少類別的樣本[33]。抽樣肉制品數(shù)據(jù)中1級(jí)產(chǎn)品較多(安全),但需要重點(diǎn)關(guān)注對(duì)象為含有風(fēng)險(xiǎn)的產(chǎn)品,特別是5級(jí)(嚴(yán)重?fù)p害身體健康),以不平衡數(shù)據(jù)建模缺乏實(shí)際意義且影響模型分類效果,因此要解決不平衡數(shù)據(jù)問題。一般不平衡數(shù)據(jù)的處理方法有欠采樣、過采樣、闕值移動(dòng)[34]。但由于闕值移動(dòng)過于復(fù)雜,欠采樣會(huì)損失大量樣本信息,故選擇過采樣。過采樣又稱上采樣,在本研究中即對(duì)除1級(jí)以外各等級(jí)的產(chǎn)品在原始數(shù)據(jù)中重復(fù)抽樣以增大數(shù)據(jù)量,使其能夠充分挖掘少量樣本中的信息。圖2為本研究的采樣示意圖。
圖2 采樣示意圖Fig.2 Demonstration of sampling
經(jīng)清洗處理后的數(shù)據(jù)集中含38 315條數(shù)據(jù),風(fēng)險(xiǎn)等級(jí)為1級(jí)的產(chǎn)品為29 770條,占中總體的77.70%,2級(jí)、3級(jí)、4級(jí)、5級(jí)的數(shù)據(jù)分別為1 001條、1 686條、4 713條、1 145條,分別占總體的2.61%、4.40%、12.30%、2.99%??梢姌颖敬嬖趪?yán)重的數(shù)據(jù)不平衡現(xiàn)象。圖3為不平衡樣本數(shù)據(jù)集在決策樹模型上的分類可視化結(jié)果(部分),由于1級(jí)產(chǎn)品數(shù)量遠(yuǎn)大于其他等級(jí)產(chǎn)品數(shù)量,圖中顯示多數(shù)分類結(jié)果為1級(jí),失衡樣本下模型的分類結(jié)果無法學(xué)習(xí)到有風(fēng)險(xiǎn)的產(chǎn)品,更難以挖掘具有嚴(yán)重安全風(fēng)險(xiǎn)食品與影響因素之間的關(guān)聯(lián),顯然缺乏實(shí)際研究意義。綜上所述,使用上采樣改善不平衡數(shù)據(jù),1級(jí)數(shù)量保持不變,將1級(jí)數(shù)量與2、3、4、5級(jí)產(chǎn)品數(shù)量分別按照8:2、7:3、6:4擴(kuò)充數(shù)據(jù)量少數(shù)類的樣本。表5為各比例上采樣后的數(shù)據(jù)量。
表5 上采樣數(shù)據(jù)量說明Table 5 Description of volumes of oversampling
圖3 決策樹部分可視化結(jié)果Fig.3 A part of visualization results of DT
集成學(xué)習(xí)(Ensemble Learning)通過構(gòu)建并結(jié)合多個(gè)學(xué)習(xí)器來完成學(xué)習(xí)任務(wù),也被稱為多分類器系統(tǒng)。相比于單一學(xué)習(xí)器,將多個(gè)學(xué)習(xí)器結(jié)合能獲得顯著優(yōu)越的泛化性[34,35]。根據(jù)個(gè)體學(xué)習(xí)器生成方式集成學(xué)習(xí)分為Boosting和Bagging兩類,前者個(gè)體學(xué)習(xí)器之間存在強(qiáng)依賴關(guān)系,必須串行依次生成新的學(xué)習(xí)器;后者個(gè)體學(xué)習(xí)器之間不存在強(qiáng)依賴關(guān)系,可同時(shí)并行生成多個(gè)學(xué)習(xí)器。圖4為集成學(xué)習(xí)模型的構(gòu)建示意圖。
圖4 集成學(xué)習(xí)示意圖Fig.4 Sketch map of Ensemble Learning
其中個(gè)體學(xué)習(xí)器又稱基學(xué)習(xí)器,相同個(gè)體學(xué)習(xí)器之間的集成稱“同質(zhì)”的集成,不同個(gè)體學(xué)習(xí)器之間的集成稱“異質(zhì)”的集成。本文以決策樹為基學(xué)習(xí)器,分別構(gòu)建XGBOOST和RF兩個(gè)同質(zhì)集成模型用于肉制品安全風(fēng)險(xiǎn)等級(jí)預(yù)警研究。
1.2.1 決策樹(Decision Tree,DT)
決策樹是常見的機(jī)器學(xué)習(xí)方法,其構(gòu)建主要包括特征選擇、決策樹的生成、決策樹的修剪[34]。特征選擇依據(jù)信息論的相關(guān)理論進(jìn)行,這一過程對(duì)應(yīng)特征空間的劃分和決策樹的生成,而決策樹的修剪利用驗(yàn)證數(shù)據(jù)集對(duì)已生成的樹進(jìn)行剪枝并選擇最優(yōu)子樹。其中特征選擇是決策樹算法的核心,選擇劃分的特征依據(jù)該屬性含有信息量,1948年香農(nóng)提出的“信息熵”可以對(duì)信息量進(jìn)行量化度量[36]。式(3~7)為決策樹中信息熵(Ent)、信息增益(Gain)、信息增益率(Gain_ratio)、基尼系數(shù)(Giin)的計(jì)算方法。
式中:
D——樣本集,第k類樣本所占比例為Pk,k=1, 2, 3, …, |y|;
A——離散屬性;
V——屬性A包含的可能V個(gè)取值A(chǔ)1,A2, …,Av;
Dv——D中包含的所有屬性A取值為Av的樣本,Ⅳ(A)稱為屬性A的固有值,屬性A的可能取值數(shù)目越多(即V越大),則Ⅳ(A)的值越大。
決策樹經(jīng)典算法有ID3、C4.5和CART,分別用信息增益、信息增益比和基尼系數(shù)來進(jìn)行特征選擇。決策樹計(jì)算復(fù)雜度低,輸出結(jié)果易于理解,對(duì)缺失值不敏感,可以處理不相關(guān)數(shù)據(jù),但容易產(chǎn)生過擬合的問題,對(duì)此引入的集成學(xué)習(xí)模型,秉承了決策樹算法優(yōu)點(diǎn)的同時(shí)緩和了過擬合現(xiàn)象,能有效提高模型的性能。
1.2.2 極端梯度提升樹算法(Extreme Gradient Boosting,XGBOOST)
XGBOOST是Boosting算法的經(jīng)典代表之一,基模型按分步前向加進(jìn)行,訓(xùn)練基模型的訓(xùn)練集加入了正則項(xiàng)的損失函數(shù)每次都進(jìn)行一定的轉(zhuǎn)化,在迭代完成之后才進(jìn)行下一次迭代,這不僅能夠提高運(yùn)行速度和準(zhǔn)確率還能夠有效的抑制過擬合[22,34]。本研究中的基模型采用CART樹,通過串行的方式對(duì)多個(gè)樹進(jìn)行迭代,最終輸出結(jié)果為產(chǎn)品綜合風(fēng)險(xiǎn)等級(jí)。圖5為XGBOOST模型的構(gòu)造過程。
圖5 XGBOOST原理示意圖Fig.5 Schematic diagram of XGBOOST
1.2.3 隨機(jī)森林(Random Forest,RF)
RF是bagging的擴(kuò)展變體,以DT為基學(xué)習(xí)器構(gòu)建bagging集成,進(jìn)一步在決策樹訓(xùn)練過程中引入隨機(jī)屬性選擇[34]。RF準(zhǔn)確率高,泛化能力好,能夠有效處理大數(shù)據(jù)集,在眾多現(xiàn)實(shí)任務(wù)中展現(xiàn)出強(qiáng)大的性能[18]。本研究將處理后的實(shí)驗(yàn)數(shù)據(jù)集作為輸入變量,首先隨機(jī)選擇包含k個(gè)屬性的子集,其次以包含不同子集的N個(gè)子數(shù)據(jù)集分別構(gòu)建決策樹,最后通過投票機(jī)制確定最終肉制品的風(fēng)險(xiǎn)等級(jí)類別。圖6為RF模型的構(gòu)建過程。
圖6 隨機(jī)森林原理示意圖Fig.6 Schematic diagram of random forest
1.2.4 最優(yōu)模型技術(shù)路線圖
本文以DT為基礎(chǔ),將集成學(xué)習(xí)引入肉制品安全風(fēng)險(xiǎn)等級(jí)預(yù)警模型的應(yīng)用中,構(gòu)建了XGBOOST和RF兩個(gè)模型,并以肉制品風(fēng)險(xiǎn)等級(jí)分類的結(jié)果以及評(píng)價(jià)指標(biāo)來比較說明模型效果。經(jīng)特征構(gòu)造、數(shù)據(jù)重采樣、超參數(shù)優(yōu)化等優(yōu)化處理后XGBOOST在肉制品安全風(fēng)險(xiǎn)等級(jí)預(yù)警中效果最佳(對(duì)比分析見2.2.2節(jié)模型比較分析)。圖7為本文最優(yōu)XGBOOST模型的構(gòu)建框架。
圖7 肉制品安全風(fēng)險(xiǎn)等級(jí)預(yù)警的最優(yōu)模型Fig.7 Optimal model for risk level warning of meat products
1.3.1 特征重要性
基于樹的集成模型,特征的重要性是在所有單顆樹上該特征重要性的一個(gè)平均值,單顆樹上特征重要性是該特征進(jìn)行分裂后平方損失的減少量的求和,即把這個(gè)變量在所有樹上出現(xiàn)的節(jié)點(diǎn)數(shù)累計(jì)求和,若該特征在所有樹上出現(xiàn)的次數(shù)越多則越重要。
模型的輸入變量為1.1.6節(jié)中處理后的變量,每個(gè)變量稱為特征xj,其中j取值為areas、location、lasting、保質(zhì)期、食品品種、是否大型生產(chǎn)企業(yè)、是否大型生產(chǎn)企業(yè)、是否進(jìn)口、month(/month_1,…,month_12)。記作重要程度,特征xj在整個(gè)模型中的重要程度:
特征xj在單獨(dú)一棵樹上的特征重要程度:
式中:
M——模型中的樹的數(shù)量;
Tm——第m棵樹,滿足m∈{1, 2, …,M};
L-1——樹中非葉子節(jié)點(diǎn)數(shù)量;
vt——在內(nèi)部節(jié)點(diǎn)t進(jìn)行分列式選擇的特征;
——內(nèi)部節(jié)點(diǎn)t分裂后平方損失的減少量。
本文將one-hot encoding處理后變量作為集成模型的輸入變量,再通過計(jì)算特征重要性排序,能夠更精確對(duì)比不同特征取值對(duì)于肉制品安全風(fēng)險(xiǎn)等級(jí)分類的影響程度。
1.3.2 性能度量指標(biāo)
分類模型的評(píng)價(jià)指標(biāo)通常為分類準(zhǔn)確率,以準(zhǔn)確率作為評(píng)價(jià)指標(biāo)便于理解,但對(duì)于多分類問題來說相對(duì)單一[37,38]。為了更全面地選擇最佳模型、評(píng)估模型性能,使用混淆矩陣和多個(gè)評(píng)價(jià)指標(biāo)綜合比較分析模型的效應(yīng)。本文使用的評(píng)價(jià)指標(biāo)有準(zhǔn)確率(Accuracy)、精確率(Precision)、召回率(Recall)、F1值(Precision和Recall的調(diào)和平均數(shù))。表6和公式(10~13)為混淆矩陣以及各指標(biāo)計(jì)算方法,本文對(duì)于模型的整體效果主要以F1綜合判斷,輔助參考Accuracy、Precision和Recall指標(biāo)。
表6 混淆矩陣Table 6 Confusion matrix
本文的實(shí)驗(yàn)環(huán)境為64位Windows10計(jì)算機(jī)處理器和操作系統(tǒng),相應(yīng)配置的CPU:Intel第11代處理器,處理器型號(hào)為i5-1135G7,主頻2.40 GHz,內(nèi)存16 GB。Anaconda作為開源的Python發(fā)行版本,包含大量工具包且能夠并存多個(gè)版本Python。本研究代碼基于Anaconda 4.10.3中的Jupyter Notebook平臺(tái)通過Python 3.7實(shí)現(xiàn),數(shù)據(jù)處理使用numpy和pandas包,集成學(xué)習(xí)模型的構(gòu)建通過調(diào)用sklearn模塊中的Random Forest Classifier和xgboost模塊中的XGBClassifier,展示分類結(jié)果的混淆矩陣圖使用matplotlib包繪制,模型的超參數(shù)優(yōu)化借助于Bayesian Optimization庫(kù)。將1.1.7節(jié)重采樣后的數(shù)據(jù)集中的areas等特征作為輸入變量,產(chǎn)品綜合風(fēng)險(xiǎn)等級(jí)level作為輸出變量,按照8:2將數(shù)據(jù)分為訓(xùn)練集和測(cè)試集,設(shè)定劃分?jǐn)?shù)據(jù)集的種子為66以保證不同模型下訓(xùn)練集和測(cè)試集的一致性。
2.1.1 混淆矩陣分析
本文將2013-2017年的肉制品監(jiān)測(cè)數(shù)據(jù)經(jīng)處理采樣后分別在決策樹、XGBOOST和RF模型中進(jìn)行分類綜合評(píng)價(jià),得到各模型下測(cè)試集分類的混淆矩陣。圖8為以8:2采樣的編碼和超參數(shù)調(diào)節(jié)前后生成的混淆矩陣,本文肉制品數(shù)據(jù)類別為5類,當(dāng)對(duì)少數(shù)類以8:2進(jìn)行采樣時(shí),安全肉制品(1級(jí))與有風(fēng)險(xiǎn)肉制品(2級(jí)、3級(jí)、4級(jí)和5級(jí))的數(shù)量比例恰好為1:1,相對(duì)均衡(其他比例采樣以及模型的混淆矩陣不展示)。在混淆矩陣中右側(cè)的顏色深淺可直觀看到各類的數(shù)量,顏色越深數(shù)量越多,左側(cè)坐標(biāo)0~4分別表示實(shí)際等級(jí)1級(jí)、2級(jí)、3級(jí)、4級(jí)和5級(jí),底部坐標(biāo)0~4分別表示預(yù)測(cè)的等級(jí)1級(jí)、2級(jí)、3級(jí)、4級(jí)和5級(jí),對(duì)角線上的值表示實(shí)際類別和預(yù)測(cè)類別一致的數(shù)量。
圖8 測(cè)試集混淆矩陣Fig.8 Confusion matrix of test set
由圖8混淆矩陣,首先對(duì)比(a)和(b),參數(shù)優(yōu)化后對(duì)角線上的顏色明顯加深,最左邊一列的顏色變線,說明經(jīng)過超參數(shù)優(yōu)化后的預(yù)測(cè)效果明顯提升;其次對(duì)比(a)和(c),對(duì)角線上前2個(gè)顏色較深,其余均較淡,左邊第一例中后3個(gè)顏色較深,說明1級(jí)2級(jí)分類效果好,而3、4、5級(jí)分類較差,但經(jīng)過處理后(c)對(duì)角線上以外區(qū)域顏色比較淡,說明錯(cuò)分類別有顯著的改善,從方格中標(biāo)注數(shù)據(jù)量也能夠證明效果的提升;最后(d)展示出來顏色對(duì)比較為鮮明,說明了雙重處理下比單一處理更有效。
2.1.2 評(píng)價(jià)指標(biāo)分析
混淆矩陣簡(jiǎn)單直觀展示了分類的大致趨勢(shì),為了進(jìn)一步說明肉制品模型分類的有效性,表7給出XGBOOST模型(決策樹和RF模型的處理方式相同,本文不展示決策樹和RF各類別分類結(jié)果數(shù)據(jù),僅在2.2.2節(jié)中給出綜合指標(biāo)進(jìn)行比較)不同采樣情況下測(cè)試集的超參數(shù)調(diào)節(jié)以及one-hot encoding處理前后各肉制品風(fēng)險(xiǎn)等級(jí)分類的具體指標(biāo)。
表7 測(cè)試集各級(jí)產(chǎn)品評(píng)價(jià)指標(biāo)Table 7 Test set product evaluation indexes at all levels
由表7中結(jié)果可得:在XGBOOST模型中,(1)首先對(duì)比獨(dú)熱編碼處理,該編碼后模型的肉制品風(fēng)險(xiǎn)等級(jí)分類的各指標(biāo)有小幅度提高,使用one-hot encoding提高F1值的同時(shí)能夠更加具體分析月份取值的影響程度;(2)其次分析超參數(shù)優(yōu)化,結(jié)果顯示,經(jīng)貝葉斯優(yōu)化后各指標(biāo)上升效果顯著,Precision平均提高了0.18、Recall平均提高了0.22、F1值平均提高了0.2;(3)最后比較各個(gè)風(fēng)險(xiǎn)等級(jí)肉制品的總體分類效果在不同處理下的情況,1級(jí)Precision最高,2級(jí)和5級(jí)Recall最高,2級(jí)和5級(jí)F1值最高,綜合看2、5級(jí)分類效果最好,其次是1、3級(jí),相比之下4級(jí)的分類效果稍差。綜上,XGBOOST模型在肉制品安全風(fēng)險(xiǎn)等級(jí)分類中的應(yīng)用效果較好,且隨著one-hot encoding處理和超參數(shù)調(diào)節(jié),穩(wěn)定性進(jìn)一步得到了提高,能夠較好的實(shí)現(xiàn)肉制品風(fēng)險(xiǎn)等級(jí)的分類預(yù)警。
2.1.3 特征重要性分析
利用特征重要性分析對(duì)原始特征進(jìn)行變量選擇并確定時(shí)間維度的變量,以及one-hot encoding處理后的各因素分析。由于編碼后變量較多,僅保留前十個(gè)重要特征分析,圖9為變量的特征重要性結(jié)果。
圖9 變量選擇和特征重要性分析Fig.9 Variable selection and feature importance analysis
圖9a為原始特征的部分特征重要性排序,位居前三位的分別是lasting、month、保質(zhì)期。Lasting對(duì)食品安全分級(jí)影響最大,而是否進(jìn)口、是否大型生產(chǎn)企業(yè)、是否大型經(jīng)營(yíng)企業(yè)分類的影響程度很小,結(jié)合原始數(shù)據(jù)情況,進(jìn)出口數(shù)據(jù)較少使得對(duì)于風(fēng)險(xiǎn)等級(jí)的分類不夠明顯。是否是大型生產(chǎn)企業(yè)、是否是大型經(jīng)營(yíng)企業(yè)的分類影響最小,由于原始數(shù)據(jù)中對(duì)于生產(chǎn)企業(yè)、經(jīng)營(yíng)企業(yè)的規(guī)模化分不夠具體,該分類辨識(shí)度較低,沒有中小型等企業(yè),類別劃分過于粗略對(duì)風(fēng)險(xiǎn)等級(jí)分類有一定程度的影響。原始特征的重要性排序顯示出變量月份對(duì)肉制品安全風(fēng)險(xiǎn)分級(jí)的重要性,故而對(duì)月份進(jìn)行one-hot encoding,再根據(jù)特征重要性比較月份取值的影響程度。此外還對(duì)其他變量進(jìn)行了one-hot encoding處理,經(jīng)過XGBOOST模型驗(yàn)證F1值沒有提高,僅有月份處理后有了一定的提高,故本文僅對(duì)月份進(jìn)行擴(kuò)充,同時(shí)避免了維度災(zāi)難。
圖9b中處理后的特征重要性可分為三個(gè)層次。(1)lasting;該指標(biāo)直接反應(yīng)抽樣產(chǎn)品的新鮮程度也間接包含了存儲(chǔ)的溫度要求、包裝等難以獲取的復(fù)雜因素,該指標(biāo)所處位置一定程度反映了食品安全中的不確定風(fēng)險(xiǎn)包含因素多。(2)保質(zhì)期、areas;兩者相差不大,保質(zhì)期長(zhǎng)短對(duì)于保鮮劑以及存儲(chǔ)條件有不同限制,在不同環(huán)境下也有可能引起食物出現(xiàn)安全問題,該環(huán)節(jié)的影響也要重視。(3)食品品種新、location、province_consistance、month_7、month_6、month_8、month_5;食品種類和抽樣地點(diǎn)表明不同產(chǎn)品生產(chǎn)條件等情況的差異,對(duì)食品安全風(fēng)險(xiǎn)的影響較大。province_consistance對(duì)食品安全風(fēng)險(xiǎn)等級(jí)的分類影響同樣較高,該指標(biāo)表示生產(chǎn)省份和抽樣省份是否一致,包含了產(chǎn)品抽檢前階段經(jīng)歷的運(yùn)輸時(shí)長(zhǎng)和路程的信息量,結(jié)果顯示對(duì)食品安全的影響較為重要。使用one-hot encoding能具體了解各個(gè)月份對(duì)于食品安全風(fēng)險(xiǎn)等級(jí)分類的影響,位列前面的分別是6月、4月、5月和7月,月份作為季節(jié)性因素直接表現(xiàn)變量,包含了整年度外部溫度環(huán)境,季節(jié)性需求、季節(jié)性生產(chǎn)量等難以收集的復(fù)雜因素,處理前后月份的重要性充分說明了其中包含的信息量多,對(duì)肉制品安全風(fēng)險(xiǎn)影響之大。
2.2.1 模型參數(shù)優(yōu)化
由于各算法參數(shù)配置存在差異,對(duì)不同模型下的重要參數(shù)進(jìn)行調(diào)節(jié),使用貝葉斯優(yōu)化(Bayesian Optimization)對(duì)超參數(shù)調(diào)節(jié),該方法比sklearn中的網(wǎng)格搜索(Grid Search CV)調(diào)節(jié)效率更高,運(yùn)行速度更快且更加穩(wěn)健[39]。本文通過貝葉斯優(yōu)化調(diào)節(jié)DT、XGBOOST和RF的相關(guān)超參數(shù),在訓(xùn)練數(shù)據(jù)集中使用5折交叉驗(yàn)證調(diào)整優(yōu)化。
表8中展示的為三個(gè)模型重點(diǎn)調(diào)節(jié)的超參數(shù)。max_depth為樹的最大深度,min_samples_leaf表示葉子節(jié)點(diǎn)最少樣本數(shù),max_feature決定單個(gè)決策樹使用特征的最大數(shù)量,min_samples_split內(nèi)部節(jié)點(diǎn)劃分需要的最小樣本數(shù),learning_rate可提高模型的魯棒性,n_estimators為迭代次數(shù),表示生成樹的數(shù)量,subsample控制每棵樹隨機(jī)采樣的比例,可調(diào)節(jié)過擬合和欠擬合。consample_byterr表示每棵樹隨機(jī)采樣特征占比,min_child_weight表示最小葉子節(jié)點(diǎn)權(quán)重和。每個(gè)模型下通過貝葉斯優(yōu)化尋找最優(yōu)的參數(shù)組合進(jìn)而優(yōu)化模型性能,結(jié)合分類各指標(biāo)結(jié)果表明經(jīng)過超參數(shù)調(diào)節(jié)之后的模型性能得到了進(jìn)一步提升。
表8 不同模型的參數(shù)配置Table 8 Parameter configuration of different models
2.2.2 模型比較分析
本文研究了DT、XGBOOST和RF目前廣泛應(yīng)用的三個(gè)模型,其中集成學(xué)習(xí)模型XGBOOST和RF分別以DT為基礎(chǔ)的改進(jìn),通過肉制品抽檢數(shù)據(jù)的分類來對(duì)食品安全風(fēng)險(xiǎn)等級(jí)進(jìn)行預(yù)警,不同采樣情況的訓(xùn)練集和測(cè)試集隨機(jī)種子設(shè)定為66以保證數(shù)據(jù)集的一致性和可比性,表9為不同采樣情況下三個(gè)模型的最優(yōu)結(jié)果對(duì)比。
表9 不同模型評(píng)價(jià)指標(biāo)對(duì)比Table 9 Comparison of evaluation indexes of different model
由各模型下的訓(xùn)練集測(cè)試集準(zhǔn)確率以及F1值得出,(1)在采樣之后模型的分類效果F1值均能達(dá)到80%,整體效果較好,模型的測(cè)試集準(zhǔn)確率達(dá)到了94%,學(xué)習(xí)效果較好且各模型的訓(xùn)練效果沒有顯著區(qū)別。但根據(jù)測(cè)試集的分類準(zhǔn)確率反映出不同模型的泛化能力差別,測(cè)試集和訓(xùn)練集的準(zhǔn)確率的平均誤差中DT、XGBOOST和RF分為0.09、0.05和0.06,以綜合指標(biāo)F1值來看XGBOOST得分最高,相比之下集成模型中XGBOOST更適合肉質(zhì)品抽檢數(shù)據(jù)的安全風(fēng)險(xiǎn)評(píng)價(jià)分析。(2)根據(jù)不同采樣情況分析得出,隨著小樣本比例的提高,模型的學(xué)習(xí)能力有了顯著的提高。在樣本嚴(yán)重不平衡情況下,三個(gè)模型的訓(xùn)練集準(zhǔn)確率均高于采樣之后能夠達(dá)到95%,測(cè)試集準(zhǔn)確率在70%~80%之間,若只憑借準(zhǔn)確率來判定分類效果均在可接受范圍內(nèi),但從F1得分(綜合Precision和Recall)得分看效果顯然較差,F(xiàn)1平均值僅有35.20%,說明在不平衡樣本中僅憑準(zhǔn)確率作為模型評(píng)價(jià)標(biāo)準(zhǔn)的可信度較低。采樣后的F1值至少提高45%,當(dāng)采樣比例由8:2增加到6:4模型的F1值平均升高了7.73%,DT、XGBOOST和RF分別提高了9.13%、7.06%和7.02%,雖然DT整體提升效果最高,但綜合來看XGBOOST的提升F1值最高。綜合分析得到集成學(xué)習(xí)在肉制品安全風(fēng)險(xiǎn)分類中的效果較好,其中XGBOOST模型在肉制品安全風(fēng)險(xiǎn)評(píng)價(jià)分析中的應(yīng)用效果優(yōu)于單棵DT和RF,且隨著不平衡類別的處理,模型的效果得到顯著改善。
針對(duì)目前食品安全檢測(cè)數(shù)據(jù)囤積的情況,本文基于全國(guó)范圍內(nèi)肉制品抽檢數(shù)據(jù)提出了一種基于集成學(xué)習(xí)的肉制品安全風(fēng)險(xiǎn)等級(jí)評(píng)價(jià)的方法,以抽樣產(chǎn)品的綜合風(fēng)險(xiǎn)等級(jí)為目標(biāo)變量,并采用3種上采樣改善不平衡數(shù)據(jù),以DT為基礎(chǔ)分別構(gòu)建2個(gè)集成學(xué)習(xí)模型,聯(lián)合使用one-hot encoding和貝葉斯優(yōu)化進(jìn)行指標(biāo)細(xì)化和模型優(yōu)化,有效的弱化了不平衡數(shù)據(jù)影響、細(xì)化了影響因素、提升了模型效果。實(shí)驗(yàn)結(jié)果表明6:4重采樣結(jié)合XGBOOST的集成優(yōu)化模型在肉制品檢測(cè)數(shù)據(jù)中顯示出最佳效果。研究表明集成模型比決策樹單一模型更適用于肉制品食品安全監(jiān)測(cè),通過one-hot encoding進(jìn)一步反應(yīng)出變量取值對(duì)于食品風(fēng)險(xiǎn)的影響程度,為日常監(jiān)測(cè)中的食品抽檢重點(diǎn)方向提供參考,同時(shí)為今后集成學(xué)習(xí)在食品安全風(fēng)險(xiǎn)評(píng)預(yù)警的應(yīng)用提供了思路。對(duì)于未來的研究工作,將從以下兩個(gè)方面改進(jìn):一是對(duì)不平衡數(shù)據(jù)的處理深入討論。本文隨機(jī)重采樣一定程度緩解了不平衡中的過擬合和欠擬合,但有優(yōu)化提升的空間,下一步通過研究不平衡數(shù)據(jù)采樣方法的組合進(jìn)一步改善過擬合和欠擬合。二是特征構(gòu)造的變量一定程度彌補(bǔ)了數(shù)據(jù)的不足,但仍有多種復(fù)雜的因素需要挖掘。后續(xù)研究將針對(duì)此類檢測(cè)數(shù)據(jù)繼續(xù)挖掘影響肉制品安全風(fēng)險(xiǎn)的因素以提高分類的效率,深入分析各因素的影響程度。
本文以肉制品檢測(cè)數(shù)據(jù)的風(fēng)險(xiǎn)等級(jí)分類,通過提取的基本信息反應(yīng)出各環(huán)節(jié)對(duì)于食品安全風(fēng)險(xiǎn)等級(jí)的影響。食品安全抽檢部門以及相關(guān)食品安全管理局可根據(jù)各環(huán)節(jié)的影響程度調(diào)整抽檢力度和重點(diǎn)關(guān)注環(huán)節(jié),提高工作效率。食品安全涉及環(huán)節(jié)多,如運(yùn)輸時(shí)長(zhǎng)、路程、溫度、存儲(chǔ)條件等信息難以有效記錄,本研究的特征重要性分析結(jié)果顯示這些信息對(duì)食品安全的影響較為重要。肉制品原始數(shù)據(jù)具有數(shù)量大、信息密度低的特點(diǎn),建立更加完善的信息錄入系統(tǒng)提高食品數(shù)據(jù)的信息質(zhì)量,不但有利于對(duì)食品安全的監(jiān)管,還為今后在該領(lǐng)域開展深入的研究奠定了數(shù)據(jù)基礎(chǔ)。