欧美在线观看视频网站,亚洲熟妇色自偷自拍另类,啪啪伊人网,中文字幕第13亚洲另类,中文成人久久久久影院免费观看 ,精品人妻人人做人人爽,亚洲a视频

一種基于cs-ann的軟件缺陷預(yù)測方法

文檔序號:9844025閱讀:1242來源:國知局
一種基于cs-ann的軟件缺陷預(yù)測方法
【技術(shù)領(lǐng)域】
[0001] 本發(fā)明屬于計算機(jī)應(yīng)用技術(shù)領(lǐng)域,尤其涉及一種基于CS-ANN的軟件缺陷預(yù)測方 法。
【背景技術(shù)】
[0002] 隨著計算機(jī)軟件需求的不斷增多,軟件的復(fù)雜度越來越大。開發(fā)起來也隨著變的 越來越困難。如今各行各業(yè)都對軟件有一定的依賴,軟件在運(yùn)行過程中一旦出錯,就可能造 成非常嚴(yán)重的后果,造成這一后果的根本原因就是軟件中存在缺陷。軟件工程理論指出,測 試能證明軟件中存在缺陷,不能證明軟件中沒有缺陷??梢娫趯嶋H開發(fā)過程中,找出軟件的 缺陷是非常困難的。并且還受到開發(fā)資源和時間等因素的限制,能夠在有限的資源下盡可 能多的找出軟件中存在的缺陷是現(xiàn)在所面臨的問題。在軟件缺陷預(yù)測中,將描述是否存在 缺陷的最小軟件單元稱為軟件模塊。在對軟件模塊屬性進(jìn)行度量時,使用最廣泛的是代碼 度量屬性McCabe和Halstead jcCabe基于對程序拓?fù)浣Y(jié)構(gòu)的復(fù)雜度分析,度量軟件模塊的 內(nèi)部結(jié)構(gòu)屬性;Halstead以程序中出現(xiàn)的操作符和操作數(shù)為計數(shù)對象,用于測量軟件模塊 的規(guī)模。這兩種度量屬性對于構(gòu)建軟件缺陷預(yù)測模型都是有效的,模型的性能取決于構(gòu)建 算法的選擇。運(yùn)用軟件度量預(yù)測軟件錯誤最早是由Porter和Selby在1990年開始的。從那時 起有大量的基于度量標(biāo)準(zhǔn)的錯誤預(yù)測。至今,已經(jīng)有很對研究者開發(fā)和驗證了一些錯誤預(yù) 測模型,這些模型都是用機(jī)器學(xué)習(xí)和統(tǒng)計學(xué)技術(shù)建立的。為了提高模型的性能,他們使用了 不同類型的軟件度量和多種多樣的特征選擇技術(shù)。機(jī)器學(xué)習(xí)算法如神經(jīng)網(wǎng)絡(luò)、支持向量機(jī) 和集成算法等都被用來構(gòu)建軟件缺陷預(yù)測模型。但是由于軟件項目類型、算法參數(shù)設(shè)置和 預(yù)測模型評價指標(biāo)的不同,不存在性能最好的模型構(gòu)建通用算法。現(xiàn)有的機(jī)器學(xué)習(xí)方法,如 決策樹、樸素貝葉斯和邏輯回歸等算法,都可以用來構(gòu)造軟件缺陷預(yù)測模型。但是預(yù)測精確 率較低,且對于不平衡數(shù)據(jù),性能影響較大,這些模型的實用性不強(qiáng)。其他學(xué)者也提出了基 于機(jī)器學(xué)習(xí)算法的改進(jìn)算法,在某些特定的領(lǐng)域也取得了不錯的效果,如集成學(xué)習(xí),神經(jīng)網(wǎng) 絡(luò)等,以及結(jié)合一些啟發(fā)式算法,如人工蜂群和遺傳算法,提出的模型。但是這些算法設(shè)置 參數(shù)相對繁瑣,且設(shè)置不同的參數(shù),對模型的性能影響較大。軟件測試花費的工作量經(jīng)常比 其他任何軟件工程活動都多。若測試是無計劃地進(jìn)行,既浪費時間,又會做很多不必要的勞 動。缺陷預(yù)測模型旨在識別有缺陷傾向的軟件組件,從而權(quán)衡質(zhì)量保證(QA)活動。有了軟件 缺陷預(yù)測模型,QA測試小組就可以集中關(guān)注軟件模塊的部分子集,從而能在有限的時間和 資源下,盡可能多的找出軟件中存在的缺陷。
[0003] 現(xiàn)有的模型都是基于機(jī)器學(xué)習(xí)算法構(gòu)建的,但是傳統(tǒng)的模型精確率低,且遇到不 平衡數(shù)據(jù),預(yù)測性能會受很大的影響。

【發(fā)明內(nèi)容】

