宮麗娜
(棗莊學(xué)院信息科學(xué)與工程學(xué)院,山東棗莊 277160)
粗糙集模糊神經(jīng)網(wǎng)絡(luò)軟件質(zhì)量預(yù)測
宮麗娜
(棗莊學(xué)院信息科學(xué)與工程學(xué)院,山東棗莊 277160)
以面向?qū)ο蟮能浖攘繛檠芯繉ο?,首先采用SOM神經(jīng)網(wǎng)絡(luò)離散化度量元因子矩陣數(shù)據(jù),接著對于得到的離散化的矩陣數(shù)據(jù)采用粗糙集理論的屬性約簡算法進(jìn)行屬性約簡,然后根據(jù)約簡得到規(guī)則構(gòu)造模糊神經(jīng)網(wǎng)絡(luò)的網(wǎng)絡(luò)結(jié)構(gòu),并采用BP算法對網(wǎng)絡(luò)進(jìn)行訓(xùn)練,最后通過仿真實驗驗證了該算法。
軟件質(zhì)量;粗糙集;規(guī)則提??;模糊神經(jīng)網(wǎng)絡(luò);BP算法
軟件的使用和維護(hù)受限于軟件的質(zhì)量,所以對軟件質(zhì)量進(jìn)行評價至關(guān)重要。但是由于在開發(fā)的過程中有各種不確定的因素,所以一般情況下采用的是模糊評價方法。為了精確、客觀和科學(xué)的評價軟件質(zhì)量,文中將模糊神經(jīng)網(wǎng)絡(luò)的強大學(xué)習(xí)能力和粗糙集的知識表達(dá)能力相結(jié)合,提出了基于粗糙集理論的模糊神經(jīng)網(wǎng)絡(luò)的軟件質(zhì)量預(yù)測模型。
國際標(biāo)準(zhǔn)化組織ISO的質(zhì)量特性國際標(biāo)準(zhǔn)ISO/IEC9126定義軟件質(zhì)量為:能夠反映軟件產(chǎn)品滿足規(guī)定需求和潛在需求能力的特征和特性的總和[1]。軟件質(zhì)量直接影響到軟件的使用以及后期的維護(hù),所以對軟件質(zhì)量進(jìn)行評價特別重要。
利用神經(jīng)網(wǎng)絡(luò)構(gòu)建軟件質(zhì)量預(yù)測模型在國內(nèi)外已經(jīng)有了一定的研究成果,其中給予BP神經(jīng)網(wǎng)絡(luò)的模型較多,而傳統(tǒng)的BP算法存在收斂速度慢和易于陷入局部極小問題。在模糊神經(jīng)網(wǎng)絡(luò)的應(yīng)用中,當(dāng)模糊神經(jīng)網(wǎng)絡(luò)輸入變量多時,網(wǎng)絡(luò)結(jié)構(gòu)就比較復(fù)雜,所花費的時間相對比較長。綜上所述,文中結(jié)合模糊神經(jīng)網(wǎng)絡(luò)和粗糙集,利用粗糙集理論的屬性約簡算法提取規(guī)則,從而構(gòu)建模糊神經(jīng)網(wǎng)絡(luò)。
基于模糊系統(tǒng)和神經(jīng)網(wǎng)絡(luò)的互補性,發(fā)展了模糊神經(jīng)網(wǎng)絡(luò)。但是當(dāng)網(wǎng)絡(luò)輸入層的輸入維數(shù)較高時,模糊規(guī)則會呈幾何級數(shù)增加,這樣就會構(gòu)造龐大的網(wǎng)絡(luò)結(jié)構(gòu),從而需要很長的訓(xùn)練時間。針對這個問題,文中采用粗糙集理論的屬性約簡算法提取模糊規(guī)則,從而能夠簡化網(wǎng)絡(luò)結(jié)構(gòu),加快訓(xùn)練速度。但是,屬性約簡算法只能提取離散化的數(shù)據(jù),所以首先離散化數(shù)據(jù)。
2.1 連續(xù)屬性值的離散化
離散化連續(xù)數(shù)據(jù)常見的方法有:等間隔法、等頻法、模糊方法等[2]。文中利用自組織特征映射網(wǎng)絡(luò)(SOM)離散化連續(xù)的度量元因子數(shù)據(jù),具體過程如下:
1)初始化自組織特征映射網(wǎng)絡(luò)(SOM)的變量值m和d=1;其中m為初始分類值,d為條件屬性初始維數(shù);
2)從小到大(或者從大到?。┡判虻赿維的條件屬性;
3)利用SOM網(wǎng)絡(luò)分類排序后的第d維條件屬性值;
4)第m類的分界值(即屬性量化參數(shù))賦值為相鄰兩類邊界屬性值的均值;
5)通過條件屬性量化參數(shù)、量化該維條件屬性;
6)維數(shù)d=d+1,然后返回2),直到最后一維條件屬性。
2.2 規(guī)則的提取
數(shù)據(jù)離散化后下步就是從該表中提取出規(guī)則。提取分類規(guī)則的基本原理和思想是[3-4]:采用屬性約簡算法去掉不必要的條件屬性,從而得到原信息表的約簡,通過該約簡和決策屬性結(jié)合提取分類規(guī)則。文中采用差別矩陣表示知識的約簡方法。具體算法如下:
1)初始化;red(T)=φ,core(T)=φ,col[j]=0;row[i]=0;
2)計算差別矩陣D(T)中每行非0元素的個數(shù)記入row[i],計算每列非0元素的個數(shù)并記入col[j];
3)找出row[i]=1的行,將該元素加入core(T);
4)刪除D(T)中包含core(T)中元素的所有行,并刪除該core(T)所在的列;
5)通過4)新構(gòu)成的D(T),如果D(T)=(0),則red(T)=core(T),轉(zhuǎn)到9),否則,轉(zhuǎn)到6);
6)求col[j]中的最大值所對應(yīng)的列;其中colmax=max{col[1],col[2],…,col[q]};
7)刪除該列,將該列所有不為0的元素加入red(T),并刪除該元素所在的行;
8)剩余的元素構(gòu)成新的矩陣D(T),轉(zhuǎn)到5);9)輸出core(T),red(T),結(jié)束算法。
2.3 基于約簡規(guī)則集的模糊神經(jīng)網(wǎng)絡(luò)預(yù)測模型2.3.1 構(gòu)建的模糊神經(jīng)網(wǎng)絡(luò)結(jié)構(gòu)
利用上一步得到的決策規(guī)則構(gòu)造模糊神經(jīng)網(wǎng)絡(luò)預(yù)測模型。網(wǎng)絡(luò)結(jié)構(gòu)[5]如圖1所示。
圖1 模糊神經(jīng)網(wǎng)絡(luò)結(jié)構(gòu)圖
圖中:第1層是輸入層,節(jié)點i對應(yīng)于輸入向量x的第i個分量{xi}。
第2層是模糊化層,該層節(jié)點的個數(shù)由離散化過程來決定,其中每個節(jié)點代表一個模糊語言變量值。該層輸出是隸屬度(即輸入屬于該語言變量的程度)。其中隸屬函數(shù)是:式中:cij——第i個輸入語言變量xi對第j個語言變量的隸屬函數(shù)的中心;
σij——第i個輸入語言變量xi對第j個語言變量的隸屬函數(shù)的寬度。
第3層是規(guī)則層,節(jié)點的數(shù)目由決策規(guī)則數(shù)決定,該層的功能是實現(xiàn)粗糙集規(guī)則匹配。其中一個節(jié)點代表一個某條模糊規(guī)則的前件部分。該層與模糊化層的連接權(quán)值為“1”。
第4層是歸一化層,該層的節(jié)點數(shù)為第3層的節(jié)點數(shù),該層的功能是歸一化計算,即:
通過預(yù)測面向?qū)ο筌浖目煽啃再|(zhì)量屬性驗證了算法的可行性。模型的輸入變量是CK度量指標(biāo):CBO,WMC,DIT,RFC,NOC,LCOM,輸出時軟件的可靠性[6-9]構(gòu)成了一個6輸入1輸出的模糊神經(jīng)網(wǎng)絡(luò)結(jié)構(gòu),并用Matlab編程實現(xiàn)。
利用粗糙集對美國宇航局的度量數(shù)據(jù)計劃中的KC1數(shù)據(jù)庫數(shù)據(jù)處理構(gòu)造的模糊神經(jīng)網(wǎng)絡(luò),網(wǎng)絡(luò)結(jié)構(gòu)第1層為6個節(jié)點(6個屬性值輸入);第2層為24個節(jié)點(把每個輸入分別離散化為了4個語言變量);第3層為16個節(jié)點(即得到的16個規(guī)則);第4層為16個節(jié)點;第5層為1個節(jié)點(即可靠性輸出)。
利用BP算法訓(xùn)練了1 000次,得到總體誤差為0.364 2。訓(xùn)練結(jié)果如圖2所示。
圖2 基于粗糙集的模糊神經(jīng)網(wǎng)絡(luò)訓(xùn)練結(jié)果
文中同樣用模糊神經(jīng)網(wǎng)絡(luò)對樣本數(shù)據(jù)進(jìn)行訓(xùn)練了1 000次,訓(xùn)練結(jié)果如圖3所示。
圖3 模糊神經(jīng)網(wǎng)絡(luò)的訓(xùn)練結(jié)果
實驗誤差達(dá)到64.208 3,結(jié)果不理想,而且訓(xùn)練時間很長。
學(xué)習(xí)算法的比較見表1
表1 學(xué)習(xí)算法的比較
由表1可知,基于粗糙集的模糊神經(jīng)網(wǎng)絡(luò)預(yù)測模型得到較好的結(jié)果,并且構(gòu)造的模糊神經(jīng)網(wǎng)絡(luò)的規(guī)則層節(jié)點個數(shù)只有16個,而如果直接用模糊神經(jīng)網(wǎng)絡(luò)規(guī)則層需要46=4 096個節(jié)點,所以優(yōu)化了網(wǎng)絡(luò)的結(jié)構(gòu),縮短了訓(xùn)練時間。
軟件的使用和維護(hù)受限于軟件的質(zhì)量,所以對軟件質(zhì)量進(jìn)行評價至關(guān)重要。但是由于在開發(fā)的過程中有各種不確定的因素,因此,應(yīng)該選擇合適的模型來表示軟件質(zhì)量與軟件的各種不確定性因素之間的關(guān)系。為了對軟件質(zhì)量進(jìn)行精確、客
觀和科學(xué)的評價,文中提出了基于粗糙集理論的模糊神經(jīng)網(wǎng)絡(luò)的軟件質(zhì)量預(yù)測方法。在粗糙集的規(guī)則提取中采用了SOM網(wǎng)絡(luò)方法對連續(xù)屬性進(jìn)行離散化,并通過實驗驗證了該模型。
[1]鄭人杰,殷人昆,陶永雷.實用軟件工程[M].2版.北京:清華大學(xué)出版社,2002.
[2]于錕,劉知貴,黃正良.粗糙集理論應(yīng)用中的離散化方法綜述[J].西南科技大學(xué)學(xué)報,2005,20(4):32-36.
[3]張文修,吳偉志.粗糙集理論與方法[M].北京:科學(xué)出版社,2001.
[4]周慶敏,李永生.基于Rough集理論的知識約簡與規(guī)則挖掘方法[J].南京工業(yè)大學(xué)學(xué)報,2003,25(4):33-36.
[5]李國勇.智能控制及其MATLAB實現(xiàn)[M].北京:電子工業(yè)出版社,2005.
[6]郭海湘,諸克軍,黎金玲.基于模糊神經(jīng)網(wǎng)絡(luò)提取我國經(jīng)濟增長的模糊規(guī)則[J].長春工業(yè)大學(xué)學(xué)報:自然科學(xué)版,2004,25(3):34-38.
[7]Mie Mie Thet Thwin,Tong Seng Quah.Application of neural network for predicting software development faults using objectoriented design metrics[C]//Preceeding of 9th Internatinal Conference on Neura1Information Processing(ICONIP'OZ),2002,5:2312-2316.
[8]Quah Jon T S,Mie Mie Thet Thwin.Prediction of software readiness using neural network[C]//Proceedings of 1st International Conference on Information Technology &Applications(ICITA 2002).Australia,2002:25-28.
[9]Mie Mie Thet Thwin,Tong Seng Quah.Application of neural networks for software quality prediction using object oriented mettics[J].Journal of Systems and Software,2005,76(2):147-156.
Rough set based fuzzy neural network algorithm for software quality prediction
GONG Li-na
(College of Information Science and Engineering,University of Zaozhuang,Zaozhuang 277160,China)
Taking the object oriented software as example,we apply the SOM neural network to discretize data matrix and then minimize the data with rough set reduction algorithm.Based on the simplifying rules,We build the fuzzy neural network structure trained by BP algorithm.The experiments show that the algorithm is feasible.
software quality;rough set;rule extraction;fuzzy neural network;BP algorithm.
TP 311
A
1674-1374(2014)01-0082-04
2013-11-25
宮麗娜(1985-),女,漢族,山東東平人,棗莊學(xué)院助教,碩士,主要從事軟件工程方向研究,E-mail:gln88888@163.com.