亚洲免费av电影一区二区三区,日韩爱爱视频,51精品视频一区二区三区,91视频爱爱,日韩欧美在线播放视频,中文字幕少妇AV,亚洲电影中文字幕,久久久久亚洲av成人网址,久久综合视频网站,国产在线不卡免费播放

        ?

        基于代價(jià)極速學(xué)習(xí)機(jī)的軟件缺陷報(bào)告分類方法?

        2019-06-11 07:39:52張?zhí)靷?/span>祝宏玉
        軟件學(xué)報(bào) 2019年5期
        關(guān)鍵詞:樣例集上代價(jià)

        張?zhí)靷?陳 榮,楊 溪,祝宏玉

        1(大連海事大學(xué) 信息科學(xué)技術(shù)學(xué)院,遼寧 大連 116026)

        2(深圳大學(xué) 計(jì)算機(jī)與軟件學(xué)院,廣東 深圳 518060)

        在軟件系統(tǒng)開發(fā)領(lǐng)域里,Bug修復(fù)[1]是一個(gè)十分關(guān)鍵的環(huán)節(jié).近幾年,隨著軟件工程項(xiàng)目的規(guī)模與復(fù)雜度的提升,在軟件開發(fā)過程中,不可避免地會(huì)出現(xiàn)大量的 Bug,為了系統(tǒng)可以正常運(yùn)行,修復(fù)這些 Bug是十分必要的;同時(shí),修復(fù)這些Bug的任務(wù)量也是非常艱巨的.對(duì)于軟件系統(tǒng)的開發(fā)人員而言,在修復(fù)Bug時(shí),最常用的輔助工具就是Bug報(bào)告[2].Bug報(bào)告是以文本的形式來描述Bug細(xì)節(jié)的數(shù)據(jù),并且根據(jù)任務(wù)的不同,這些數(shù)據(jù)被標(biāo)上不同的標(biāo)簽.但是Bug報(bào)告的質(zhì)量良莠不齊,如果人工地辨別這些Bug報(bào)告的質(zhì)量,無疑又為軟件開發(fā)帶來了沉重的工作量.所以近幾年,很多研究者研究如何將Bug報(bào)告進(jìn)行自動(dòng)分類,其中,Antoniol等人[3]利用文本挖掘技術(shù)來對(duì)Bug報(bào)告進(jìn)行分類,將Bug報(bào)告數(shù)據(jù)分成需即時(shí)處理的Bug和非即時(shí)處理的Bug,他們所使用的技術(shù)是決策樹、對(duì)率回歸以及樸素貝葉斯等方法.Menzies等人[4]利用規(guī)則學(xué)習(xí)技術(shù)將Bug報(bào)告分成嚴(yán)重Bug和非嚴(yán)重Bug.Tian等人[5]通過構(gòu)建一個(gè)基于機(jī)器學(xué)習(xí)的預(yù)測(cè)框架來預(yù)測(cè)Bug報(bào)告的優(yōu)先級(jí),在這個(gè)框架中,他們主要考慮到6個(gè)因素:時(shí)序、內(nèi)容、作者、嚴(yán)重程度、產(chǎn)生原因以及相關(guān)的Bug.除此之外,還有學(xué)者對(duì)Bug報(bào)告的質(zhì)量進(jìn)行分類.Feng等人[6]通過提取Bug報(bào)告的特征,來對(duì)Bug報(bào)告進(jìn)行高質(zhì)量和低質(zhì)量的區(qū)分,并且將預(yù)測(cè)得到的信息提交給軟件開發(fā)者.為了降低Bug的冗余度,Runeson等人[7]基于信息檢索技術(shù)提出一種計(jì)算Bug報(bào)告相似性的方法.類似的,Sun等人[8]提出一種多特征的信息檢索模型,其目的也是為了計(jì)算Bug報(bào)告之間的相似度.近些年,更多的學(xué)者關(guān)注于 Bug報(bào)告數(shù)據(jù)集的類別不平衡問題,其中,Lamkanfi等人[9]通過人工選擇的方法來補(bǔ)充數(shù)據(jù)集,解決數(shù)據(jù)集的類別不平衡問題,但是人工選擇的方法局限性很大,同時(shí)也不適合于實(shí)際的工作;Yang等人[10]利用解決不平衡問題的策略來處理Bug報(bào)告分類問題,即隨機(jī)欠采樣(random under-sampling,簡(jiǎn)稱RUS)、隨機(jī)過采樣(random over-sampling,簡(jiǎn)稱ROS)和合成少數(shù)類過采樣(synthetic minority over-sampling,簡(jiǎn)稱SMOTE)方法,這些方法在解決不平衡問題時(shí),其效率明顯優(yōu)于人工選擇的方法.

        本文的關(guān)注點(diǎn)也是自動(dòng)分類Bug報(bào)告,但是我們更加關(guān)注于Bug報(bào)告分類中存在的一些問題.

        首先,在Bug報(bào)告數(shù)據(jù)集里,不同類別的樣本的數(shù)量不同,而且通常情況下,樣本數(shù)量之間的差異會(huì)造成較大的不平衡度.如果一個(gè)數(shù)據(jù)集的不平衡度較大,那么通過這個(gè)數(shù)據(jù)集訓(xùn)練得到的分類模型的性能就會(huì)受到不良的影響.這主要是因?yàn)樵谟?xùn)練過程中,不平衡的數(shù)據(jù)集會(huì)引導(dǎo)分類器更加側(cè)重于對(duì)多數(shù)類樣例的識(shí)別,在更嚴(yán)重的情況下,少數(shù)類的樣例會(huì)被當(dāng)做噪音點(diǎn)處理.

        為了解決 Bug報(bào)告中數(shù)據(jù)不平衡的問題,我們引入了基于代價(jià)的分類器訓(xùn)練策略.傳統(tǒng)上的分類器的優(yōu)化求解目標(biāo)主要是最大化分類結(jié)果的精確度,而基于代價(jià)的分類器訓(xùn)練策略則是最小化分類器因錯(cuò)誤分類而產(chǎn)生的代價(jià).具體地,不同類別的樣例被錯(cuò)誤分類的代價(jià)應(yīng)該不同,一些較易被分類的樣例應(yīng)該有較小的錯(cuò)誤代價(jià),而那些較難被分類的樣例應(yīng)該有比較大的錯(cuò)誤分類代價(jià).在最小化整體的錯(cuò)誤分類代價(jià)時(shí),就會(huì)使得分類器更加關(guān)注代價(jià)大的樣例的分類情況.因?yàn)閭鹘y(tǒng)的分類器模型默認(rèn)所有樣例的分類代價(jià)是一樣的,所以基于代價(jià)的分類器訓(xùn)練方法是對(duì)傳統(tǒng)方法的一個(gè)擴(kuò)展.

        我們選用的分類器模型是極速學(xué)習(xí)機(jī)(extreme learning machine,簡(jiǎn)稱ELM).該方法由Huang等人[11]提出,因?yàn)槠溆?xùn)練方法的高效性,目前被普遍用于模式識(shí)別領(lǐng)域[12].同時(shí),為了解決上面提到的數(shù)據(jù)不平衡問題,我們用基于代價(jià)的分類器訓(xùn)練方法來訓(xùn)練ELM模型,訓(xùn)練得到的模型被稱為代價(jià)敏感的ELM模型.

        Bug報(bào)告分類中存在的第 2個(gè)問題是:在數(shù)據(jù)集里,被標(biāo)記的樣本量不充足.傳統(tǒng)的分類器大都是通過有監(jiān)督算法進(jìn)行訓(xùn)練的,這就要求數(shù)據(jù)集里的樣本既有條件屬性也要有與之對(duì)應(yīng)的標(biāo)簽屬性.可是,給樣本指定正確的標(biāo)簽需要大量的精細(xì)的人工標(biāo)注工作.通常情況下,人工給數(shù)據(jù)標(biāo)注類別屬性是繁重且耗時(shí)的,所以為了解決這個(gè)問題,本文提出一種可以自動(dòng)標(biāo)注標(biāo)簽的半監(jiān)督學(xué)習(xí)方法.該方法主要利用弱分類器對(duì)未知標(biāo)簽的數(shù)據(jù)進(jìn)行類別標(biāo)定,然后結(jié)合模糊度[13]這一指標(biāo)選擇不確定性小的數(shù)據(jù)來擴(kuò)充原有的有標(biāo)簽的數(shù)據(jù)集.

        在 Bug報(bào)告分類中,第 3個(gè)問題是:數(shù)據(jù)集的樣本總量不充足.在訓(xùn)練分類器時(shí),往往需要充足的訓(xùn)練數(shù)據(jù).當(dāng)訓(xùn)練數(shù)據(jù)不充分時(shí),會(huì)導(dǎo)致訓(xùn)練得到的分類器出現(xiàn)嚴(yán)重的過擬合現(xiàn)象.過擬合現(xiàn)象主要表現(xiàn)為:分類器在訓(xùn)練集上的分類效果良好,可是在測(cè)試時(shí)或者在實(shí)際工作中,其分類效果很不理想.這主要是因?yàn)橛?xùn)練樣本容量少導(dǎo)致分類器對(duì)數(shù)據(jù)的統(tǒng)計(jì)規(guī)律學(xué)習(xí)得不充分,最終使其泛化能力弱,不能對(duì)訓(xùn)練集以外的數(shù)據(jù)做出正確的判別.

        為了解決這個(gè)問題,我們提出一種樣本遷移[14]的方法,即用其他 Bug數(shù)據(jù)集里的樣本來補(bǔ)充數(shù)據(jù)量不充足的數(shù)據(jù)集的樣本容量.自然地,如何選取樣本來補(bǔ)充數(shù)據(jù)集,這是一個(gè)十分關(guān)鍵的問題.在我們的工作中,我們?nèi)耘f利用第二個(gè)問題里的方法.即先在原數(shù)據(jù)集上訓(xùn)練得到一個(gè)弱分類器,然后用弱分類器對(duì)被遷移的樣本進(jìn)行分類,得到分類結(jié)果后,結(jié)合模糊度,選擇模糊度小的樣本來補(bǔ)充原始的數(shù)據(jù)集.在這個(gè)過程中,需要注意,不同的數(shù)據(jù)集的樣本維度可能不同.為了統(tǒng)一維度,我們提出使用受限玻爾茲曼機(jī)(restricted Boltzmann machines,簡(jiǎn)稱RBM)[15]來對(duì)不同數(shù)據(jù)集的樣本進(jìn)行編碼,即將不同數(shù)據(jù)集里的樣本編碼成統(tǒng)一維度的數(shù)據(jù).這樣做使得我們的方法具有更加廣泛的適用性.注意到,用來自不同分布的樣例來補(bǔ)充訓(xùn)練集合,這個(gè)方法的可行性已經(jīng)在文獻(xiàn)[16]得到證明,并且在我們的實(shí)驗(yàn)中會(huì)進(jìn)一步被驗(yàn)證.

        綜上所述,本文的貢獻(xiàn)點(diǎn)主要有 3個(gè)方面:(1) 針對(duì)Bug報(bào)告中的類別不平衡問題,我們將基于代價(jià)的分類器訓(xùn)練方法引入到Bug報(bào)告分類問題里,并且使用ELM作為基本的分類模型;(2) 針對(duì)Bug報(bào)告中被標(biāo)記的樣本數(shù)量不充足的問題,我們將基于模糊度的半監(jiān)督方法引入到 Bug報(bào)告分類問題里,通過擴(kuò)充有標(biāo)簽的樣本容量來增強(qiáng)分類效果;(3) 針對(duì)Bug報(bào)告中數(shù)據(jù)集樣本總量不充足的問題,我們將基于RBM和模糊度的樣本遷移方法引入到Bug報(bào)告分類問題里,通過擴(kuò)充訓(xùn)練集總樣本容量來避免分類器出現(xiàn)過擬合的現(xiàn)象.

        本文第1節(jié)介紹本文涉及到的相關(guān)背景知識(shí).第2節(jié)詳細(xì)介紹本文提出來的方法.第3節(jié)展示本文的相關(guān)實(shí)驗(yàn).第4節(jié)對(duì)本文的工作進(jìn)行總結(jié)與展望.

        1 背景知識(shí)

        在這一節(jié)中,我們將詳細(xì)介紹本文主體方法所涉及到的背景知識(shí).這些背景知識(shí)主要分為兩個(gè)部分:第 1個(gè)是ELM的訓(xùn)練策略;第2個(gè)是RBM的學(xué)習(xí)方法.

        本文主要關(guān)注的是對(duì) Bug報(bào)告數(shù)據(jù)集的分類問題.我們選用的是基于神經(jīng)網(wǎng)絡(luò)的分類器.神經(jīng)網(wǎng)絡(luò)是一種非線性的函數(shù)模型,該模型通過調(diào)節(jié)網(wǎng)絡(luò)參數(shù),可以擬合輸入到輸出的映射關(guān)系.近幾年,神經(jīng)網(wǎng)絡(luò)在模式識(shí)別領(lǐng)域里取得了很多令人矚目的成果[17-19],尤其在自然語言處理的工作里,基于神經(jīng)網(wǎng)絡(luò)的方法要明顯優(yōu)于其他方法的效果[20].自動(dòng)識(shí)別Bug報(bào)告的類別,是一種關(guān)于自然語言的類別識(shí)別工作,所以我們選用神經(jīng)網(wǎng)絡(luò)作為分類模型.

        按照訓(xùn)練方式劃分,神經(jīng)網(wǎng)絡(luò)可以被分為兩種類型:第1種是基于迭代優(yōu)化的方法[21]來調(diào)整網(wǎng)絡(luò)的參數(shù);第2種是基于隨機(jī)賦權(quán)的方法[22,23]來學(xué)習(xí)網(wǎng)絡(luò)的參數(shù).其中,ELM作為一種隨機(jī)賦權(quán)網(wǎng)絡(luò)模型,在近幾年廣泛受到關(guān)注.ELM主要的優(yōu)點(diǎn)是訓(xùn)練方式高效快捷,并且在大多數(shù)領(lǐng)域里,其性能要優(yōu)于或者等于迭代尋優(yōu)算法訓(xùn)練出來的網(wǎng)絡(luò).接下來,我們?cè)敿?xì)介紹ELM的參數(shù)學(xué)習(xí)過程.

        ELM模型是一個(gè)單隱層的前饋神經(jīng)網(wǎng)絡(luò),如圖1所示.其中,I是網(wǎng)絡(luò)的輸入層(由nus個(gè)節(jié)點(diǎn)組成),H是網(wǎng)絡(luò)的隱層(由ncc個(gè)節(jié)點(diǎn)組成),O是網(wǎng)絡(luò)的輸出層(由ns個(gè)節(jié)點(diǎn)組成).輸入層和隱層之間的權(quán)重α∈?nus×ncc是網(wǎng)絡(luò)輸入層權(quán)重,隱層和輸出層之間的權(quán)重β∈?ncc×ns是網(wǎng)絡(luò)的輸出層權(quán)重,為了增加網(wǎng)絡(luò)模型的線性表達(dá)能力,在隱層加入了偏置矩陣B=[b1,b2,…,bn]T,其中,bi=(b1,…,bncc)T.為了提高網(wǎng)絡(luò)的非線性表達(dá)能力,隱層的每一個(gè)單元節(jié)點(diǎn)需要被非線性函數(shù)作用,這里稱這個(gè)函數(shù)為激活函數(shù),一般地,該函數(shù)選擇的是sigmoid函數(shù),即

        Fig.1 Feedforward neural network model with single hidden layer圖1 單隱層前饋神經(jīng)網(wǎng)絡(luò)模型

        ELM的訓(xùn)練方法是有監(jiān)督的方法,因而在訓(xùn)練過程中需要有標(biāo)簽的數(shù)據(jù)集S.在S中,條件屬性矩陣用X表示,決策屬性矩陣用T表示,這兩個(gè)矩陣的形式如下所示.

        其中,n代表數(shù)據(jù)集S中的樣本總個(gè)數(shù);X中每一行是一個(gè)nus維的樣本向量;T中每一行是一個(gè)ns維的標(biāo)簽向量,該向量用one-hot形式表示,且ns等于數(shù)據(jù)集里的類別個(gè)數(shù).

        在實(shí)際的分類工作中,I接收輸入矩陣X,經(jīng)前向傳播依次得到H的輸出H∈?n×ncc和O的輸出Y∈?n×ns.

        其中,X是已知的,α和B是被隨機(jī)賦值的,只有β一個(gè)是未知量,也就是需要優(yōu)化求解的網(wǎng)絡(luò)參數(shù).優(yōu)化的目標(biāo)是最小化網(wǎng)絡(luò)輸出Y和期望輸出T之間的距離:

        β可以用下面的等式求解.

        很明顯,通過上式求解β是一個(gè)最小二乘問題.其中,為了更一般化地定義上式的求解過程,可以求H的廣義逆,即Moore-Penrose逆.

        接下來將介紹本文所涉及到的另一個(gè)數(shù)學(xué)模型,即RBM.RBM是一個(gè)概率圖模型[24],其結(jié)構(gòu)如圖2所示.可以看出,RBM是一個(gè)無向二分圖模型.其中,v=(v1,v2,...,vnv)是可見層(由nv個(gè)節(jié)點(diǎn)構(gòu)成),h=(h1,h2,...,hnh)是隱藏層(由nh個(gè)節(jié)點(diǎn)構(gòu)成).RBM在本文里的主要作用是將可見層的數(shù)據(jù)編碼成隱藏層的表達(dá)形式.由于RBM的訓(xùn)練機(jī)制采用的是無監(jiān)督的方法,所以訓(xùn)練數(shù)據(jù)集S={v1,v2,…,vN}里的樣本vi不需要標(biāo)簽屬性,N是樣本個(gè)數(shù).

        Fig.2 Network structure of RBM圖2 RBM網(wǎng)絡(luò)結(jié)構(gòu)

        可見層和隱藏層的條件概率公式可由下面的公式來表達(dá).

        其中,σ的函數(shù)形式是 sigmoid函數(shù).在上面的式子中,a=(a1,a2,...,anv)是可見層偏置,b=(b1,b2,...,bnh)是隱藏層偏置,W=[wi,j]nh×nv是RBM的網(wǎng)絡(luò)權(quán)重.a,b和W是需要學(xué)習(xí)的參數(shù)θ.給定訓(xùn)練集合S,優(yōu)化目標(biāo)是求解下式的極大似然.

        可以看出,因?yàn)椤苬的存在,上式的計(jì)算復(fù)雜度為O(2nv+nh).為了簡(jiǎn)化計(jì)算復(fù)雜度,可以采用 Gibbs采樣[24]的方法,經(jīng)過t次采樣后,上式可以通過下面的式子近似求解.

        具體地,在本文里,我們采用Hinton等人[25]提出來的對(duì)比散度(contrastive divergence,簡(jiǎn)稱 CD)算法來優(yōu)化RBM模型的參數(shù),優(yōu)化過程如算法1所示.

        算法1.RBM的訓(xùn)練算法.

        2 方法設(shè)計(jì)

        在這一節(jié)中,我們將詳細(xì)介紹我們提出來的方法,并且將這個(gè)新的方法用于解決 Bug報(bào)告分類中普遍存在的3個(gè)問題:第1個(gè)問題是數(shù)據(jù)類別不平衡問題,第2個(gè)是訓(xùn)練集里被標(biāo)記的數(shù)據(jù)不充足的問題,第3個(gè)是數(shù)據(jù)集之間的樣本遷移問題.

        2.1 基于代價(jià)ELM解決數(shù)據(jù)不平衡問題

        ELM 是一種隨機(jī)賦權(quán)網(wǎng)絡(luò)模型,和其他神經(jīng)網(wǎng)絡(luò)一樣,是一種非線性函數(shù).在分類問題里,ELM 將條件屬性域里的樣本映射為決策屬性域里的類別標(biāo)簽.在這一點(diǎn)上,ELM和其他分類器一樣,都是通過學(xué)習(xí)樣例到標(biāo)簽之間的映射關(guān)系來進(jìn)行分類工作.ELM的具體學(xué)習(xí)過程在第1節(jié)里已經(jīng)詳細(xì)介紹,這個(gè)學(xué)習(xí)過程的優(yōu)化目標(biāo)就是最小化實(shí)際輸出和期望輸出之間的距離,這個(gè)距離通常是二者之間的歐氏距離.在分類問題中,網(wǎng)絡(luò)的期望輸出是樣例的類別標(biāo)簽(一般將其表達(dá)成 one-hot形式的向量),通過最小化網(wǎng)絡(luò)的實(shí)際輸出向量與期望輸出向量之間的歐氏距離,來學(xué)習(xí)得到網(wǎng)絡(luò)的參數(shù).

        可是,有一個(gè)問題需要注意:在分類問題里,每一類的樣例被錯(cuò)誤分類的代價(jià)應(yīng)該是不同的,比如在不平衡數(shù)據(jù)集里,多數(shù)類樣例因?yàn)闃颖緜€(gè)數(shù)多,所以更容易被正確分類,而少數(shù)類樣例則更容易被錯(cuò)誤分類,所以一個(gè)多數(shù)類樣例被錯(cuò)誤分類的代價(jià)應(yīng)該小于一個(gè)少數(shù)類樣例被錯(cuò)誤分類的代價(jià).但是在ELM以及大多數(shù)分類器的前提假設(shè)里,都默認(rèn)每個(gè)類別的樣例被錯(cuò)誤分類的代價(jià)是一樣的.

        本文主要是解決Bug報(bào)告的嚴(yán)重性分類問題.在實(shí)際工作中,嚴(yán)重的Bug需要被即時(shí)處理,不嚴(yán)重的Bug可以被延時(shí)處理.在自動(dòng)分類Bug時(shí),就需要準(zhǔn)確預(yù)測(cè)Bug報(bào)告的嚴(yán)重程度,將嚴(yán)重的Bug識(shí)別出來,即時(shí)地提交開發(fā)人員處理.但是在大多數(shù)Bug報(bào)告數(shù)據(jù)集里,嚴(yán)重的Bug樣例個(gè)數(shù)要明顯多于不嚴(yán)重的Bug樣例個(gè)數(shù),因此Bug報(bào)告數(shù)據(jù)集通常都是類別不平衡的數(shù)據(jù)集.這樣導(dǎo)致分類器易將不嚴(yán)重Bug誤報(bào)成嚴(yán)重Bug,降低了分類器對(duì)嚴(yán)重 Bug的識(shí)別準(zhǔn)確率.為此,我們對(duì) ELM 模型在分類問題上進(jìn)行擴(kuò)展,得到一種考慮到錯(cuò)誤代價(jià)的分類模型.因此,我們引入代價(jià)敏感的ELM分類模型[26].

        為了構(gòu)建代價(jià)敏感的ELM分類模型,首先需要構(gòu)造一個(gè)錯(cuò)誤分類的代價(jià)矩陣D,即

        在這個(gè)矩陣?yán)?di,j代表第i類樣例被錯(cuò)誤分到第j類的代價(jià)大小,很明顯地,di,j等于零,也就是第i類樣例被正確分類時(shí)所產(chǎn)生的代價(jià)是零.我們用ci代表第i類樣例被錯(cuò)誤分類的代價(jià),ci可以用下面的公式求得.

        假設(shè)數(shù)據(jù)集里的類別個(gè)數(shù)一共是ns,那么通過等式(7),所有類別的樣例被錯(cuò)誤分類的代價(jià)可以被集合Cost表示:Cost=(c1,c2,…,cns).

        通過引入代價(jià)矩陣,代價(jià)敏感的ELM將原始的ELM擴(kuò)展成了一個(gè)考慮到錯(cuò)誤分類代價(jià)的分類模型.在優(yōu)化過程中,代價(jià)敏感的 ELM 將優(yōu)化目標(biāo)擴(kuò)展成為一個(gè)帶有代價(jià)權(quán)重的歐氏距離之和.為了表示這個(gè)優(yōu)化目標(biāo),首先將訓(xùn)練集里的樣例按照類別分組,同上,這里假設(shè)類別個(gè)數(shù)為ns,每一組樣例同屬于一個(gè)類別,這個(gè)組可以被表示為Xi,被分組后的數(shù)據(jù)集可以被表示為可以由下面的公式求出.,其對(duì)應(yīng)的標(biāo)簽矩陣為T,對(duì)應(yīng)的隱層矩陣H

        代價(jià)敏感的ELM的優(yōu)化目標(biāo)是最小化分類錯(cuò)誤代價(jià),通過上面給出的一些符號(hào)化定義,這個(gè)優(yōu)化目標(biāo)可以被表示為

        和第1節(jié)介紹的ELM參數(shù)優(yōu)化求解方法一樣,這里的矩陣求逆可通過Moore-Penrose廣義逆來求解得到.

        在本文所要解決的Bug報(bào)告分類問題中,數(shù)據(jù)集都是二分類問題,其中多數(shù)類是嚴(yán)重的Bug報(bào)告,少數(shù)類是不嚴(yán)重的Bug報(bào)告.通常,這兩類之間會(huì)存在很大的不平衡度[9,10],因此,我們?cè)谶@里提出來用代價(jià)敏感的ELM來分類 Bug報(bào)告數(shù)據(jù)集里的樣例,通過給少數(shù)類樣例比較大的錯(cuò)誤分類代價(jià),給多數(shù)類樣例比較小的錯(cuò)誤分類代價(jià),并且最小化錯(cuò)誤分類的總代價(jià),來自動(dòng)地解決Bug報(bào)告數(shù)據(jù)集在分類過程里存在的類別不平衡問題.

        其中,所有數(shù)據(jù)集上的代價(jià)矩陣是一個(gè) 2×2的方陣,對(duì)角線上元素全為 0,代表著樣例被正確分類的代價(jià)是0,其他元素則分別代表著少數(shù)類樣例被錯(cuò)分類到多數(shù)類的錯(cuò)誤代價(jià)ca和多數(shù)類樣例被錯(cuò)分到少數(shù)類的錯(cuò)誤代價(jià)cb.在設(shè)置代價(jià)矩陣時(shí),ca要大于cb.之后,通過最小化錯(cuò)誤分類的總代價(jià),可以使ELM模型對(duì)少數(shù)類的錯(cuò)誤分類更加敏感,從而達(dá)到解決分類中的類別不平衡問題.用代價(jià)敏感的ELM來解決Bug報(bào)告分類中不平衡問題的過程可以用算法2來表示.

        算法2.代價(jià)敏感的ELM的訓(xùn)練算法.

        (1) 輸入:條件屬性矩陣X,標(biāo)簽屬性矩陣T//輸入的矩陣已按類別分組

        (2) 初始化:隱層節(jié)點(diǎn)數(shù)ncc,代價(jià)矩陣D;隨機(jī)初始化:輸入權(quán)重α,隱層偏置B

        (3) 用公式(8)計(jì)算隱層輸出值矩陣H

        (4) 通過公式(10)求解β*

        (5) 返回β*

        2.2 基于半監(jiān)督方法處理訓(xùn)練數(shù)據(jù)不充分問題

        本文之前介紹的ELM方法和代價(jià)敏感的ELM方法都是有監(jiān)督學(xué)習(xí)的方法,監(jiān)督學(xué)習(xí)的方法需要訓(xùn)練數(shù)據(jù)既有條件屬性也要有與之相對(duì)應(yīng)的標(biāo)簽屬性.但是在軟件測(cè)試的過程中,條件屬性容易獲得,與之對(duì)應(yīng)的標(biāo)簽屬性則需要精密的人工標(biāo)注才可以獲得.面對(duì)這種情況,我們?cè)诒竟?jié)提出一種基于模糊度的半監(jiān)督學(xué)習(xí)方法[26],并且用這種方法來解決軟件 Bug報(bào)告的分類問題.在文獻(xiàn)[26]里已經(jīng)證明,高模糊性的樣例的分類代價(jià)要明顯大于低模糊性的樣例的分類代價(jià),所以這里使用低模糊性的樣例來填充原數(shù)據(jù)集可以避免整體的分類代價(jià)過高,而且 Wang等人[13]提出,模糊性與不確定性存在著正相關(guān)的關(guān)系,低模糊性的樣例具有低的不確定性,也就是被正確分類的可能性較大,這也是我們選擇低模糊性樣例來填充數(shù)據(jù)集的原因.

        如上所述,在軟件測(cè)試過程中會(huì)產(chǎn)生很多無標(biāo)簽的數(shù)據(jù),而軟件 Bug報(bào)告分類問題主要就是通過學(xué)習(xí)條件屬性到標(biāo)簽數(shù)據(jù)之間的映射關(guān)系,使得分類器可以自動(dòng)分類這些數(shù)據(jù).目前,在機(jī)器學(xué)習(xí)領(lǐng)域都是使用數(shù)據(jù)驅(qū)動(dòng)的分類方法,這就需要在訓(xùn)練這些分類器時(shí),可以提供大量的有標(biāo)簽的訓(xùn)練數(shù)據(jù).本文里,這些數(shù)據(jù)的標(biāo)簽只有嚴(yán)重和非嚴(yán)重兩類.但是要想獲取這些標(biāo)簽,就需要大量的人工標(biāo)注.人工標(biāo)注的工作往往耗時(shí)而且代價(jià)昂貴,這就很自然地使人們想到用未標(biāo)注的數(shù)據(jù)來解決軟件測(cè)試Bug報(bào)告的分類問題.

        在利用未標(biāo)注的軟件測(cè)試 Bug報(bào)告數(shù)據(jù)時(shí),我們提出了一個(gè)方法,即通過在有限的有標(biāo)注的數(shù)據(jù)集上訓(xùn)練出一個(gè)弱分類器,然后用這個(gè)弱分類器對(duì)未標(biāo)注的數(shù)據(jù)進(jìn)行分類,得到分類結(jié)果后,我們通過模糊度來衡量這些分類結(jié)果的可信程度,選擇可信程度高的數(shù)據(jù)來補(bǔ)充原始的訓(xùn)練數(shù)據(jù)集,而這些數(shù)據(jù)的標(biāo)簽屬性則是通過弱分類器給出.

        理論上,上述過程可以重復(fù)多次,每一次都從未標(biāo)注的數(shù)據(jù)集里挑選出可信程度大的數(shù)據(jù)來補(bǔ)充訓(xùn)練數(shù)據(jù)集.因?yàn)橛?xùn)練數(shù)據(jù)集的樣本容量在不斷地?cái)U(kuò)充,所以訓(xùn)練出來的分類器的分類性能也會(huì)逐漸提高.最終的理想結(jié)果是,未標(biāo)注的樣例全部被自動(dòng)地加上標(biāo)簽并且被擴(kuò)充到訓(xùn)練集里.通過這個(gè)完備的數(shù)據(jù)集,可以訓(xùn)練得到一個(gè)泛化能力很強(qiáng)的分類器.但是需要注意:當(dāng)分類器的分類精度不是很高時(shí),錯(cuò)誤分類的情況很可能會(huì)發(fā)生,也就是未標(biāo)注的樣例在這種情況下很可能被標(biāo)上錯(cuò)誤的標(biāo)簽,這樣就會(huì)干擾分類器性能的提升.因而,要想達(dá)到之前所述的理想的情況,每次選擇多少未標(biāo)注的樣本來擴(kuò)充訓(xùn)練集,這是一個(gè)很關(guān)鍵的問題.

        在實(shí)現(xiàn)這個(gè)方法的過程中,最關(guān)鍵的指標(biāo)是未標(biāo)注數(shù)據(jù)的模糊度的測(cè)量.模糊度的計(jì)算有多種方法,Zadeh等人[27]總結(jié)出了一些計(jì)算模糊度的方法,其中包括基于Hamming距離或者歐式距離的模糊性的計(jì)算方法、針對(duì)大型多類問題的模糊性計(jì)算方法.在本文中,我們利用下面的方法來計(jì)算模糊度的大小.

        其中,向量μi=(μi1,μi2,…,μi,ns),μij是第i個(gè)樣本屬于第j類的隸屬度大小.

        因?yàn)榭紤]到了數(shù)據(jù)集里類別不平衡的因素,所以在實(shí)現(xiàn)本節(jié)的方法時(shí),分類器采用的是代價(jià)敏感的ELM模型.但是注意到,在計(jì)算模糊度時(shí),需要知道樣例屬于每一個(gè)類別的后驗(yàn)概率.可是在ELM的原始設(shè)計(jì)中,網(wǎng)絡(luò)輸出的值Y=[yij]n×ns不能表達(dá)這個(gè)信息.基于此,我們引入了softmax,將該函數(shù)作為激活函數(shù)作用到網(wǎng)絡(luò)的輸出層,計(jì)算公式如下所示.

        算法3詳細(xì)表達(dá)了上述的基于模糊度的半監(jiān)督方法.

        算法3.半監(jiān)督訓(xùn)練算法.

        (1) 輸入:有標(biāo)簽的條件屬性矩陣X,標(biāo)簽屬性矩陣T;無標(biāo)簽的條件屬性矩陣Z

        (2) 初始化:隱層節(jié)點(diǎn)個(gè)數(shù)ncc,代價(jià)矩陣D;隨機(jī)初始化ELM的輸入層權(quán)重和隱層偏置

        (3) 根據(jù)算法2,利用數(shù)據(jù)X和T訓(xùn)練一個(gè)代價(jià)敏感的ELM:CELM

        (4) 利用CELM對(duì)樣本矩陣Z進(jìn)行分類

        (5) 得到Z上的分類結(jié)果后,通過公式11計(jì)算每個(gè)樣本的模糊度

        (6) 對(duì)模糊度進(jìn)行升序排列,選擇前k個(gè)樣例zx補(bǔ)充數(shù)據(jù)集X,

        用zx被CELM分類得到的標(biāo)簽zy補(bǔ)充T

        (7) 在補(bǔ)充后的數(shù)據(jù)集上重新根據(jù)算法2訓(xùn)練代價(jià)敏感的分類器

        (8) 返回新得到的分類器的參數(shù)矩陣β

        2.3 Bug報(bào)告數(shù)據(jù)集間的樣例遷移方法

        第 2.2節(jié)介紹了一種基于模糊度的半監(jiān)督方法,這個(gè)方法主要為了解決訓(xùn)練數(shù)據(jù)中標(biāo)注樣本少的問題.這個(gè)方法的提出是基于一個(gè)假設(shè),即未標(biāo)注的樣本和少量的有標(biāo)注的樣本來自同一個(gè)數(shù)據(jù)集.但是在軟件測(cè)試Bug報(bào)告的數(shù)據(jù)集里,不僅被標(biāo)注的樣本量少,而且整體的樣本總量也很少.在訓(xùn)練分類器時(shí),訓(xùn)練數(shù)據(jù)集的樣本量不充足會(huì)帶來的問題是使得訓(xùn)練得到的分類器容易過擬合,也就是該分類器在訓(xùn)練集上表現(xiàn)良好,可是其泛化能力很弱.在實(shí)際工作中,泛化能力弱的分類器在處理新的待分類樣本時(shí),往往會(huì)給出錯(cuò)誤的決策.

        為了解決 Bug報(bào)告中有些數(shù)據(jù)集的樣本總量過少的問題,我們?cè)诒竟?jié)提出一種基于模糊度的樣例遷移方法.該方法不需要被遷移的樣例與已有樣例來自同一數(shù)據(jù)集,即為了擴(kuò)充訓(xùn)練集的樣本容量,可以使用該方法將別的數(shù)據(jù)集里的樣例遷移到訓(xùn)練集里來擴(kuò)充樣本容量.

        該方法的好處就是可以解決因?yàn)闃颖救萘可俣鴮?dǎo)致的過擬合問題,但是在選擇樣例上,該方法存在著和上一節(jié)一樣的問題:如果樣本選擇不好,則同樣會(huì)導(dǎo)致過擬合的問題出現(xiàn).為了更加客觀地選擇樣本,我們先在已有的數(shù)據(jù)集上訓(xùn)練得到一個(gè)弱分類器,然后用該分類器對(duì)被遷移數(shù)據(jù)集進(jìn)行分類,得到分類結(jié)果后,可以計(jì)算每個(gè)樣例的模糊度,模糊度越大,不確定性越大,所以選擇模糊度小的樣例來補(bǔ)充原有的數(shù)據(jù)集,這些樣例的標(biāo)簽通過弱分類器得到.然后,在擴(kuò)展后的數(shù)據(jù)集上再次訓(xùn)練分類器.這個(gè)過程可以一直重復(fù),直到得到合適的訓(xùn)練樣本容量.

        需要注意的是,為了避免數(shù)據(jù)集里類別不平衡問題的干擾,在這個(gè)方法里,我們選擇的分類器同樣是代價(jià)敏感的 ELM 模型.在實(shí)際工作中,另一個(gè)需要解決的問題是不同數(shù)據(jù)集的樣本維度通常不一樣,這個(gè)問題限制了這個(gè)方法的應(yīng)用范圍.為了解決這個(gè)問題,使得我們的方法更具一般性,我們將RBM引入到該方法中.

        在第1節(jié)里已經(jīng)介紹了RBM.RBM可以被視為一種樣本編碼工具,即可以通過非線性變換,將樣本從一個(gè)維度空間映射到另一個(gè)維度空間.在編碼的過程中,RBM 保證編碼前和編碼后的樣本是等價(jià)的.在本節(jié)的工作里,我們采用RBM將不同數(shù)據(jù)集里的樣本編碼成統(tǒng)一的維度,這樣就為分類器在不同數(shù)據(jù)集上進(jìn)行遷移訓(xùn)練提供了可能性.我們用S={X,T}表示原數(shù)據(jù)集;同時(shí),用St表示被遷移數(shù)據(jù)集St={Xt}.基于這些符號(hào)化的定義,該節(jié)提出來的方法可以用算法4來詳細(xì)表述.

        算法4.樣本遷移算法.

        (1)輸入:數(shù)據(jù)集S,其中,條件屬性矩陣X,標(biāo)簽屬性矩陣T,被遷移的數(shù)據(jù)集St={Xt}

        (2)初始化:ELM的隱層節(jié)點(diǎn)個(gè)數(shù)ncc,代價(jià)矩陣D,RBM的隱層節(jié)點(diǎn)個(gè)數(shù)nh.

        隨機(jī)初始化:ELM的輸入層權(quán)重和隱層偏置

        (3)通過算法1,利用數(shù)據(jù)X和Xt分別訓(xùn)練得到兩個(gè)RBM模型

        (4)通過訓(xùn)練得到的RBM對(duì)X和Xt進(jìn)行編碼,得到新的數(shù)據(jù)表達(dá)形式Xp和Xtp

        (5)根據(jù)算法2,利用數(shù)據(jù)Xp和T,訓(xùn)練得到一個(gè)代價(jià)敏感的ELM:CELM

        (6)利用CELM對(duì)數(shù)據(jù)集Xtp里的樣本進(jìn)行分類

        (7)得到Xtp上的分類結(jié)果后,通過公式(11)計(jì)算每個(gè)樣本的模糊度

        (8)對(duì)模糊度進(jìn)行升序排列,選擇前k個(gè)樣例trx補(bǔ)充數(shù)據(jù)集Xp,

        用trx被CELM分類得到的標(biāo)簽try補(bǔ)充T

        (9)在補(bǔ)充后的數(shù)據(jù)集上重新根據(jù)算法2訓(xùn)練代價(jià)敏感的分類器

        (10) 返回新得到的分類器的參數(shù)矩陣β

        3 本文實(shí)驗(yàn)

        本文針對(duì)軟件測(cè)試Bug報(bào)告數(shù)據(jù)集里存在的3個(gè)問題提出了3個(gè)解決方法,即針對(duì)訓(xùn)練數(shù)據(jù)集類別不平衡問題,提出了代價(jià)敏感的 ELM 分類方法;針對(duì)數(shù)據(jù)集被標(biāo)記的樣本較少的問題,提出了基于模糊度的半監(jiān)督方法;針對(duì)訓(xùn)練數(shù)據(jù)集總體樣本量較少的問題,提出了基于模糊度和 RBM 的樣本遷移方法.為了驗(yàn)證我們提出的方法的有效性,我們開展了3組驗(yàn)證性的實(shí)驗(yàn).

        在本節(jié)中,實(shí)驗(yàn)所采用的數(shù)據(jù)集是真實(shí)的軟件測(cè)試Bug數(shù)據(jù)集.數(shù)據(jù)集來自3個(gè)開源項(xiàng)目.本節(jié)實(shí)驗(yàn)里用到的數(shù)據(jù)集一共21個(gè),其中,7個(gè)Eclipse[28]、7個(gè)Moizlla[29]、7個(gè)GNOME[30].數(shù)據(jù)集的名稱以及數(shù)據(jù)集的不平衡度都在表1~表3中被列出.其中,不平衡度Imbalance Ratio(IR)的計(jì)算如下所示.

        其中,num_min是少數(shù)類的樣本個(gè)數(shù),num_maj是多數(shù)類的樣本個(gè)數(shù).

        Table 1 Datasets of Eclipse Bug reports表1 Eclipse Bug報(bào)告數(shù)據(jù)集

        Table 2 Datasets of GNOME Bug reports表2 GNOME Bug報(bào)告數(shù)據(jù)集

        Table 3 Datasets of Moizlla Bug reports表3 Moizlla Bug報(bào)告數(shù)據(jù)集

        在接下來的實(shí)驗(yàn)里,我們采用的評(píng)價(jià)指標(biāo)分別是準(zhǔn)確率和加權(quán)的F-measure[31].其中,準(zhǔn)確率是樣本被正確分類的比率;加權(quán)的F-measure是兩類樣例在查全率和查準(zhǔn)率上的一個(gè)綜合性的指標(biāo),在本文實(shí)驗(yàn)里,該指標(biāo)更能反映出分類器對(duì)嚴(yán)重Bug的誤報(bào)程度.準(zhǔn)確率的計(jì)算如下所示:

        其中,Accuracy是準(zhǔn)確率,TP、FP、TN和FN的關(guān)系可以用表4表示.

        Table 4 Confusion matrix表4 混淆矩陣

        F-measure的計(jì)算如下:

        其中,在本文實(shí)驗(yàn)里,γ等于1,Precision代表查準(zhǔn)率,Recall代表查全率,這兩個(gè)指標(biāo)的計(jì)算可由下面的公式表達(dá).

        本文所用到的加權(quán)F-measure計(jì)算如下:

        其中,wF是加權(quán)的F-measure;W=(w1,w2),w1是第1類樣例占的比例,w2是第2類樣例占的比例.

        本節(jié)的第 1個(gè)實(shí)驗(yàn)是驗(yàn)證代價(jià)敏感的 ELM在不平衡數(shù)據(jù)集上的分類效果.作為對(duì)比,我們用傳統(tǒng)的 ELM在相同的數(shù)據(jù)集上進(jìn)行實(shí)驗(yàn).除此之外,我們還比較了基本的分類器,即樸素貝葉斯模型(NB)、BP神經(jīng)網(wǎng)絡(luò)模型(BPNN)和支持向量機(jī)(SVM)[32].數(shù)據(jù)集的劃分是:把數(shù)據(jù)集平均分成5份,每次隨機(jī)取3份作為訓(xùn)練集,剩下的2份作為測(cè)試集.為了保證客觀性,我們對(duì)兩個(gè)方法都進(jìn)行了100次實(shí)驗(yàn),最后的結(jié)果是取這100次實(shí)驗(yàn)的平均值.在每次實(shí)驗(yàn)里,為了保證公平性,代價(jià)敏感的ELM和傳統(tǒng)的ELM的隱層節(jié)點(diǎn)數(shù)以及BPNN的隱層節(jié)點(diǎn)數(shù)都被設(shè)置成一樣的個(gè)數(shù),并且兩個(gè)模型的輸入層權(quán)重和隱層偏置也都被相同的隨機(jī)數(shù)賦值.我們?cè)趯?shí)驗(yàn)里給權(quán)重和偏置隨機(jī)賦權(quán)的方法是在區(qū)間[0,1]里隨機(jī)取值.表5~表10給出了這組實(shí)驗(yàn)的對(duì)比結(jié)果.

        Table 5 Testing accuracies on Eclipse datasets表5 Eclipse數(shù)據(jù)集上的測(cè)試準(zhǔn)確率

        Table 6 WeightedF-measures on Eclipse datasets表6 Eclipse數(shù)據(jù)集上的加權(quán)F-measures

        Table 7 Testing accuracies on GNOME datasets表7 GNOME數(shù)據(jù)集上的測(cè)試準(zhǔn)確率

        Table 8 WeightedF-measures on GNOME datasets表8 GNOME數(shù)據(jù)集上的加權(quán)F-measures

        Table 9 Testing accuracies on Moizlla datasets表9 Moizlla數(shù)據(jù)集上的測(cè)試準(zhǔn)確率

        Table 10 WeightedF-measures on Moizlla datasets表10 Moizlla數(shù)據(jù)集上的加權(quán)F-measures

        通過表1~表3的最后一列可以看出,Bug報(bào)告數(shù)據(jù)集都是有著不平衡度的數(shù)據(jù)集,而且有些數(shù)據(jù)集的不平衡度較大.在處理數(shù)據(jù)類別不平衡這個(gè)問題時(shí),通過給少數(shù)類樣例更大的錯(cuò)誤分類代價(jià),得到的分類準(zhǔn)確率在絕大多數(shù) Bug報(bào)告數(shù)據(jù)集上有了很明顯的提升.雖然在表7中,GNOME_Evolution_Mailer的準(zhǔn)確率結(jié)果要偏低,但是通過加權(quán)的F-measure值的比較可以看出,代價(jià)敏感的分類器在重要數(shù)據(jù)樣本的分類上面表現(xiàn)仍舊良好,也就是對(duì)嚴(yán)重Bug的誤報(bào)率較低.而且通過在所有數(shù)據(jù)集上比較加權(quán)的F-measure值可以看到,基于代價(jià)的分類模型都能取得很好的效果.與其他傳統(tǒng)的分類器相比,ELM 方法需要設(shè)定的參數(shù)更少,尤其與 BPNN的比較中,ELM的訓(xùn)練時(shí)間要遠(yuǎn)遠(yuǎn)低于BP迭代調(diào)參所需要的時(shí)間,并且在絕大多數(shù)數(shù)據(jù)集上,ELM方法可以取得較好的效果.在圖3中,我們比較了欠采樣方法(RUS-ELM)、過采樣方法(ROS-ELM)、合成過采樣方法(SMOTE)與代價(jià)敏感方法.欠采樣方法是對(duì)多數(shù)類樣例進(jìn)行隨機(jī)刪減,可以看出,因?yàn)闇p少了訓(xùn)練樣本的容量,并且在刪減樣本的過程中容易丟失重要數(shù)據(jù),所以該方法效果不是很好;過采樣的方法則是對(duì)少數(shù)類樣例進(jìn)行擴(kuò)充,該方法可能會(huì)受到冗余數(shù)據(jù)的影響,造成分類器過擬合,對(duì)分類器泛化能力造成不好的影響;SMOTE方法相對(duì)表現(xiàn)較好,但是該方法容易造成類間的 overlapping現(xiàn)象,且在類別臨界面生成樣例時(shí),容易將合成的多數(shù)類樣例標(biāo)記成少數(shù)類類別,從而不利于分類器對(duì)數(shù)據(jù)分布特點(diǎn)的學(xué)習(xí).通過比較,基于代價(jià)敏感的平衡方法在絕大部分?jǐn)?shù)據(jù)集上都有較好的結(jié)果,而且基于代價(jià)的方法表現(xiàn)得更加穩(wěn)定,更適合被用于實(shí)際的工作中.從效率上來看,基于代價(jià)的方法不需要事先對(duì)數(shù)據(jù)集進(jìn)行平衡化的預(yù)處理,而是可以進(jìn)行端到端的訓(xùn)練,從而更加滿足本文研究領(lǐng)域的需求.

        Fig.3 Comparison among RUS,ROS,SMOTE and cost-based method圖3 欠采樣、過采樣、合成過采樣和代價(jià)敏感方法的比較

        Fig.3 Comparison among RUS,ROS,SMOTE and cost based method (Continued 1)圖3 欠采樣、過采樣、合成過采樣和代價(jià)敏感方法的比較(續(xù)1)

        Fig.3 Comparison among RUS,ROS,SMOTE and cost based method (Continued 2)圖3 欠采樣、過采樣、合成過采樣和代價(jià)敏感方法的比較(續(xù)2)

        圖3中的結(jié)果都是實(shí)驗(yàn)重復(fù)100次得到的平均值,藍(lán)色圖是準(zhǔn)確度的結(jié)果,綠色圖是加權(quán)F-measure值的結(jié)果.1~5分別代表ELM、CELM、RUS-ELM、ROS-ELM和SMOTE-ELM.

        本節(jié)的第 2個(gè)實(shí)驗(yàn)是驗(yàn)證基于模糊度的半監(jiān)督方法在擴(kuò)充訓(xùn)練集樣本容量上的有效性.在這個(gè)實(shí)驗(yàn)里,我們采用的分類器是代價(jià)敏感的 ELM 模型,目的是為了避免數(shù)據(jù)集里不平衡問題的干擾.在該實(shí)驗(yàn)里,對(duì)原始數(shù)據(jù)集的劃分是:將數(shù)據(jù)集劃分成6份,每次隨機(jī)選擇其中的3份作為訓(xùn)練集,在剩下的數(shù)據(jù)中,隨機(jī)選擇2份作為測(cè)試集,最后留下的數(shù)據(jù)作為驗(yàn)證集.其中,驗(yàn)證集則是本文第2.2節(jié)里提到的未標(biāo)注數(shù)據(jù)集.在實(shí)驗(yàn)過程中,我們先在原始的訓(xùn)練集上訓(xùn)練得到一個(gè)弱分類器,然后在驗(yàn)證集上對(duì)樣例進(jìn)行分類,之后通過模糊度的大小選擇一定數(shù)量的驗(yàn)證集樣例來擴(kuò)充原始的訓(xùn)練集,然后用擴(kuò)充得到的數(shù)據(jù)集再次訓(xùn)練一個(gè)分類器.為了保證客觀性,前后兩個(gè)分類器的各項(xiàng)參數(shù)的設(shè)置完全一樣,具體操作方法如第 1個(gè)實(shí)驗(yàn)所述.為了通過對(duì)比顯示我們方法的有效性,我們用兩次訓(xùn)練得到的分類器對(duì)測(cè)試集的樣本進(jìn)行分類,最后通過上述兩個(gè)指標(biāo)來評(píng)價(jià)分類結(jié)果,該結(jié)果同樣是對(duì)100次的實(shí)驗(yàn)結(jié)果求平均值得到的最終結(jié)果.我們用First表示在原始數(shù)據(jù)集上訓(xùn)練得到的分類器的測(cè)試結(jié)果,用Second表示用擴(kuò)充后的數(shù)據(jù)集訓(xùn)練的分類器的測(cè)試結(jié)果.這部分的實(shí)驗(yàn)見表11.

        Table 11 Experimental results of semi-supervised approach表11 半監(jiān)督方法的實(shí)驗(yàn)結(jié)果

        從表11可以看出,通過基于模糊度的半監(jiān)督方法來擴(kuò)充數(shù)據(jù)集,并且用新的數(shù)據(jù)集再次訓(xùn)練分類器,所得到的分類器的分類效果在每個(gè)數(shù)據(jù)集上都有了提升.這證明了我們提出來的這個(gè)方法對(duì)于改善分類器的泛化能力是有效的.

        本節(jié)的第3個(gè)實(shí)驗(yàn)是驗(yàn)證基于模糊度和RBM的樣本遷移方法的有效性.在這個(gè)實(shí)驗(yàn)里,我們采用的分類器同樣是代價(jià)敏感的ELM模型.我們對(duì)原始數(shù)據(jù)集的劃分方法和第1個(gè)實(shí)驗(yàn)里數(shù)據(jù)集劃分方法一樣.對(duì)于被遷移的數(shù)據(jù)集,我們沒有采用任何的劃分方法.在進(jìn)行分類之前,我們首先對(duì)原始數(shù)據(jù)集的整體進(jìn)行 RBM 編碼,同時(shí)對(duì)被遷移的數(shù)據(jù)集的整體進(jìn)行RBM編碼.在這兩次編碼中,我們采用3個(gè)級(jí)聯(lián)的RBM對(duì)輸入數(shù)據(jù)進(jìn)行維度空間的變換.在編碼過程中,我們只需要保證兩次編碼的輸出維度一樣即可,中間隱層的維度則可以自主調(diào)節(jié).分類實(shí)驗(yàn)的具體操作過程是,先在原始的訓(xùn)練集上訓(xùn)練得到一個(gè)分類器,然后對(duì)被遷移的樣本進(jìn)行分類,用分類結(jié)果計(jì)算每個(gè)樣本的模糊度大小,根據(jù)模糊度大小來選擇樣本來擴(kuò)充原始的訓(xùn)練集.之后,再利用擴(kuò)充后的訓(xùn)練集重新訓(xùn)練一個(gè)分類器.在實(shí)驗(yàn)過程中,前后兩個(gè)分類器的參數(shù)設(shè)置完全一樣.為了體現(xiàn)實(shí)驗(yàn)的客觀性,我們重復(fù)本實(shí)驗(yàn)的全部過程(編碼過程和分類過程)100次,最后取這100次的平均值作為實(shí)驗(yàn)結(jié)果.我們用Before表示在原始數(shù)據(jù)集上訓(xùn)練得到的分類器的測(cè)試結(jié)果,用After表示在被擴(kuò)充后的數(shù)據(jù)集上訓(xùn)練得到的分類器的測(cè)試結(jié)果.這些結(jié)果展示在表12中.

        Table 12 Experimental results of transferring approach表12 遷移方法的實(shí)驗(yàn)結(jié)果

        從表12中我們可以看出,無論是準(zhǔn)確率還是加權(quán)的F-measure值,再次訓(xùn)練的分類器都取得了較好的效果.這個(gè)結(jié)果顯示,基于RBM和模糊度的樣本遷移方法在擴(kuò)充樣本容量并且提升分類器的泛化能力這些方面是有效的.

        本節(jié)的實(shí)驗(yàn)基本驗(yàn)證了我們提出方法的可行性和有效性.其中,如第 3節(jié)所述,在利用半監(jiān)督方法擴(kuò)充訓(xùn)練集時(shí),理論上可以進(jìn)行多次迭代,逐漸擴(kuò)充訓(xùn)練集的樣本容量.在之前的實(shí)驗(yàn)里,我們?cè)O(shè)置的迭代次數(shù)為兩次,即對(duì)分類器進(jìn)行再訓(xùn)練的優(yōu)化策略.再訓(xùn)練的結(jié)果已經(jīng)表明,我們的方法是有效的.為了進(jìn)一步驗(yàn)證我們的方法在數(shù)據(jù)集樣本量繼續(xù)擴(kuò)充的條件下仍舊是有效的,我們將迭代次數(shù)增加,圖4顯示了隨著迭代次數(shù)增加,我們的方法在每個(gè)數(shù)據(jù)集上的表現(xiàn).

        在上面的實(shí)驗(yàn)中,為了保證客觀性,我們將實(shí)驗(yàn)重復(fù)了 100次,然后取平均值.在每一次的實(shí)驗(yàn)中,我們提前將數(shù)據(jù)集按照3:2:1的比例分別分成訓(xùn)練集、測(cè)試集和驗(yàn)證集.其中,驗(yàn)證集是用來擴(kuò)充訓(xùn)練集樣本容量的數(shù)據(jù)集合.然后,我們利用半監(jiān)督方法逐步地對(duì)訓(xùn)練數(shù)據(jù)集擴(kuò)充了5次,每一次擴(kuò)充后都在測(cè)試集上進(jìn)行測(cè)試,并給出上圖所示的測(cè)試結(jié)果.值得注意的是,為了克服隨機(jī)賦權(quán)的影響,5次迭代中,分類器的隨機(jī)參數(shù)都是相同的值,實(shí)驗(yàn)結(jié)果就只會(huì)受到數(shù)據(jù)集樣本容量變化的影響.從圖4可以看出,在利用本文的半監(jiān)督方法的前提下,隨著數(shù)據(jù)集樣本容量的增加,分類器的性能也在逐步提升,這一現(xiàn)象在 21個(gè)數(shù)據(jù)集上都有體現(xiàn).通過這組實(shí)驗(yàn),驗(yàn)證了我們提出來的方法的有效性,即在人工標(biāo)記的數(shù)據(jù)不充足的條件下,可以利用有效的半監(jiān)督機(jī)制[33,34]來逐步擴(kuò)充訓(xùn)練樣本集,最終可以達(dá)到提升分類性能的目的.

        Fig.4 Results of five tests on 21 datasets圖4 21個(gè)數(shù)據(jù)集5次測(cè)試的結(jié)果

        本節(jié)實(shí)驗(yàn)里,網(wǎng)絡(luò)結(jié)構(gòu)參數(shù)、代價(jià)矩陣的設(shè)置以及其他參數(shù)的具體情況,都詳細(xì)地列在了本文的附錄里.

        4 總 結(jié)

        本文主要解決軟件測(cè)試Bug報(bào)告中的樣例分類問題.在實(shí)際工作中,我們發(fā)現(xiàn)Bug報(bào)告數(shù)據(jù)集普遍存在著3個(gè)問題:第1個(gè)是樣本類別不平衡問題,第2個(gè)是數(shù)據(jù)集里被標(biāo)注的樣本個(gè)數(shù)不充足的問題,第3個(gè)是數(shù)據(jù)集的樣本總?cè)萘坎怀渥愕膯栴}.這3個(gè)問題都會(huì)對(duì)分類工作產(chǎn)生不良的影響.為了解決這3個(gè)問題,我們提出了3種方法:第1種是基于代價(jià)敏感的ELM模型來增加少數(shù)類樣例被錯(cuò)誤分類的代價(jià),從而解決類別不平衡問題帶來的影響;第2種是基于模糊度的半監(jiān)督方法來自動(dòng)標(biāo)注沒有標(biāo)簽的數(shù)據(jù),從而擴(kuò)充有標(biāo)簽的數(shù)據(jù)集;第3種是基于RBM和模糊度的樣本遷移方法來擴(kuò)增原有數(shù)據(jù)集的方法.本文通過幾個(gè)實(shí)驗(yàn)驗(yàn)證了我們提出的方法是有效的、可行的.最后,可以注意到,本文提出來的方法具有很好的擴(kuò)展性,可以與不同的模型[35-38]相結(jié)合.本文未來的研究工作將與集成學(xué)習(xí)[39,40]的方法相結(jié)合,以進(jìn)一步提升目前的方法在 Bug報(bào)告分類問題上的效果,同時(shí)將結(jié)合后的方法應(yīng)用于更多的相關(guān)領(lǐng)域[41-43].

        附錄

        證明:用softmax的輸出來表示后驗(yàn)概率的合理性.

        定義x(1),…,x(m)為m個(gè)輸入向量,且x(i)∈?1×ncc,ncc為輸入向量的維度,x(i)j是向量x(i)第j維屬性值,i=1,2,…,m,j=1,2,…,ncc.對(duì)ELM的輸出層來講,其輸入向量x(i)是隱層的輸出向量,因此在ELM中,ncc為隱層節(jié)點(diǎn)數(shù).為了簡(jiǎn)化表達(dá),下文出現(xiàn)的x表示x(i),?i=1,2,…,m,y(1),…,y(m)為輸入向量對(duì)應(yīng)的真實(shí)類別標(biāo)簽,其中,y(i)∈{1,2,…,ns},i=1,2,…,m.ns為類別個(gè)數(shù),在ELM中,ns表示輸出節(jié)點(diǎn)數(shù).

        定義一個(gè)概率函數(shù)π():?1×ncc→[0,1]ns,該函數(shù)將輸入向量x映射為一個(gè)ns維向量,其中,第u維π(x)u代表輸入向量屬于第u類的概率大小.基于以上定義,下面證明π()具有softmax函數(shù)形式.

        根據(jù)π()的定義,可知π()應(yīng)滿足以下性質(zhì):

        根據(jù)信息論,π()的熵可以定義為

        根據(jù)信息論最大熵原理,即通常選取熵值最大的概率分布作為隨機(jī)變量的分布,所以在公式(A.2)~公式(A.4)的約束下,最大化公式(A.5),該過程是一個(gè)求條件極值的問題,通常使用拉格朗日乘數(shù)法求解該問題.這里,拉格朗日方程可以寫成:

        其中,βj,v與λi為拉格朗日乘數(shù),且βj,v為矩陣β∈?ncc×ns中的元素.注意到條件(A.2)為不等式,所以無法被包含進(jìn)方程(A.6),但是可以在方程(A.6)的解中,選擇滿足條件(A.2)的值為最終解.在求解過程中,L對(duì)π(x(i))v求偏導(dǎo),且極值在偏導(dǎo)數(shù)等于0處取得,即

        其中,βv∈?ncc×1為β中第v列列向量.對(duì)公式(A.7)等價(jià)變形有:

        根據(jù)公式(A.3),有:

        公式(A.11)右側(cè)分式上下同乘e,有:

        公式(A.12)可以簡(jiǎn)化成:

        在 ELM 中,βv可被看作是連接隱層與輸出層第v個(gè)節(jié)點(diǎn)的權(quán)重向量,β是輸出層權(quán)重,則x(i)βv是網(wǎng)絡(luò)輸出yiv;同理,x(i)βu=yiu.綜上,證明滿足概率性質(zhì)的概率函數(shù)π()具有softmax的函數(shù)形式,從而證明用softmax函數(shù)作用在ELM的輸出層輸出后驗(yàn)概率的合理性. □

        實(shí)驗(yàn)1的參數(shù)設(shè)置.

        數(shù)據(jù)集 代價(jià)矩陣 隱層節(jié)點(diǎn)數(shù)Eclipse_CDT_cdt-core [0,5;2,0] 500 Eclipse_JDT_Core [0,3;1,0] 1 000 Eclipse_JDT_Debug [0,3,1,0] 500 Eclipse_PDE_UI [0,3;1,0] 500 Eclipse_Platform_Debug [0,5;2,0] 200 Eclipse_Platform_SWT [0,5;2,0] 1 500 Eclipse_Platform_UI [0,3;1,0] 2 000 GNOME_ekiga_general [0,5,2,0] 500 GNOME_Evolution_Calendar [0,5;2,0] 1 000 GNOME_Evolution_Contacts [0,5;2,0] 1 000 GNOME_Evolution_Mailer [0,2;1,0] 3 000 GNOME_Evolution_Shell [0,3;1,0] 500 GNOME_gnome-panel_Panel [0,5;2,0] 500 GNOME_gnome-terminal_general [0,5;2,0] 1 500 Moizlla_Core_Printing [0,5;1,0] 500 Moizlla_Core_XPCOM [0,5;2,0] 500 Moizlla_Core_XPConnect [0,2;1,0] 100 Moizlla_Core_XUL [0,5;2,0] 1 000 Moizlla_Thunderbird_General [0,5;2,0] 1 000 Mozilla_Core_Layout [0,5;2,0] 1 500 Mozilla_Core_Security_UI [0,5;2,0] 400

        實(shí)驗(yàn)2的參數(shù)設(shè)置.

        數(shù)據(jù)集 代價(jià)矩陣 隱層節(jié)點(diǎn)數(shù) k值Eclipse_CDT_cdt-core [0,5;2,0] 200 50 Eclipse_JDT_Core [0,6;1,0] 200 50 Eclipse_JDT_Debug [0,3;1,0] 200 10 Eclipse_PDE_UI [0,3;1,0] 100 10 Eclipse_Platform_Debug [0,5;2,0] 200 10 Eclipse_Platform_SWT [0,3;2,0] 1 000 50 Eclipse_Platform_UI [0,5;2,0] 500 5 GNOME_ekiga_general [0,5;2,0] 500 50 GNOME_Evolution_Calendar [0,3;1,0] 1 000 50 GNOME_Evolution_Contacts [0,3;1,0] 500 20 GNOME_Evolution_Mailer [0,5;2,0] 2 500 200 GNOME_Evolution_Shell [0,3;1,0] 200 50 GNOME_gnome-panel_Panel [0,3;1,0] 500 50 GNOME_gnome-terminal_general [0,3;1,0] 500 50 Moizlla_Core_Printing [0,3;1,0] 500 50 Moizlla_Core_XPCOM [0,3;1,0] 200 10 Moizlla_Core_XPConnect [0,2;1,0] 100 5 Moizlla_Core_XUL [0,5;2,0] 200 50 Moizlla_Thunderbird_General [0,5;2,0] 500 50 Mozilla_Core_Layout [0,5;2,0] 1 500 50 Mozilla_Core_Security_UI [0,5;2,0] 200 50

        實(shí)驗(yàn)3的參數(shù)設(shè)置.

        數(shù)據(jù)集 被遷移數(shù)據(jù)集 代價(jià)矩陣 隱層節(jié)點(diǎn)數(shù) k值Eclipse_CDT_cdt-core Eclipse_JDT_Core [0,5;2,0] 20 10 Eclipse_JDT_Core Eclipse_JDT_Debug [0,5;2,0] 20 10 Eclipse_JDT_Debug Eclipse_Platform_Debug [0,5;2,0] 200 10 Eclipse_PDE_UI Eclipse_Platform_Debug [0,5;2,0] 50 10 Eclipse_Platform_Debug Eclipse_Platform_SWT [0,5;2,0] 200 10 Eclipse_Platform_SWT Eclipse_CDT_cdt-core [0,5;2,0] 100 10 Eclipse_Platform_UI Eclipse_PDE_UI [0,5;2,0] 20 10 GNOME_ekiga_general GNOME_Evolution_Calendar [0,5;2,0] 100 50 GNOME_Evolution_Calendar GNOME_Evolution_Shell [0,5;2,0] 200 20 GNOME_Evolution_Contacts GNOME_Evolution_Shell [0,5;2,0] 200 10 GNOME_Evolution_Mailer GNOME_gnome-terminal_general [0,3;1,0] 20 10 GNOME_Evolution_Shell Moizlla_Core_Printing [0,5;2,0] 200 10 GNOME_gnome-panel_Panel GNOME_ekiga_general [0,3;1,0] 50 10 GNOME_gnome-terminal_general GNOME_gnome-panel_Panel [0,5;2,0] 100 50 Moizlla_Core_Printing Moizlla_Core_XPCOM [0,5;2,0] 20 10 Moizlla_Core_XPCOM Moizlla_Core_Printing [0,5;2,0] 20 10 Moizlla_Core_XPConnect Moizlla_Core_XUL [0,5;2,0] 20 10 Moizlla_Core_XUL Moizlla_Core_XPConnect [0,5;2,0] 20 10 Moizlla_Thunderbird_General Moizlla_Core_XUL [0,5;2,0] 30 10 Mozilla_Core_Layout Moizlla_Core_XPCOM [0,5;2,0] 20 10 Mozilla_Core_Security_UI Moizlla_Core_XPCOM [0,5;2,0] 20 10

        序號(hào) RBM節(jié)點(diǎn)數(shù)(原數(shù)據(jù)集)RBM節(jié)點(diǎn)數(shù)(被遷移數(shù)據(jù)集)1 100-500-100 100-200-100 2 100-200-100 100-200-100 3 100-500-100 100-500-100 4 100-500-200 100-1000-200 5 100-500-100 100-500-100 6 500-500-500 500-500-500 7 100-500-200 100-200-200 8 100-500-200 100-200-200 9 500-500-100 500-500-100 10 500-500-100 500-500-100 11 300-300-200 300-300-200 12 100-200-100 100-200-100 13 100-200-100 500-500-100 14 100-200-100 100-200-100 15 100-500-200 100-200-200 16 100-500-200 100-200-200 17 100-500-200 100-200-200 18 100-500-200 100-200-200 19 100-500-200 100-200-200 20 100-500-200 100-200-200 21 100-500-200 100-200-200

        實(shí)驗(yàn)4的參數(shù)設(shè)置.

        數(shù)據(jù)集 代價(jià)矩陣 隱層節(jié)點(diǎn)數(shù) k值Eclipse_CDT_cdt-core [0,5;2,0] 200 10 Eclipse_JDT_Core [0,6;1,0] 200 10 Eclipse_JDT_Debug [0,3;1,0] 200 20 Eclipse_PDE_UI [0,3;1,0] 100 10 Eclipse_Platform_Debug [0,5;2,0] 200 10 Eclipse_Platform_SWT [0,3;2,0] 1 000 50 Eclipse_Platform_UI [0,5;2,0] 300 20 GNOME_ekiga_general [0,5;2,0] 500 20 GNOME_Evolution_Calendar [0,3;1,0] 1 000 20 GNOME_Evolution_Contacts [0,3;1,0] 500 20 GNOME_Evolution_Mailer [0,5;2,0] 2 500 100 GNOME_Evolution_Shell [0,5;2,0] 200 10 GNOME_gnome-panel_Panel [0,3;1,0] 500 50 GNOME_gnome-terminal_general [0,5;2,0] 500 10 Moizlla_Core_Printing [0,3;1,0] 500 10 Moizlla_Core_XPCOM [0,2;1,0] 200 5 Moizlla_Core_XPConnect [0,2;1,0] 200 5 Moizlla_Core_XUL [0,5;2,0] 200 20 Moizlla_Thunderbird_General [0,5;2,0] 500 20 Mozilla_Core_Layout [0,5;2,0] 1 500 50 Mozilla_Core_Security_UI [0,5;2,0] 200 20

        猜你喜歡
        樣例集上代價(jià)
        樣例復(fù)雜度與學(xué)習(xí)形式對(duì)不同數(shù)量樣例學(xué)習(xí)的影響
        樣例呈現(xiàn)方式對(duì)概念訓(xùn)練類別表征的影響
        Cookie-Cutter集上的Gibbs測(cè)度
        “樣例教學(xué)”在小學(xué)高年級(jí)數(shù)學(xué)中的應(yīng)用
        鏈完備偏序集上廣義向量均衡問題解映射的保序性
        愛的代價(jià)
        海峽姐妹(2017年12期)2018-01-31 02:12:22
        復(fù)扇形指標(biāo)集上的分布混沌
        代價(jià)
        成熟的代價(jià)
        樣例教學(xué)法回歸課堂教學(xué)之新認(rèn)識(shí)
        亚洲一区二区三区乱码在线| 国产在线视频一区二区三区| 国产成人综合一区二区三区| 亚洲啪啪AⅤ一区二区三区| 免费人成网站在线视频| 国产a√无码专区亚洲av| 国产精品麻豆欧美日韩ww| 91精品啪在线看国产网站| 开心五月激情五月天天五月五月天| 亚洲国产精品综合久久网络| 性高朝久久久久久久| 久久露脸国产精品WWW| 人妻人妇av一区二区三区四区| 国产精品 无码专区| 无码精品a∨在线观看十八禁| 国产亚洲精品hd网站| 今井夏帆在线中文字幕| 2019最新中文字幕在线观看| 欧美大香线蕉线伊人久久| 中文字幕第一页在线无码一区二区| 亚洲精品岛国av一区二区| 香港三级日本三级a视频| 国产最新地址| 成人av在线免费播放| 无码av天天av天天爽| 亚洲成色www久久网站夜月| 无码区a∨视频体验区30秒| 亚洲国产日韩一区二区三区四区| 日韩av激情在线观看| 久久免费网国产AⅤ| 日韩一区二区,亚洲一区二区视频| 天堂视频在线观看一二区| 开心五月激情综合婷婷| 久久国产精品免费一区二区| 毛片在线视频成人亚洲| 亚洲性无码一区二区三区| 五月天丁香久久| 国产精品久久熟女吞精| 天天躁日日躁狠狠躁av麻豆| 国产露脸精品产三级国产av| 一本色道久久综合亚洲精品蜜臀|