賈明華 徐月 王曉東


摘要:蛻變測試方法是一種科學有效的軟件測試方法,數(shù)據(jù)集的生成是人們一直以來的研究重點,本文提出了一種基于蛻變關(guān)系的貝葉斯分類器測試數(shù)據(jù)集生成器。該工具首先將數(shù)據(jù)集作為輸入;其次,依次按照不同的蛻變關(guān)系對數(shù)據(jù)集進行蛻變;最后,輸出各個衍生的數(shù)據(jù)集。該工具實現(xiàn)了針對貝葉斯分類器的測試數(shù)據(jù)集生成器,提高了貝葉斯分類器測試數(shù)據(jù)的生成效率,并解決了數(shù)據(jù)集數(shù)量少且質(zhì)量不高問題。
關(guān)鍵詞:蛻變關(guān)系;貝葉斯分類器;數(shù)據(jù)集生成器
中圖分類號:TP18 文獻標識碼:A 文章編號:1007-9416(2019)05-0166-02
0 前言
隨著智能化軟件的普遍應(yīng)用,機器學習應(yīng)用程度越來越廣。機器學習是人工智能技術(shù)的重要研究領(lǐng)域,機器學習算法為模式識別、生物信息學、計算機語言學等許多領(lǐng)域提供了核心功能。構(gòu)建準確度高的分類、預(yù)測或聚類機器學習模型是機器學習研究的核心目標之一。隨著機器學習算法應(yīng)用在金融、自動駕駛、工業(yè)控制等領(lǐng)域越來越普遍的應(yīng)用,基于機器學習的程序模塊已成為軟件系統(tǒng)的核心組件,這對機器學習程序的安全性和可靠性提出了更高的要求,必須測試和驗證基于機器學習的應(yīng)用程序,以保證其正確性。而貝葉斯分類算法是一類常見的機器學習方法,對貝葉斯分類器的訓練測試需要大量的數(shù)據(jù)集,但是數(shù)據(jù)集常常數(shù)據(jù)量少并且不符合程序的要求。
貝葉斯分類算法是統(tǒng)計學的一種分類方法,它是一類利用概率統(tǒng)計知識進行分類的算法。在許多場合,樸素貝葉斯(Nave Bayes,NB)分類算法可以與決策樹和神經(jīng)網(wǎng)絡(luò)分類算法相媲美,該算法能運用到大型數(shù)據(jù)庫中,而且方法簡單、分類準確率高、速度快。首先是貝葉斯網(wǎng)絡(luò)分類器的學習,即從樣本數(shù)據(jù)中構(gòu)造分類器,包括結(jié)構(gòu)學習和CPT學習。其次是貝葉斯網(wǎng)絡(luò)分類器的推理,即計算類結(jié)點的條件概率,對分類數(shù)據(jù)進行分類。[1]其中Naive Bayes、TAN、BAN、GBN就是其中較典型、研究較深入的貝葉斯分類器。隨著貝葉斯分類器應(yīng)用的逐漸增多,對貝葉斯分類器的訓練測試需要不斷加強,這就需要更加優(yōu)質(zhì)的數(shù)據(jù)集來進行訓練測試,目前大部分數(shù)據(jù)集都存在數(shù)據(jù)量少,并且不符合程序的要求質(zhì)量不高的問題。
1 工具簡介
針對上述提到的一些問題,本文提出了基于蛻變關(guān)系的貝葉斯分類器測試數(shù)據(jù)集生成器。該工具基于蛻變關(guān)系,能夠解決數(shù)據(jù)集數(shù)據(jù)量少,并且不符合程序的要求質(zhì)量不高的問題。生成器工具具體包括輸入數(shù)據(jù)集、蛻變操作、輸出衍生數(shù)據(jù)集三大功能。用戶通過這個數(shù)據(jù)集生成器可以將原始數(shù)據(jù)集輸入,點擊不同的蛻變關(guān)系按鈕進行不同的蛻變操作,最后輸出對應(yīng)的衍生數(shù)據(jù)集。
2 設(shè)計流程
該數(shù)據(jù)集生成器整體分為三個部分,分別是輸入數(shù)據(jù)集、蛻變操作、輸出衍生數(shù)據(jù)集。其中,蛻變操作包括蛻變關(guān)系1、蛻變關(guān)系2、……、蛻變關(guān)系n,設(shè)計框架如圖1所示。
輸入數(shù)據(jù)集是將貝葉斯分類器測試數(shù)據(jù)集作為文件上傳至數(shù)據(jù)集生成器工具即可。蛻變操作包括5種蛻變關(guān)系,如表1所示。[2]點擊不同的蛻變操作按鈕,進行相應(yīng)的數(shù)據(jù)集蛻變操作。MR1是將數(shù)據(jù)集中第i行和第j行數(shù)據(jù)記錄的順序進行交換;MR2是在數(shù)據(jù)集中增加不提供信息的數(shù)據(jù)特征列;MR3是在將數(shù)據(jù)集中第p列和第q列數(shù)據(jù)特征的順序交換;MR4是將數(shù)據(jù)集中第p列數(shù)據(jù)特征復制變成新的一列;MR5是將數(shù)據(jù)集標簽列第r類和第s類的取值互換。輸出衍生數(shù)據(jù)集是將生成的數(shù)據(jù)集在工具中進行展示。
貝葉斯分類器測試數(shù)據(jù)集生成器界面設(shè)計如圖2所示。用戶點擊上傳數(shù)據(jù),選擇數(shù)據(jù)集文件即可。選擇相應(yīng)的蛻變關(guān)系,點擊數(shù)據(jù)生成,即可完成對應(yīng)的蛻變關(guān)系的數(shù)據(jù)蛻變操作。在右側(cè)列表展示了每一種蛻變關(guān)系對應(yīng)的操作內(nèi)容。用戶可以點擊查看結(jié)果彈出衍生數(shù)據(jù)集所生產(chǎn)的數(shù)據(jù)文件所在位置彈框。
3 實現(xiàn)方案
3.1 蛻變關(guān)系1
MR1是調(diào)整數(shù)據(jù)集中第i行和第j行數(shù)據(jù)記錄的順序。通過row_content=file.readline()將數(shù)據(jù)集中的每一行row_content添加一維數(shù)組中,再通過二重循環(huán)進行交換任意兩行數(shù)據(jù)記錄,蛻變后的文件命名為mr1_row_i_j.txt,整個數(shù)據(jù)集經(jīng)過蛻變關(guān)系1生成的衍生數(shù)據(jù)集命名為mr1_data,其中包含所有生成的蛻變后的數(shù)據(jù)集文件。實驗采用隱形眼鏡數(shù)據(jù)集[3],它包含了很多患者眼部狀況的觀察條件以及醫(yī)生推薦的隱形眼鏡類型,隱形眼鏡的類型包括硬材質(zhì)、軟材質(zhì)和不適合佩戴隱形眼鏡。[4]針對實驗采用的隱形眼鏡數(shù)據(jù)集,由于該數(shù)據(jù)集共有24行數(shù)據(jù)記錄,因此生成的mr1_data中共有258個衍生數(shù)據(jù)集。
3.2 蛻變關(guān)系2
MR2是增加數(shù)據(jù)集中不提供信息的數(shù)據(jù)特征列。通過split方法將數(shù)據(jù)集進行切分,循環(huán)對每個列間的位置添加無關(guān)列形成新的蛻變集,蛻變后的文件命名為mr2_col_i.txt,整個數(shù)據(jù)集經(jīng)過蛻變關(guān)系2生成的衍生數(shù)據(jù)集命名為mr2_data。對于隱形眼鏡數(shù)據(jù)集,由于該數(shù)據(jù)集有4列數(shù)據(jù)特征列,因此生成的mr2_data中共有5n個衍生數(shù)據(jù)集,n指不提供信息的數(shù)據(jù)特征列的數(shù)量。
3.3 蛻變關(guān)系3
MR3是調(diào)整數(shù)據(jù)集中第p列和第q列數(shù)據(jù)特征的順序。方法仍然是通過split方法切分數(shù)據(jù)集,將我們需要調(diào)整的順序定義在順序數(shù)組中,通過循環(huán)進行每種順序的重組,形成新的蛻變集,蛻變后的文件命名為mr3_col_p_q.txt,整個數(shù)據(jù)集經(jīng)過蛻變關(guān)系3生成的衍生數(shù)據(jù)集命名為mr3_data。對于隱形眼鏡數(shù)據(jù)集,由于該數(shù)據(jù)集有4列數(shù)據(jù)特征列,因此生成的mr3_data中共有6個衍生數(shù)據(jù)集。
3.4 蛻變關(guān)系4
MR4是將數(shù)據(jù)集中第p列數(shù)據(jù)特征復制。在切分數(shù)據(jù)集之后得到本數(shù)據(jù)集的列數(shù)n,通過循環(huán)將每一列的信息復制一遍添加到本列之后,得到n個不同的蛻變集,蛻變后的文件命名為mr4_p_n.txt,整個數(shù)據(jù)集經(jīng)過蛻變關(guān)系4生成的衍生數(shù)據(jù)集命名為mr4_data。對于隱形眼鏡數(shù)據(jù)集,由于該數(shù)據(jù)集有4列數(shù)據(jù)特征列,因此生成的mr4_data中共有20個衍生數(shù)據(jù)集。
3.5 蛻變關(guān)系5
MR5是將數(shù)據(jù)集標簽列第r類和第s類的取值互換。對于數(shù)據(jù)集中的每條數(shù)據(jù)都有它自己的標簽值,將不同類型的標簽進行變換,例如:某數(shù)據(jù)集中的標簽有兩種,分別是a和b,那么將a換成b,b換成a,這樣蛻變之后的數(shù)據(jù)集用于測試測試的結(jié)果也應(yīng)該是轉(zhuǎn)換之后的結(jié)果,將切分后的數(shù)據(jù)集中的標簽列提取出來,如果符合轉(zhuǎn)換關(guān)系,那么對于這一條數(shù)據(jù)的特征信息不變,標簽列轉(zhuǎn)化為相應(yīng)的結(jié)果,在這里需要表格記錄蛻變前后的轉(zhuǎn)換關(guān)系,蛻變后的文件命名為mr5_r_s.txt,整個數(shù)據(jù)集經(jīng)過蛻變關(guān)系5生成的衍生數(shù)據(jù)集命名為mr5_data。對于隱形眼鏡數(shù)據(jù)集,由于該數(shù)據(jù)集有3種數(shù)據(jù)標簽,因此生成的mr5_data中共有3個衍生數(shù)據(jù)集。
4 結(jié)語
本文通過對基于蛻變關(guān)系的貝葉斯分類器測試數(shù)據(jù)集生成器的研究,實現(xiàn)了一種對貝葉斯分類器測試數(shù)據(jù)集生成的工具。該工具基于蛻變關(guān)系,解決了數(shù)據(jù)集數(shù)據(jù)量少,并且不符合程序的要求質(zhì)量不高的問題。生成的衍生數(shù)據(jù)集用來對貝葉斯分類器進行訓練,還可以對貝葉斯分類器進行更加有效的測試。
參考文獻
[1] 李蕓.基于貝葉斯信念網(wǎng)絡(luò)的數(shù)據(jù)分類挖掘算法[J].計算機科學,2006,33(9):157-158.
[2] Xie X , Ho J W K , Murphy C , et al. Testing and validating machine learning classifiers by metamorphic testing[J]. Journal of Systems and Software,2011,84(4):544-558.
[3] Benoit Julien.: UCI machine learning repository.http://archive.ics.uci.edu/ml/machine-learning-databases/lenses/ (2013).Accessed January,2019.
[4] 李銳,等譯.機器學習實戰(zhàn)[M].人民郵電出版社,2103.