[0004] 本發(fā)明的目的在于提供一種基于CS-ANN的軟件缺陷預(yù)測方法,旨在解決現(xiàn)有的軟 件缺陷預(yù)測模型精確率低,且遇到不平衡數(shù)據(jù),預(yù)測性能會受很大的響的問題。
[0005] 本發(fā)明是這樣實現(xiàn)的,一種基于CS-ANN的軟件缺陷預(yù)測方法,所述基于CS-ANN的 軟件缺陷預(yù)測方法包括:
[0006] 所述基于CS-ANN的軟件缺陷預(yù)測方法分為訓(xùn)練和預(yù)測兩個過程,訓(xùn)練過程是使用 歷史數(shù)據(jù)對模型進(jìn)行訓(xùn)練,得到此數(shù)據(jù)集的最佳權(quán)值和閾值;預(yù)測過程是使用訓(xùn)練過程得 到的權(quán)值和閾值對新的數(shù)據(jù)進(jìn)行預(yù)測,輸出新的數(shù)據(jù)集中的模塊有無缺陷,預(yù)測時輸入的 新數(shù)據(jù)的屬性應(yīng)和經(jīng)過特征選擇之后的數(shù)據(jù)有相同的屬性。
[0007] 進(jìn)一步,所述基于CS-ANN的軟件缺陷預(yù)測方法具體包括:
[0008]輸入原始數(shù)據(jù)集Db,使用WEKA工具里的CFS算法進(jìn)行特征選擇,得到訓(xùn)練數(shù)據(jù)集 Da;
[0009]對原始數(shù)據(jù)進(jìn)行處理之后,輸入模型對模型進(jìn)行訓(xùn)練,給出執(zhí)行過程的偽碼:
[0010]輸入:數(shù)據(jù)集Da;
[0011 ] 輸出:最佳權(quán)值Wbest和閾值Tbest;
[0012] 初始化神經(jīng)網(wǎng)絡(luò)參數(shù),隱藏層大小hidden_layer_size;
[0013] 初始化布谷鳥搜索參數(shù)//鳥窩W即是所以搜索的神經(jīng)網(wǎng)絡(luò)的權(quán)值,鳥窩大小η,初 始化鳥窩W,發(fā)現(xiàn)概率ρ,搜索域Lb/Ub,迭代次數(shù)i ter;
[0014] 把Da分為Dtrain和Dtest,十折交叉驗證;
[0015] While(迭代次數(shù)小于iter) {
[0016]通過L6vy飛行方式在[Lb,Ub]內(nèi)搜索鳥窩W
[0017] 將W和Dtrain輸入神經(jīng)網(wǎng)絡(luò)算法,計算代價,保留當(dāng)前最優(yōu)鳥窩Wbest
[0018]通過局部搜索過程,利用概率ρ淘汰部分不好的鳥窩,同時搜索新的鳥窩;
[0019] 將W和Dtrain輸入神經(jīng)網(wǎng)絡(luò)算法,計算代價,保留當(dāng)前最優(yōu)鳥窩Wbest
[0020] }//endwhile ;
[0021 ] 將Wbest和Dtest輸入神經(jīng)網(wǎng)絡(luò)進(jìn)行測試,得出預(yù)測值;
[0022]使用測試得到的預(yù)測值,設(shè)置不同的閾值計算F1值,保留使得F1值最大的閾值 Tbest;
[0023] returnffbest,Tbest ;
[0024] 預(yù)測過程是把訓(xùn)練得到的Wbest和Tbest以及新數(shù)據(jù)輸入神經(jīng)網(wǎng)絡(luò)算法計算預(yù)測 值,根據(jù)閾值Tbest標(biāo)記模塊是否有缺陷,若預(yù)測值大于Tbest則標(biāo)記此模塊有缺陷傾向,若 小于測閾值,則標(biāo)記為無缺陷傾向。
[0025]進(jìn)一步,所述ANN第i層的輸出值使用式(1)得到:
[0026]
[0027]
[0028] 其中,71是一個節(jié)點的輸出值,η是這個節(jié)點的總輸入量,叫是這個節(jié)點與第j個輸 入直接的權(quán)值,&是第j個輸入,bi是偏移量。h是第i層的激勵函數(shù),此次提出的模型使用的 激勵函數(shù)如式(2)所示。
[0029] 進(jìn)一步,所述ANN的損失函數(shù)如式(3)所示:
[0030]
[0031] 其中,m是訓(xùn)練數(shù)據(jù)集的總數(shù);ydPyi分別表示負(fù)類和正類的值,分別取0和l;f(x) 是式(2)所示的激勵函數(shù);方程式的最后一項是正則化項,λ^Ο是系數(shù),用于權(quán)衡經(jīng)驗風(fēng)險 和模型復(fù)雜度,η是神經(jīng)網(wǎng)絡(luò)的總層數(shù),即 1是第1層的第i個節(jié)點和第1 + 1層的第j個結(jié)點之 間的權(quán)重。
[0032] 進(jìn)一步,所述CS算法局部隨機(jī)過程通過式(4)來描述:
[0033]
[0034]式中表示第i個布谷鳥的第t個解決方案,和ssf是隨機(jī)打亂生成的兩 個序列;α>〇是全局步長;s是隨機(jī)生成的局部游走步長;H(x)是Heaviside函數(shù)表示矩陣 對應(yīng)元素相乘;pa是在算法中設(shè)置的鳥窩主人發(fā)現(xiàn)外來鳥蛋的概率,設(shè)置pa = 〇. 25,設(shè)置p為 〇. 25; ε是隨機(jī)數(shù);#表示矩陣相乘。
[0035] 進(jìn)一步,所述CS算法中L6vy飛行使用式(5)執(zhí)行:
[0036]
[0037]
[0038] 式(5)中的1^、α以及?與式(4)中的具有相同的含義。L6vy飛行的隨機(jī)步長是從L 0vy分布獲取的,L6vy分布如式(6),具有無限的方差和均值。
[0039]本發(fā)明的另一目的在于提供一種應(yīng)用所述基于CS-ΑΝΝ的軟件缺陷預(yù)測方法的天 氣預(yù)測系統(tǒng)。
[0040] 本發(fā)明的另一目的在于提供一種應(yīng)用所述基于CS-ΑΝΝ的軟件缺陷預(yù)測方法的股 票預(yù)測系統(tǒng)。
[0041] 本發(fā)明的另一目的在于提供一種應(yīng)用所述基于CS-ΑΝΝ的軟件缺陷預(yù)測方法的電 影票房預(yù)測系統(tǒng)。
[0042] 本發(fā)明的另一目的在于提供一種應(yīng)用所述基于CS-ΑΝΝ的軟件缺陷預(yù)測方法的銷 售額預(yù)測系統(tǒng)。
[0043] 本發(fā)明提供的基于CS-ΑΝΝ的軟件缺陷預(yù)測方法,首次將布谷鳥搜索算法和神經(jīng)網(wǎng) 絡(luò)算法運(yùn)用到軟件缺陷預(yù)測模型中,結(jié)合了布谷鳥搜索算法的能夠找到全局最優(yōu)值、收斂 速度快和參數(shù)設(shè)置簡單等優(yōu)點,提高了模型的缺陷預(yù)測的能力和性能。本發(fā)明使用了CFS特 征選擇算法進(jìn)行數(shù)據(jù)的預(yù)處理,CFS算法在性能上優(yōu)于特征加權(quán)算法(ReliefF)和主成分分 析(PCA)等特征選擇算法,提高了軟件缺陷預(yù)測模型的預(yù)測能力;人工神經(jīng)網(wǎng)絡(luò)算法是非線 性的處理系統(tǒng),而軟件缺陷的分類需要非線性的預(yù)測函數(shù),人工神經(jīng)網(wǎng)絡(luò)是構(gòu)建預(yù)測模型 的最佳選擇。人工神經(jīng)網(wǎng)絡(luò)算法在模式識別、智能機(jī)器人、自動控制、預(yù)測估計、生物、醫(yī)學(xué)、 經(jīng)濟(jì)等領(lǐng)域已成功地解決了許多現(xiàn)代計算機(jī)難以解決的實際問題,表現(xiàn)出了良好的智能特 性;布谷鳥搜索算法簡單易行,參數(shù)少,實驗表明布谷鳥搜索算法獲得的最優(yōu)解遠(yuǎn)遠(yuǎn)優(yōu)于粒 子群算法和遺傳算法;人工神經(jīng)網(wǎng)絡(luò)需要不停的迭代來尋找最優(yōu)權(quán)值,通過布谷鳥搜索算 法能夠快速的找到全局的最優(yōu)值。
[0044] 本發(fā)明不僅僅只能進(jìn)
當(dāng)前第1頁1 2 3 
網(wǎng)友詢問留言 已有0條留言
  • 還沒有人留言評論。精彩留言會獲得點贊!
1
许昌县| 寻甸| 古丈县| 威海市| 科技| 滦平县| 江都市| 子长县| 淮南市| 仁寿县| 常州市| 西吉县| 胶南市| 渭源县| 平果县| 乐都县| 馆陶县| 定南县| 太和县| 龙门县| 平果县| 淄博市| 彭泽县| 商丘市| 博兴县| 公主岭市| 平潭县| 左权县| 海晏县| 丰城市| 广南县| 北宁市| 忻城县| 会昌县| 寿光市| 兴化市| 禄丰县| 马山县| 岢岚县| 兴宁市| 天峻县|