馮 妍,高志天,鄭煒繽,楊仲濤,董 強
(1.西北農林科技大學信息工程學院,陜西楊凌 712100;2.西北農林科技大學動物醫(yī)學院,陜西楊凌 712100)
機器學習(Machine learning,ML)是研究如何使機器通過識別和利用現(xiàn)有知識獲取新知識的一門多領域交叉學科。ML可通過學習已有數(shù)據,建立一種模型或學習器,對未知的數(shù)據進行分析和預測。當今的農業(yè)生產會產生大量的數(shù)據,利用ML技術分析這些數(shù)據并建模將是農業(yè)大勢所趨[1]。在奶牛業(yè),隨著奶牛養(yǎng)殖的精細化和人工成本的增加,僅靠牛場的管理人員無法完成高質量的群體化和個性化管理工作,使ML在奶牛精準育種、群體管理和疾病監(jiān)測等領域有著廣泛的研究和應用前景[2-3]。在這些領域中,利用ML算法學習和訓練奶牛疾病的特有風險因素以預測和監(jiān)測奶牛疾病已成為精準乳業(yè)的研究方向[4-6]。應用ML預測奶牛代謝性疾病、乳房炎、傳染病、熱應激和跛行等疾病已成為國際上的研究熱點[5,7-10,4,6],但我國在此領域的研究起步較晚。本文就ML在奶牛臨床疾病預測方面的研究做一綜述,為我國開展這方面的研究提供參考。
ML利用數(shù)學方法和計算機技術對歷史數(shù)據進行分析得到規(guī)律并構建模型,對未知數(shù)據進行預測和分類。建模時,先將預處理好的奶牛數(shù)據輸入到ML分類器進行訓練,然后得到對未知數(shù)據進行預測的模型,對預測結果具有較大貢獻的特征可作為奶牛患病的潛在特征[11]。這個過程包括數(shù)據收集、數(shù)據預處理、模型訓練、模型選擇和結果預測,具體建模流程如圖1所示。常用的ML編程語言有Python,R,MATLAB和Octave等,均有處理數(shù)據的統(tǒng)計軟件包,使分析數(shù)據變得容易。
圖1 機器學習建模流程
用于奶牛疾病監(jiān)測的數(shù)據通常包括農場存儲的數(shù)據、生理特征數(shù)據、喂養(yǎng)過程中的數(shù)據、飼養(yǎng)管理軟件數(shù)據和傳感器采集的數(shù)據等。在實際應用中,因為以上數(shù)據存在不完整、重復、人工錄入錯誤和數(shù)值缺失等情況,為了獲得更好的預測結果,必須對數(shù)據做預處理。數(shù)據預處理通常先進行數(shù)據清洗、數(shù)據變換、數(shù)據集成和數(shù)據簡化等,再將數(shù)據集劃分為訓練集和測試集兩部分。其中訓練集用于模型的訓練和構建,測試集用于預測結果的評估,比例一般為70%和30%,很多時候還會多劃分出驗證集(60%,20%和20%)[11]。
ML包括有監(jiān)督學習、非監(jiān)督學習、半監(jiān)督學習和強化學習,ML常用的算法分類如圖2所示。監(jiān)督學習需要標記數(shù)據和訓練數(shù)據集,而非監(jiān)督學習在未標記數(shù)據的情況下獨立評估數(shù)據;半監(jiān)督學習方法使用的數(shù)據集只有一小部分標記數(shù)據。應用ML預測奶牛疾病的主要算法有基于樹模型算法、人工神經網絡算法(Artificial neural network,ANN)(簡稱神經網絡)、回歸算法和聚類算法等。使用最為廣泛的是基于樹模型算法,比如決策樹(Decision tree,DT)和隨機森林(Random forest,RF)。ANN在各類應用中均有使用,另外常用的算法還有樸素貝葉斯(naive bayes,NB)、K最近鄰算法(K-nearest neighbor,KNN)和支持向量機(support vector machine,SVM)等[12]。
圖2 機器學習常用算法分類
1.3.1 基于樹模型算法 預測奶牛疾病基于樹模型的算法主要有DT[13]、RF[5]和梯度提升決策樹(gradient boosting decision tree,GBDT)等。DT是一個倒立的樹形結構,算法利用訓練集從樹的根結點開始,通過對疾病關鍵指標進行自頂向下依次的定性判斷來診斷和預測疾病。DT在使用時速度快,精度高,模型簡單易懂,因此在實際預測中實用性強,效果好[11]。此外,RF因可改善DT易擬合的特點也被廣泛應用。
1.3.2 人工神經網絡 ANN是一種模擬生物神經網絡進行信息處理的數(shù)學模型,由輸入層、隱含層和輸出層組成。常用的ANN算法有反向傳播(back propagation,BP)神經網絡、徑向基函數(shù)(radial basis function,RBF)神經網絡、模糊神經網絡和自適應神經網絡等,其中BP神經網絡和RBF神經網絡由于其良好的非線性逼近能力在疾病預測中被廣泛應用[14-15]。
1.3.3 聚類分析算法 聚類分析是指樣本在沒有分類標準的情況下,根據樣本本身的屬性,用數(shù)學統(tǒng)計方法按照某種相似性或差異性特征,定量確定樣本之間的相似度或距離,并按照這種相似度或距離的遠近關系對樣本進行聚類,從而篩選出疾病的特征。常用的聚類算法有K均值(K-means)聚類、模糊C均值聚類和層次聚類。聚類分析模型直觀簡單,適用于處理多種不同類型的樣本量小的數(shù)據集合,在奶牛跛行診斷[16]、代謝性疾病[17]和傳染病的預測[18]均有應用。
1.3.4 回歸算法 回歸算法是一種對數(shù)值型連續(xù)隨機變量進行預測和建模的監(jiān)督學習算法?;貧w算法要建立確定疾病相關的危險因素和疾病之間的映射關系的函數(shù),使得參數(shù)之間的關系擬合性最好,得到與疾病相關的危險因素,從而篩選出預測疾病的輸入變量,建立最優(yōu)回歸方程進行建模。常用的回歸算法有線性回歸和邏輯回歸,線性回歸主要用來解決連續(xù)值預測的問題,邏輯回歸用來解決分類的問題[11]。
樣本集訓練完成后需要評估預測模型的性能,常用的評價指標有準確率、精度和召回率等。
在特征和模型確定后通過調整模型的參數(shù)來提高疾病預測模型的準確率。常用的調參方法有手工搜索、網格搜索、隨機搜索和貝葉斯搜索等。
ML預測代謝病時,首先采集奶牛生理指標和生產數(shù)據,再根據需求篩選可分析生理指標或生產數(shù)據和疾病之間關系的模型,最后建模。比如,為了研究干奶期、胎次、產奶性狀和體重等數(shù)據能否預測產后代謝狀態(tài),Xu W等[5]比較研究了DT、NB、貝葉斯網絡、SVM、ANN、KNN、Bootstrap聚合和隨機搜索等8種算法的建模效果,發(fā)現(xiàn)RF和SVM預測效果較好。在代謝病預測方面,通過ANN對基因組和代謝信息建模,在產后1、3、4、5周能較為準確預測亞臨床酮病[14]。篩選危險因素時,DT和RF算法有運算快的優(yōu)勢,通過分析奶牛健康記錄就可篩選出導致淘汰的原因依次為乳熱、皺胃變位、臨床乳腺炎、子宮炎和雙胎。并且,當兩個疾病疊加時,淘汰的風險會進一步增加[14]。若要分析血液代謝產物和疾病之間的關系,ML需結合統(tǒng)計學方法進行聚類、回歸或建立線性模型。Tremblay M等[7]通過主成分分析和K-means聚類分析,發(fā)現(xiàn)非酯化脂肪酸水平與代謝適應不良綜合征顯著正相關。Van Hoeij R等[17]利用廣義線性模型分析發(fā)現(xiàn)代謝狀況差的奶牛干物質攝入量低,易發(fā)生能量負平衡。
ML分析跛行時,主要是對奶牛運動時不同部位的運動圖像進行步態(tài)分析,篩選出特征參數(shù)后建模,最后進行分類驗證。采用聚類和KNN分類算法可以分析奶牛站立、步數(shù)和躺臥并建模預測跛行的模型,總體檢測準確率可達到87%,敏感性為89.7%,特異性為72.5%[16]。篩選不同部位的特征參數(shù)時,宋懷波等[19]提取奶牛的頭部、頸部以及與頸連接的背部輪廓線擬合直線斜率數(shù)據,KNN分類算法預測跛行的檢測正確率可達到93.89%。但以腿的運動指標為跛行診斷的標準時,短期記憶網絡(long short-term memory,LSTM)、SVM、KNN和DT算法中,基于LSTM的跛行檢測準確率最高,為98.57%[20]。
ML預測乳房炎時,奶產量、擠奶時間和乳腺炎等標志物數(shù)據是主要的數(shù)據源,SVM和DT是常用的算法[21]。RF可以建立對環(huán)境性與傳染性乳腺炎進行區(qū)別診斷和對干奶期和泌乳期感染區(qū)別的模型[8]。深度學習(deep learning,DL)、DT、RF、NB、GBDT、廣義線性模型和邏輯回歸算法預測亞臨床乳腺炎時,GBDT和DL有較高的預測靈敏度[9]。如果數(shù)據源為乳汁電導率,使用DT建模預測乳腺炎的特異性可高達99.2%[22]。不同的DT算法預測乳腺炎的準確性也有差異,DT、樹樁DF、并行DT和RF 4種算法中只有RF診斷奶牛乳腺炎的準確率可達到90%,并有望在實踐中使用[23]。此外,通過DT算法對大腸埃希氏菌感染誘發(fā)乳腺炎轉錄組分布進行建模,可篩選出大腸埃希氏菌乳腺炎的標志物基因[24]。
奶牛熱應激由極端的氣候環(huán)境造成,監(jiān)測環(huán)境的指標為溫度-濕度指數(shù)(temperature-humidity index,THI)。但僅通過THI并不能直接反映奶牛機體的熱應激程度[25],還需要呼吸頻率、呼吸評分、體溫、躺臥率、站立時間和飲水時間等生理指標[26]。在算法方面,回歸分析,RF和ANN使用最多。Gorczyca M T等[10]比較了線性回歸、RF、GBDT和ANN建模預測熱應激時奶牛的呼吸頻率、皮膚溫度和陰道溫度的效果,發(fā)現(xiàn)RF和ANN的預測效果較好。Slob N等[12]使用RF和ANN算法建模后認為氣溫對熱應激影響最大而風速的作用最小,但由于預測會受環(huán)境影響,準確性可能難以保證。為篩選出最優(yōu)模型,有研究者采集了THI、呼吸頻率、臥床時間、躺臥期、總步數(shù)、流涎、呼吸評分、陰涼處或噴淋處停留時間、體細胞評分、網胃溫度、潔凈度評分、奶產量以及乳脂率、乳蛋白率等數(shù)據,使用邏輯回歸、高斯NB和RF 3種ML算法進行預測并發(fā)現(xiàn)準確率都很高,邏輯回歸效果最好,這表明非線性的方法效果好[27]。Brown-Brandl等[28]在利用呼吸頻率和體表溫度建模預測熱應激時發(fā)現(xiàn),兩種回歸模型、兩種模糊推理系統(tǒng)和一種神經網絡模型都過度預測低強度熱應激或高估高強度熱應激時動物的熱應激,其原因可能是因為ML模型無法提前預測天氣。
ML在傳染病的研究上,主要集中在利用傳染性疾病的流行病學特征進行聚類分析,篩選出關鍵風險因子,構建預測和監(jiān)測傳染性疾病的模型。比如,利用邏輯回歸分析奶牛的年齡、品種和出生時間對奶牛感染副結核的影響,判斷這些因素是否是副結核的風險因素,結果發(fā)現(xiàn)出生日期與副結核感染有著顯著的相關性(P<0.05)[18]。在算法方面,RF和ANN仍是常用的方法。有研究者利用RF和增強回歸算法,分析奶牛細菌基因組數(shù)據和研究細菌在不同物種間的傳播速度[29]。通過ANN分析牛奶中紅外光譜數(shù)據并構建奶牛結核病預測模型時,深度卷積神經網絡的預測準確性可以高達95%[15]。此外,也可以利用分類和回歸樹模型,分析多個傳染病風險因子之間的關聯(lián)性和高危群體的發(fā)病可能性,從而確定疾病的患病率、事件檢出率和病史[30]。
通過綜述ML在預測奶牛疾病的研究的相關文獻發(fā)現(xiàn),ML在代謝性疾病和跛行方面的應用最多,而DT算法因其簡單易行,并且運行速度快,在奶牛疾病領域應用最廣。目前,雖然基于ML的奶牛疾病預測已成研究熱點,但由于數(shù)據的有限性和復雜性,研究也遇到很多困難。在算法方面,聚類分析、深度學習和強化學習等算法的應用將會成為奶牛疾病監(jiān)測領域的主要研究方向。此外,利用ML和基因組學研究奶牛疾病也是未來可關注的方向。