馬高庭 蔣萬春 申艷光
摘要:針對(duì)肉雞生產(chǎn)過程中的安全問題,基于改良關(guān)聯(lián)規(guī)則挖掘算法(APTPPA)建立肉雞產(chǎn)品質(zhì)量安全預(yù)警模型。該模型以肉雞養(yǎng)殖及屠宰過程中危害分析、關(guān)鍵控制點(diǎn)(HACCP)的異常數(shù)據(jù)為處理對(duì)象,采用模式指導(dǎo)樹并行頻繁項(xiàng)集挖掘算法(APTPPA),構(gòu)造關(guān)聯(lián)路徑樹,找尋最大頻繁項(xiàng)集,提取預(yù)警關(guān)聯(lián)規(guī)則,挖掘影響肉雞產(chǎn)品安全的因素,通過試驗(yàn)驗(yàn)證預(yù)警模型的有效性。
關(guān)鍵詞:肉雞產(chǎn)品;質(zhì)量安全;預(yù)警模型;關(guān)聯(lián)規(guī)則;APTPPA;HACCP
中圖分類號(hào): TS207.7 文獻(xiàn)標(biāo)志碼: A
文章編號(hào):1002-1302(2015)03-0271-04
食品安全問題的頻繁發(fā)生,引起了眾多國(guó)家的高度重視[1]。發(fā)達(dá)國(guó)家早已開始研究構(gòu)建一套廣泛有效的食品安全預(yù)警模型。畜禽產(chǎn)品在日常養(yǎng)殖、加工過程中面臨更多更復(fù)雜的安全風(fēng)險(xiǎn),監(jiān)管難度很大。因此國(guó)內(nèi)外學(xué)者較為關(guān)注對(duì)畜禽產(chǎn)品質(zhì)量安全預(yù)警模型的探討和研究。我國(guó)肉雞產(chǎn)業(yè)發(fā)展迅速,但產(chǎn)品品質(zhì)參差不齊。如不及時(shí)改善產(chǎn)品質(zhì)量,提高預(yù)警能力,國(guó)內(nèi)肉雞產(chǎn)業(yè)將難以抗衡外來企業(yè)[2]。
數(shù)據(jù)挖掘在食品安全領(lǐng)域的應(yīng)用較少,而食品安全日常事務(wù)所產(chǎn)生的大量時(shí)序數(shù)據(jù)非常適合做數(shù)據(jù)分析,從中可挖掘出有效的預(yù)警條目[3]。選擇合適、高效的挖掘算法對(duì)食品安全預(yù)警模型的精確度至關(guān)重要。本研究采用的關(guān)聯(lián)規(guī)則挖掘算法最早由Agrawal等提出[4],其中以Apriori算法最為經(jīng)典[5],后續(xù)學(xué)者提出的改進(jìn)算法大多以Apriori算法為基礎(chǔ)。由于Apriori算法存在固有缺陷,隨后Han等提出基于 FP-tree 來生成頻繁項(xiàng)目集的FP-growth算法[6]。近些年其他類型的關(guān)聯(lián)規(guī)則挖掘算法也相繼問世[7,8],明顯進(jìn)步于早期算法,但在食品安全領(lǐng)域的適用性并不理想。肉雞養(yǎng)殖、屠宰的安全因素具有多值性、傾斜性、稠密性和負(fù)相關(guān)性等特點(diǎn),使傳統(tǒng)挖掘算法構(gòu)建預(yù)警模型變得尤為困難。本研究針對(duì)食品安全因素的固有問題,結(jié)合HACCP管理體系,采用Association Path Tree Pattern Parallel Algorithm(APTPPA)算法構(gòu)建了肉雞產(chǎn)品質(zhì)量安全預(yù)警模型。
1 肉雞產(chǎn)品質(zhì)量安全預(yù)警模型框架
本研究的預(yù)警模型是肉雞產(chǎn)品質(zhì)量控制與可追溯系統(tǒng)中的一個(gè)模塊。該系統(tǒng)基于B/S架構(gòu),囊括肉雞產(chǎn)品安全信息的監(jiān)測(cè)、分析和追溯,能夠挖掘溯源數(shù)據(jù)庫中的異常數(shù)據(jù),比對(duì)專家和歷史數(shù)據(jù)庫,生成有效的預(yù)警信息,并及時(shí)發(fā)出警報(bào)。肉雞產(chǎn)品質(zhì)量安全預(yù)警模型包括信息源、比對(duì)源、挖掘分析以及預(yù)警反饋4個(gè)模塊。預(yù)警模型框架見圖1。
信息源模塊是預(yù)警模型數(shù)據(jù)的來源,以肉雞溯源系統(tǒng)在肉雞養(yǎng)殖、生產(chǎn)環(huán)節(jié)所收集的數(shù)據(jù)為基礎(chǔ),遵循HACCP體系,選取關(guān)鍵控制點(diǎn)中的記錄進(jìn)行預(yù)警挖掘。
比對(duì)源模塊是專家數(shù)據(jù)和歷史挖掘數(shù)據(jù)的數(shù)據(jù)源,在進(jìn)行規(guī)則挖掘分析時(shí),通常要與專家數(shù)據(jù)、歷史數(shù)據(jù)對(duì)比,再得出挖掘規(guī)則。
挖掘分析模塊是預(yù)警模型的核心,接收來自信息源的原始數(shù)據(jù),經(jīng)過對(duì)異常數(shù)據(jù)的分析,采用合適的關(guān)聯(lián)規(guī)則挖掘算法,得出具有參考價(jià)值的規(guī)則,供下一個(gè)模塊使用。
預(yù)警反饋模塊是外部獲得信息的窗口。當(dāng)預(yù)警信息歸類為緊急信息時(shí),系統(tǒng)自動(dòng)通知相關(guān)人員,即刻采取措施,避免造成食品安全事件和大規(guī)模損失。該模塊還可供管理人員自主查詢預(yù)警信息,從而提高預(yù)防能力,保證肉雞產(chǎn)品質(zhì)量,提高企業(yè)的行業(yè)競(jìng)爭(zhēng)力。
2 肉雞產(chǎn)品質(zhì)量安全預(yù)警模型處理流程
肉雞產(chǎn)品質(zhì)量安全預(yù)警模型處理流程主要分為數(shù)據(jù)預(yù)處理、建立預(yù)警模型、挖掘結(jié)果檢驗(yàn)3步[3]。預(yù)警模型詳細(xì)處理流程如下:
(1)進(jìn)行數(shù)據(jù)預(yù)處理,并設(shè)置算法的支持度、置信度閾值。
(2)利用關(guān)聯(lián)規(guī)則挖掘算法搜索頻繁項(xiàng)集。
(3)對(duì)已找到的頻繁項(xiàng)集進(jìn)行剪枝操作。
(4)判斷是否完成頻繁項(xiàng)集的搜索,若是則進(jìn)入下一步,否則返回(2)。
(5)根據(jù)找尋到的頻繁項(xiàng)集生成關(guān)聯(lián)規(guī)則,并在通過規(guī)則檢驗(yàn)后更新預(yù)警數(shù)據(jù)庫。
數(shù)據(jù)預(yù)處理主要是對(duì)異常數(shù)據(jù)進(jìn)行邏輯轉(zhuǎn)換和分類操作。邏輯轉(zhuǎn)換針對(duì)監(jiān)測(cè)數(shù)據(jù)為連續(xù)值的情況,連續(xù)值數(shù)據(jù)無法進(jìn)行關(guān)聯(lián)規(guī)則挖掘,因此要事先轉(zhuǎn)換成邏輯值。分類是保證預(yù)警模型預(yù)警等級(jí)準(zhǔn)確的前提,不同分類的異常數(shù)據(jù)后續(xù)處理方式也不同。根據(jù)提取食品安全預(yù)警事件特征的方法,可將異常數(shù)據(jù)分為常規(guī)異常和超限異常。
超限異常是指對(duì)于各項(xiàng)指標(biāo)集合,具有影響食品安全狀況的評(píng)價(jià)結(jié)果,它是最容易導(dǎo)致食品安全問題的因素[9]。
常規(guī)異常包括不規(guī)范異常、分布異常、趨勢(shì)異常。
(1)不規(guī)范異常。是指數(shù)據(jù)未按標(biāo)準(zhǔn)方式獲得,具有不可信性,報(bào)警等級(jí)較低。
建立預(yù)警模型就是把預(yù)處理后的異常數(shù)據(jù)采用APTPPA算法進(jìn)行數(shù)據(jù)挖掘,找到頻繁項(xiàng)集,抽取關(guān)聯(lián)規(guī)則的過程。
挖掘結(jié)果檢驗(yàn)即把新生成的預(yù)警規(guī)則與原有規(guī)則庫進(jìn)行對(duì)比,并分析實(shí)際預(yù)警效果。如果原有庫中不存在該條規(guī)則,并且印證規(guī)則具有實(shí)際預(yù)警效果時(shí),則將該規(guī)則更新到現(xiàn)有規(guī)則庫中。
3 基于APTPPA算法的肉雞產(chǎn)品質(zhì)量安全預(yù)警模型
經(jīng)典的Apriori算法在執(zhí)行過程中會(huì)產(chǎn)生大量中間項(xiàng)集,必須多次掃描數(shù)據(jù)庫,需要很多輔助空間結(jié)構(gòu),且要求數(shù)據(jù)為二值邏輯。本研究采用的APTPPA算法在壓縮數(shù)據(jù)的同時(shí)保證了原始數(shù)據(jù)集的基本形態(tài),使其在多值數(shù)據(jù)、傾斜數(shù)據(jù)和負(fù)關(guān)聯(lián)規(guī)則的挖掘中比其他同類算法更加有效。APTPPA算法主要包括關(guān)聯(lián)路徑樹生成、頻繁項(xiàng)集挖掘和尋找最大頻繁項(xiàng)集3個(gè)步驟[3,10]。
3.1 關(guān)聯(lián)路徑樹生成
3.1.1 關(guān)聯(lián)路徑樹的基本思想
將事務(wù)數(shù)據(jù)庫D中每個(gè)數(shù)據(jù)項(xiàng)im均進(jìn)行邏輯化處理會(huì)導(dǎo)致項(xiàng)數(shù)大量增加,造成維災(zāi)難。為了減少項(xiàng)數(shù),將項(xiàng)值進(jìn)行標(biāo)號(hào)化處理,每類項(xiàng)值都用標(biāo)號(hào)vn表示。將標(biāo)號(hào)化結(jié)果構(gòu)造成樹形結(jié)構(gòu)就是關(guān)聯(lián)路徑樹。以1 000組15項(xiàng)肉雞超限異常數(shù)據(jù)為例,標(biāo)號(hào)化的數(shù)據(jù)集D如表3所示。endprint
數(shù)據(jù)集D進(jìn)行邏輯化、標(biāo)號(hào)化處理后,各項(xiàng)的值域顯著減小,內(nèi)部存在較多相同的事務(wù)數(shù)據(jù)。此時(shí)為數(shù)據(jù)集D增加count屬性,對(duì)相同的事務(wù)數(shù)據(jù)進(jìn)行統(tǒng)一計(jì)數(shù),刪除冗余,得到無重復(fù)數(shù)據(jù)的數(shù)據(jù)集D′。由于沒有冗余事務(wù),每條事務(wù)Ti包含項(xiàng)集的一種取值構(gòu)成最大項(xiàng)集,其支持度計(jì)數(shù)就是事務(wù)計(jì)數(shù)counti的值。
3.1.2 構(gòu)建基于樹的路徑表
數(shù)據(jù)集D′中的每個(gè)事務(wù)都是項(xiàng)值的組合,D′中所有事務(wù)可構(gòu)成1棵關(guān)聯(lián)路徑樹,每個(gè)事務(wù)都是1條分支(圖2)。
3.2 頻繁項(xiàng)目集挖掘
3.2.1 按模式指導(dǎo)求頻繁項(xiàng)集
根據(jù)Apriori性質(zhì),可利用模式指導(dǎo)在關(guān)聯(lián)路徑樹之上找尋出頻繁項(xiàng)集。所謂模式即形如“xxooxxxxo”的某種排列組合,將事務(wù)中“x”位處項(xiàng)值忽略,而把“o”位處項(xiàng)值相同的事務(wù)計(jì)數(shù)并求和,就是該模式下的頻繁項(xiàng)集及其計(jì)數(shù)。對(duì)于非傾斜數(shù)據(jù),在“o”增加的同時(shí),此模式下的事務(wù)計(jì)數(shù)會(huì)銳減,從而有效收斂。對(duì)于傾斜數(shù)據(jù),事務(wù)計(jì)數(shù)原本大于支持度閾值,模式計(jì)數(shù)退化。此時(shí)為了保證算法的快速收斂,將包含全部項(xiàng)的頻繁項(xiàng)集計(jì)數(shù)置零,再進(jìn)行模式計(jì)數(shù)。還可通過設(shè)定最小支持度閾值對(duì)項(xiàng)集組合進(jìn)行直接的剪枝操作。以1 000組15項(xiàng)肉雞超限異常數(shù)據(jù)為例,找到的頻繁項(xiàng)集如表5所示。
3.2.2 并行遞歸求頻繁項(xiàng)集
m個(gè)項(xiàng)有m個(gè)1-“o”模式(k-“o”模式指包含頻繁k項(xiàng)集的模式)的初始項(xiàng)集。并行遞歸就是在關(guān)聯(lián)路徑樹上以1-“o”模式為起始條件遞歸生成其他模式的方法。單CPU時(shí),所有模式按1-“o”模式的生成過程逐個(gè)遞歸完成。多CPU時(shí),每個(gè)CPU分配1個(gè)1-“o”模式,顯著提高遞歸速度。當(dāng)事務(wù)計(jì)數(shù)小于遞歸閾值時(shí),遞歸終止,算法收斂有效。
3.3 尋找最大頻繁項(xiàng)集
為了使挖掘結(jié)果更有意義,有必要在挖掘過程中剔除相似關(guān)聯(lián)規(guī)則, 防止重復(fù)規(guī)則出現(xiàn)。尋找最大頻繁項(xiàng)集是剔除相似關(guān)聯(lián)規(guī)則的一條途徑。對(duì)于APTPPA算法而言,在模式指導(dǎo)樹上取路徑a與其他任意路徑b進(jìn)行比較,當(dāng)a的“o”位包含于b中時(shí),把b賦值給a,重復(fù)上述過程,直到不能發(fā)現(xiàn)路徑b為止。以1 000組15項(xiàng)肉雞超限異常數(shù)據(jù)為例,挖掘出的最大頻繁項(xiàng)集如表6所示。
4 試驗(yàn)與分析
抽取河北某食品公司肉雞產(chǎn)品溯源數(shù)據(jù)庫中的1 000組15項(xiàng)歷史超限異常數(shù)據(jù),在Windows 7操作系統(tǒng)下,采用Java編程語言,通過Eclipse集成平臺(tái),驗(yàn)證預(yù)警模型的有效性。將采用APTPPA與Apriori算法的肉雞預(yù)警模型進(jìn)行對(duì)比試驗(yàn),驗(yàn)證APTPPA算法在食品安全預(yù)警領(lǐng)域的應(yīng)用具有高效性。
4.1 基于APTPPA算法的挖掘結(jié)果及分析
試驗(yàn)參數(shù)設(shè)置如下:最小支持度=0.3,最小置信度=08,最大標(biāo)號(hào)數(shù)=4,最大規(guī)則數(shù)=500。試驗(yàn)后從中選取3條報(bào)警記錄如表7所示。
將上述最大關(guān)聯(lián)規(guī)則與歷史超限異常數(shù)據(jù)進(jìn)行檢驗(yàn),匹配度達(dá)80%以上,超標(biāo)報(bào)警也較為準(zhǔn)確,體現(xiàn)了本研究預(yù)警模型的有效性。由以上最大關(guān)聯(lián)規(guī)則可分析出肉雞養(yǎng)殖、屠宰加工過程中的安全隱患因素,主要有:肉雞養(yǎng)殖環(huán)境中氨氣水平、可吸入顆粒物同時(shí)超標(biāo),需要對(duì)棟舍進(jìn)行清理;養(yǎng)殖用水中氯化物、硝酸鹽同時(shí)超標(biāo),需要對(duì)水質(zhì)進(jìn)行改良;屠宰車間中氧氣濃度、氨氣水平同時(shí)超標(biāo),需要對(duì)屠宰車床進(jìn)行消毒。
4.2 APTPPA與Apriori算法挖掘效率的分析
為了驗(yàn)證2種挖掘算法的預(yù)警效率,采用上述1 000組15項(xiàng)超限異常數(shù)據(jù)分別測(cè)試APTPPA和Apriori算法預(yù)警挖掘的速度和精度并進(jìn)行比較,在相同參數(shù)設(shè)置下,比較結(jié)果如表8所示。
由表8可知,在相同的規(guī)則覆蓋率下,APTPPA算法產(chǎn)生的規(guī)則更少,速度更快,效率更高。Apriori算法沒有結(jié)合食品安全預(yù)警信息的特點(diǎn),產(chǎn)生較多冗余和不符合實(shí)際情況的規(guī)則。綜上所述,在肉雞產(chǎn)品安全預(yù)警時(shí),基于APTPPA算法的肉雞產(chǎn)品質(zhì)量安全預(yù)警模型比傳統(tǒng)Apriori算法預(yù)警模型更加有效。
5 總結(jié)與展望
基于關(guān)聯(lián)規(guī)則的肉雞產(chǎn)品質(zhì)量安全預(yù)警模型采用了APTPPA算法,該算法能夠在海量復(fù)雜多變的影響因素中,挖掘出導(dǎo)致肉雞產(chǎn)品質(zhì)量安全問題的要素,及時(shí)發(fā)現(xiàn)肉雞養(yǎng)殖、屠宰、加工過程中的安全隱患并預(yù)警,在實(shí)時(shí)監(jiān)控的同時(shí)有效減少和消除食品安全事故。但本研究的預(yù)警模型尚有不足,仍需進(jìn)一步改進(jìn),主要體現(xiàn)在以下幾方面:關(guān)鍵控制點(diǎn)囊括的異常因素不夠全面;異常因素之間沒有主次之分;邏輯值分類轉(zhuǎn)換過程中沒有用到較為準(zhǔn)確的分類算法等。
參考文獻(xiàn):
[1]李 倩,張圣忠,王 芳.基于博弈分析的食品安全風(fēng)險(xiǎn)監(jiān)管策略研究[J]. 江蘇農(nóng)業(yè)科學(xué),2013,41(9):268-270.
[2]趙金石. 我國(guó)肉雞質(zhì)量追溯系統(tǒng)應(yīng)用現(xiàn)狀分析[J]. 中國(guó)畜牧雜志,2011,47(8):45-48.
[3]顧小林,張大為,張 可,等. 基于關(guān)聯(lián)規(guī)則挖掘的食品安全信息預(yù)警模型[J]. 軟科學(xué),2011,25(11):136-141.
[4]Agarwa R,Imielinski T,Swmai A. Mining association rules between sets to items in large databases[C]. Porceedings of ACM SIGMOD Intl Conf Management of Data,Washington DC,1993:207-216.
[5]Agrawal R,Srikant R. Fast algorithms for mining association rules in large databases[C]. 20th International Conference on Very Large Data Bases,1994:478-499.
[6]Han J,Pei J. Mining frequent patterns without candidate generation[C]. Porc 2000 ACM IGMOD Int Conf on Management of Data,SIGMOD2000,Dallas TX,2000:1-12.
[7]宋 威,楊炳儒,徐章艷,等. 基于索引數(shù)組與集合枚舉樹的最大頻繁項(xiàng)集挖掘算法[J]. 計(jì)算機(jī)科學(xué),2007,34(7):146-149.
[8]王黎明,張 卓. 基于iceberg概念格并置集成的閉頻繁項(xiàng)集挖掘算法[J]. 計(jì)算機(jī)研究與發(fā)展,2007,44(7):1184-1190.
[9]翁道磊. 食品安全追溯系統(tǒng)的分析和研究[D]. 重慶:重慶大學(xué),2008.
[10]張大為,黃 丹,嵇 敏,等. 利用模式指導(dǎo)樹的并行頻繁項(xiàng)集挖據(jù)方法[J]. 計(jì)算機(jī)工程與應(yīng)用,2010,46(22):147-150.endprint