李 丹, 盧 琰, 吳佩珊, 李春玲, 杜寶林,3
(1.廣東省科技基礎(chǔ)條件平臺中心,廣州 510006;2.廣東省農(nóng)業(yè)科學(xué)院動物衛(wèi)生研究所,廣州 510640;3.廣東省計算技術(shù)應(yīng)用研究所,廣州 510033)
隨著國民生活水平的提高,國內(nèi)畜禽養(yǎng)殖業(yè)得到了快速發(fā)展,其總產(chǎn)值目前占農(nóng)林牧漁業(yè)的30%以上[1],并朝著規(guī)模化、集約化以及智能化模式加速推進(jìn)。在這種形勢下,畜禽疫病防控問題愈加凸顯,存在爆發(fā)風(fēng)險大、人畜共患病危險高等,對產(chǎn)業(yè)的生產(chǎn)效益、產(chǎn)品出口以及公共衛(wèi)生安全構(gòu)成嚴(yán)重威脅[2-3]。
提高畜禽重大疫病診斷、防控與高效安全養(yǎng)殖綜合技術(shù)水平對畜禽養(yǎng)殖業(yè)健康發(fā)展尤為重要。目前畜禽疾病的檢測主要依靠獸醫(yī)以及行業(yè)專家的巡視與診斷,存在診斷滯后、交叉感染等不足,無法開展高質(zhì)量的群體化和個性化疾病防控管理工作[4]。
與此同時,隨著計算機(jī)與人工智能技術(shù)的發(fā)展,畜禽疾病檢測技術(shù)不斷升級,研究人員通過運用關(guān)聯(lián)、聚類以及分類等數(shù)據(jù)挖掘策略建立了各種有效的畜禽疾病風(fēng)險預(yù)測模型,例如BP神經(jīng)網(wǎng)絡(luò)[5-6]、決策樹[7]、支持向量機(jī)[8]、隨機(jī)森林[9]以及深度學(xué)習(xí)[10]等。葉嬋等[11]針對傳統(tǒng)專家系統(tǒng)推理能力弱以及自學(xué)習(xí)能力差等,提出一種基于BP 神經(jīng)網(wǎng)絡(luò)算法的蝦病害診斷以及防治專家系統(tǒng)。李尚汝等[12]利用機(jī)器學(xué)習(xí)算法建立奶牛疾病預(yù)測模型,并評估了人工神經(jīng)網(wǎng)絡(luò)(Artificial neural network,ANN)、決策樹、邏輯回歸等算法的性能,由實驗結(jié)果可知,基于機(jī)器學(xué)習(xí)的預(yù)測模型在畜禽疾病風(fēng)險預(yù)測應(yīng)用中展現(xiàn)了極大的潛力。ANN雖然在BP神經(jīng)網(wǎng)絡(luò)的基礎(chǔ)上有較大改進(jìn),并表現(xiàn)出較好的非線性映射能力以及自學(xué)習(xí)能力。但在實際工程應(yīng)用中通常存在著訓(xùn)練數(shù)據(jù)缺失等情況,ANN模型中存在較多的隱節(jié)點,在函數(shù)逼近的過程中該模型容易出現(xiàn)過擬合等。隨機(jī)森林算法對訓(xùn)練樣本缺失數(shù)據(jù)的敏感度較低,并且能較好地處理非均衡數(shù)據(jù),目前已被廣泛應(yīng)用于疾病預(yù)測研究[13]。Meng 等[14]設(shè)計了基于隨機(jī)森林與XGBoost 算法的疾病預(yù)測模型,并對手足口病的發(fā)病率及其影響因素進(jìn)行了分析和預(yù)測,取得了較好的預(yù)測性能。然而,當(dāng)輸入訓(xùn)練樣本數(shù)據(jù)集過大時,基于隨機(jī)森林算法的疾病預(yù)測模型容易出現(xiàn)過擬合現(xiàn)象,對疾病風(fēng)險預(yù)測的性能產(chǎn)生較大影響。針對于此,Mohan等[15]提出一種混合隨機(jī)森林與線性算法的預(yù)測模型,提高了疾病預(yù)測水平,準(zhǔn)確率達(dá)到88.7%。針對XGBoost模型收斂速度慢等缺陷,張春富等[16]利用遺傳算法(Genetic Algorithm,GA)優(yōu)異的全局優(yōu)化性能,設(shè)計了一種基于GA-XGBoost 算法的疾病預(yù)測模型,確保所設(shè)計算法在每一輪中的進(jìn)化效果最優(yōu)。因此,學(xué)習(xí)模型的集合方法比交叉驗證測試確定的“單一最佳”模型能夠獲得更為準(zhǔn)確的性能。
機(jī)器學(xué)習(xí)技術(shù)為畜禽疾病風(fēng)險預(yù)警預(yù)測提供了有效的解決方案,由于畜禽疾病數(shù)據(jù)集的相關(guān)數(shù)據(jù)記錄較少,增加了學(xué)習(xí)的復(fù)雜度[17-18];畜禽疾病數(shù)據(jù)集在類別中往往存在嚴(yán)重的分布不平衡,即絕大多數(shù)類別為正常案例,少數(shù)類別是患病案例,容易導(dǎo)致預(yù)測過擬合以及誤導(dǎo)等情況。為此,研究人員引入隨機(jī)過采樣[19]、重采樣[20]、動態(tài)采樣[21]以及合成少數(shù)樣本過采樣[22]等方法。Chen等[23]針對不平衡數(shù)據(jù)的復(fù)雜特性,提出一種新的過采樣技術(shù),并獲得較好的效果。陳旭等[24]針對不均衡醫(yī)學(xué)數(shù)據(jù)疾病預(yù)測,設(shè)計了一種基于欠采樣技術(shù)的集成分類模型,提高了疾病預(yù)測性能。如果樣本是隨機(jī)選取的,潛在的有用數(shù)據(jù)可能會被丟棄,Wang等[25]提出一種自步調(diào)學(xué)習(xí)的非平衡抽樣方法,可有效地選擇高質(zhì)量樣本,提高預(yù)測魯棒性。
本文根據(jù)豬口蹄疫實驗檢測的臨床指標(biāo),結(jié)合隨機(jī)森林的特征選擇優(yōu)勢和ANN的預(yù)測能力,設(shè)計了基于合成少數(shù)類過采樣技術(shù)(Synthetic Minority Oversampling Technique,SMTOE)算法的混合隨機(jī)森林(Random forest,RF)與ANN 的集成預(yù)測模型(SMOTE-Hybrid Random Forest-Artificial Neural Network,SMOTE-HRF-ANN);采用合成少數(shù)樣本過采樣技術(shù)算法SMTOE對非均衡訓(xùn)練數(shù)據(jù)集的少數(shù)樣本進(jìn)行線性插值以生成新的訓(xùn)練樣本,實現(xiàn)對數(shù)據(jù)集的均衡化處理;通過使用隨機(jī)森林算法對人工神經(jīng)網(wǎng)絡(luò)的輸入屬性進(jìn)行優(yōu)化,對相關(guān)特征進(jìn)行優(yōu)化選擇,能有效避免特征過多導(dǎo)致過擬合現(xiàn)象,提高畜禽疾病預(yù)測模型的預(yù)測精準(zhǔn)度。
在畜禽養(yǎng)殖領(lǐng)域由于疾病的發(fā)病率存在差異,容易導(dǎo)致畜禽疾病樣本數(shù)據(jù)樣本量小、不均衡等,樣本(即非患者病例樣本)往往在數(shù)據(jù)集中占比較高,不利于畜禽疾病預(yù)測模型的訓(xùn)練。本研究采用SMOTE 算法對訓(xùn)練數(shù)據(jù)集進(jìn)行插值處理[23]:
式中:rand(0,1)為區(qū)間(0,1)內(nèi)的隨機(jī)數(shù);Dmin為少數(shù)類數(shù)據(jù);Πi為距離樣本Dmin的v個最近鄰樣本中的第i個數(shù)據(jù)。
隨機(jī)森林模型是一類由多決策樹組成的自舉聚類(Bagging)方法,通過節(jié)點隨機(jī)分裂以及隨機(jī)重采樣構(gòu)建多棵決策樹,采用投票的方式獲得模型的預(yù)測結(jié)果[14]。
本研究采用隨機(jī)森林通過分類回歸樹生成的決策樹的策略進(jìn)行學(xué)習(xí)。隨機(jī)森林在訓(xùn)練集總樣本中隨機(jī)又放回地抽取n個子樣本;將每一個單獨抽取的子樣本對單棵決策樹進(jìn)行循環(huán)處理,構(gòu)建由n個決策樹所組成的決策“森林”,具體步驟如下:
步驟1 預(yù)設(shè)初始參數(shù)。設(shè)置n棵決策樹以及決策樹節(jié)點的閾值。
步驟2 獲取數(shù)據(jù)子集。在預(yù)設(shè)參數(shù)的基礎(chǔ)上,以隨機(jī)森林理論思想,根據(jù)自主抽樣法從疾病原始數(shù)據(jù)集D中有放回地隨機(jī)抽取n個獨立的訓(xùn)練子集D={D1,D2,…,Dn},在此抽樣過程中,獨立抽樣n次,每個子樣本沒有被抽取的概率
步驟3 隨機(jī)選取節(jié)點特征指標(biāo)。根據(jù)所獲取的數(shù)據(jù)子集建立個體決策樹,計算每個節(jié)點特征指標(biāo)的純度以獲得Gini 指數(shù)[14](采用Gini 值作為純度標(biāo)準(zhǔn)來分割節(jié)點)
式中,pn為從當(dāng)前的樣本空間中各取值的概率。
步驟4 確定分裂節(jié)點。在獲得Gini 值的基礎(chǔ)上,對Gini指數(shù)最大的節(jié)點進(jìn)行分裂,同時重新計算Gini指數(shù);通過循環(huán)步驟使得對應(yīng)指數(shù)小于初始設(shè)置的閾值,生成目標(biāo)的決策“森林”。
步驟5 遞歸分類?;谏鲜霾襟E,對生成的決策樹分類結(jié)果進(jìn)行反饋,根據(jù)票數(shù)最多的原則選擇指標(biāo)變量的最佳線性分解的方法,實現(xiàn)對疾病風(fēng)險指標(biāo)特征的排序。其中,RF模型生成流程如圖1 所示。
圖1 RF模型生成流程
綜上,隨機(jī)森林模型能通過構(gòu)建多個決策樹的方法獲得準(zhǔn)確的預(yù)測結(jié)果,并對樣本缺失數(shù)據(jù)的敏感度較??;當(dāng)輸入的訓(xùn)練樣本數(shù)據(jù)集過大時,訓(xùn)練模型容易出現(xiàn)過擬合現(xiàn)象,對疾病風(fēng)險預(yù)測的性能產(chǎn)生較大影響。
ANN主要由輸入層、隱藏層以及輸出層組成。網(wǎng)絡(luò)中的隱藏層包含若干神經(jīng)元,且各神經(jīng)元間通過帶可變權(quán)重的有向弧進(jìn)行連接;該模型能通過對已知樣本信息進(jìn)行學(xué)習(xí)訓(xùn)練,達(dá)到處理大量信息的目的[12]。ANN結(jié)構(gòu)如圖2 所示。
圖2 人工神經(jīng)網(wǎng)絡(luò)結(jié)構(gòu)圖
在畜禽疾病預(yù)警預(yù)測領(lǐng)域,動物疾病樣本存在數(shù)據(jù)集中以及數(shù)據(jù)不均衡等,這對疾病風(fēng)險預(yù)測模型的訓(xùn)練產(chǎn)生巨大的挑戰(zhàn),容易出現(xiàn)模型過擬合,降低模型預(yù)測的可靠性。
考慮到ANN具備優(yōu)異的非線性匹配以及泛化能力。本研究結(jié)合隨機(jī)森林在特征選擇中的優(yōu)勢以及ANN在預(yù)測中的能力,提出一種基于SMTOE 算法的混合隨機(jī)森林與ANN 集成預(yù)測模型SMOTE-HRFANN。將經(jīng)SMOTE算法處理過的數(shù)據(jù)輸入隨機(jī)森林模型進(jìn)行訓(xùn)練;通過計算其特征屬性的Gini 指數(shù),排除Gini指數(shù)最高的特征;對隨機(jī)森林模型進(jìn)行新一輪的訓(xùn)練以得到新的Gini指數(shù)排名;通過重復(fù)上一步驟直到每一個特征的Gini 指數(shù)都保持在預(yù)設(shè)的閾值范圍內(nèi)。將隨機(jī)森林模型優(yōu)選后的特征輸入ANN 進(jìn)行預(yù)測處理,以獲得精確度較高的疾病風(fēng)險預(yù)測值。其算法流程如圖3 所示。
圖3 SMOTE-HRF-ANN算法流程
SMOTE-HRF-ANN算法步驟如下:
步驟1 輸入目標(biāo)疾病樣本數(shù)據(jù)集D。
步驟2 預(yù)設(shè)數(shù)據(jù)集非均衡尺度Ω0=1,其中多數(shù)類樣本數(shù)據(jù)設(shè)為Dmax,少數(shù)類樣本數(shù)據(jù)設(shè)為Dmin。
步驟3 判斷Dmax與Dmin數(shù)據(jù)集的大小。如果Dmax>Dmin,則進(jìn)行步驟4,否則進(jìn)行步驟5。
步驟4 對少數(shù)類數(shù)據(jù)集Dmin使用SMOTE 算法處理,以增加其樣本數(shù)量,得到數(shù)據(jù)集Domin。
步驟5 合并數(shù)據(jù)集Dmax與Domin得到數(shù)據(jù)集D0。
步驟6 計算非均衡尺度Ω =Dmax/Domin,判斷Ω與Ω0是否相等,如果Ω≠Ω0則返回步驟3,否則進(jìn)行步驟7。
步驟7 輸入數(shù)據(jù)集D0。將獲得均衡的數(shù)據(jù)集D0使用所提出的算法對疾病風(fēng)險進(jìn)行預(yù)測研究,得到疾病診斷結(jié)果。
為研究面向非平衡數(shù)據(jù)集的疾病風(fēng)險預(yù)測模型的性能,分別對2 種特征不同的疾病數(shù)據(jù)集進(jìn)行對比,實驗數(shù)據(jù)集分別來自于:
(1)Kaggle平臺提供的UCI 心臟病數(shù)據(jù)集,有效患者數(shù)據(jù)為303 例,其中,非患者樣本164 例、患者樣本139 例。常見的13 個心臟病主要屬性見表1。其中,Num屬性表示患者診斷結(jié)果,用以分類樣本。
表1 UCI心臟病數(shù)據(jù)集特征信息表
(2)豬口蹄疫疾病數(shù)據(jù)集來源于某省農(nóng)業(yè)科學(xué)院動物衛(wèi)生研究所的實驗室送樣樣本的檢測數(shù)據(jù),總計檢測數(shù)據(jù)244 條;該數(shù)據(jù)集特征信息包含年齡、豬類型、血清試驗結(jié)果、養(yǎng)殖環(huán)境溫度、養(yǎng)殖環(huán)境濕度、是否出現(xiàn)水泡和蹄殼是否脫落等特征數(shù)據(jù)。
為驗證疾病預(yù)測模型在非平衡數(shù)據(jù)集中的性能,采用ROC 曲線(Receiver Operating Characteristic,ROC)對預(yù)測模型的性能進(jìn)行評價與對比,具體指標(biāo)選擇了精確率、F1-Score 值和召回率。其中,定義TP、FP分別為實例為正類的正確預(yù)測數(shù)與錯誤預(yù)測數(shù),TN、FN分別為實例為負(fù)類的正確預(yù)測數(shù)與錯誤預(yù)測數(shù)。則精確率(Precision)
召回率(Recall)
為驗證SOMTE-HRF-ANN 算法面向非均衡訓(xùn)練數(shù)據(jù)集的疾病預(yù)測性能,將算法與RF[14]、XGBoot[16]、SOMTE-RF以及SOMTE-XGBoot 等算法進(jìn)行對比,實驗結(jié)果見表2、3,不同算法在UCI數(shù)據(jù)集中的ROC 變化如圖4 所示,不同算法在豬口蹄疫數(shù)據(jù)集中的ROC變化如圖5 所示,圖中,area為曲線下面積。
表3 在UCI數(shù)據(jù)集中各模型對比評價指標(biāo)結(jié)果(患病病例)
圖4 在UCI數(shù)據(jù)集中不同算法的ROC變化
圖5 在豬口蹄疫數(shù)據(jù)集中不同算法的ROC變化
由圖4 可知,使用合成少數(shù)樣本過采樣技術(shù)SMOTE對數(shù)據(jù)集進(jìn)行處理后的模型分類性能有了一定程度的提升。隨機(jī)森林模型與XGBoot模型的Area值分別提高了1%和4%;在同等的情況下,SOMTEHRF-ANN預(yù)測模型的Area 值要高于其他的模型,最大提升了9%,驗證了所提方法的有效性以及優(yōu)越性。
由圖5 可知,在豬口蹄疫數(shù)據(jù)集中,所設(shè)計模型的ROC曲線的Area 值達(dá)到了96%,獲得了較好的預(yù)測性能。與此同時,由表2、3 可知,在UCI 數(shù)據(jù)集中,所設(shè)計的SMOTE-HRF-ANN 算法在少數(shù)類樣本中的精確率和F1-score值分別達(dá)到96%和85%,該算法在兩個指標(biāo)下都取得了較高值。由此表明,所設(shè)計方法相較于其他預(yù)測模型能有效地提高對非平衡樣本數(shù)據(jù)的疾病風(fēng)險預(yù)測性能,為實現(xiàn)畜禽疾病風(fēng)險預(yù)警預(yù)測的業(yè)務(wù)化運行進(jìn)行了積極的嘗試。
綜上所述,通過SMOTE 算法對訓(xùn)練樣本數(shù)據(jù)進(jìn)行處理,能有效增強(qiáng)預(yù)測模型在面對非均衡訓(xùn)練樣本數(shù)據(jù)時對少數(shù)類樣本的識別能力。
在畜禽養(yǎng)殖領(lǐng)域中由于疾病的發(fā)病率存在差異,導(dǎo)致畜禽疾病樣本數(shù)據(jù)樣本量小、不均衡,為避免畜禽疫病風(fēng)險預(yù)測模型過擬合,利用SMOTE 算法對訓(xùn)練數(shù)據(jù)集進(jìn)行均衡處理,并結(jié)合隨機(jī)森林和ANN 的特點,通過集成方法構(gòu)建混合集成預(yù)測模型SMOTEHRF-ANN。實驗結(jié)果表明:SMOTE-HRF-ANN 畜禽疾病風(fēng)險預(yù)警預(yù)測模型相較于隨機(jī)森林、XGBoost 等算法優(yōu)勢如下:
(1)利用少數(shù)樣本合成過采樣技術(shù)SMOTE 構(gòu)建平衡訓(xùn)練數(shù)據(jù)集,避免預(yù)測模型過擬合。
(2)使用ANN 對經(jīng)過隨機(jī)森林算法優(yōu)選后的特征進(jìn)行學(xué)習(xí)訓(xùn)練,避免特征冗余導(dǎo)致的預(yù)測精確度下降。
(3)SMOTE-HRF-ANN預(yù)測技術(shù)在實驗過程中多指標(biāo)的平均水平上表現(xiàn)更優(yōu),為實現(xiàn)畜禽疾病風(fēng)險預(yù)測業(yè)務(wù)化運行進(jìn)行了積極的嘗試。下一步研究將重點考慮多標(biāo)簽預(yù)測場景和小樣本預(yù)測研究,更加智能地實現(xiàn)疾病診斷。