999精品在线视频,手机成人午夜在线视频,久久不卡国产精品无码,中日无码在线观看,成人av手机在线观看,日韩精品亚洲一区中文字幕,亚洲av无码人妻,四虎国产在线观看 ?

開源社區級聯崩塌效應分析及基于SVM的項目失敗預測

2021-05-10 07:14:54翔,周
小型微型計算機系統 2021年5期
關鍵詞:關聯

張 翔,周 健

(安徽大學 計算機科學與技術,合肥 230000)

1 引 言

近年來,隨著網絡科技持續不斷的迅猛發展和計算機技術的廣泛普及,獨立開源軟件開發者們日常用以合作開發,信息共享的虛擬社區也在蓬勃壯大,這種快速發展的線上合作生產模式引發了研究人員的熱切關注.伴隨著海量開源軟件的發布和風靡,愈來愈多的相關人員希望能夠了解開源軟件的成功因素是由哪些要素構成[1,2],是否能從數據化的角度考量一款開源軟件的魯棒性和成功的可能性,從而為商業上的技術可行性,軟件安全性及項目開發人的專業性考量等提供準確的決策標準.

開源社區由于其門檻較低,代碼開源,支持開發者自由的參與等特性,引來了數以千萬計的軟件開發者,然而正因為這些易于上手的特性,使得很多開源軟件的開發效率低下,極易發生項目提前終止,或者完成的軟件質量根本無法達到預期等.在當今開源社區中,Github集成了版本控制,代碼托管,團隊協作以及社區問答,是當之無愧的領袖級社區,其社區包含了項目開發者信息,代碼庫信息,提交信息,合并信息以及bug信息等等.為了方便人們更深入的研究,Github開放了名為REST API[3]的接口,使得開發人員可以直接調用接口來獲取相應的信息,其原理是通過GET等http請求向接口發出請求命令,而后服務器返回結果.然而沒過多久研究人員們就發現該API的局限性,對于單個賬號,每小時只能調用5000次.而Github社區平局每小時的事件(event)處理次數高達8000余次,這就意味著單個賬號無法獲取完成的數據集鏡像,基于此種情況,2013年,荷蘭的Delft 科技大學軟件工程組的Gousios在MSR發表論文[4],開發出 GHTorrent 工具,該工具通過緩存和并行處理成功地將調用次數超越了每小時5000次的瓶頸.GHTorrent項目旨在通過Github REST API提供的數據創建一個可擴展,可查詢且可脫機的數據鏡像.GHTorrent會監察記錄Github中公共事件的時間表.針對所有事件,均會精確地檢索其內容及事件之間的依賴性,并以JSON格式存儲到MongoDB數據庫,并同步提取其結構到MySQL數據庫中.

通過對復雜網絡的深層分析和挖掘,研究人員就不同網絡之間的相互依賴性是如何影響負載從而導致級聯故障的發生,得出了新的結論[5],基于Agent模型建立了“故障-擴散-恢復-免疫”的級聯故障模型[6],結合加權無標度網絡模型[7],以此提高相應網絡的魯棒性[8],以及級聯故障下的耦合網絡的魯棒性[9],并且在此基礎上測量網絡的可靠性和可修復性[10].

2 相關研究

目前,國內外的研究人員已經做出許多相關的工作,例如開源社區中開發者與源代碼的協調性,開源社區開發者的提交行為挖掘以及不同開發者之間的集體合作關系等.Chen等人[11]基于Github社區的commit提交行為作為導向,提出開發者的提交行為受成員的組織來源和規模大小影響,大多commit行為主要源于少數核心人員的貢獻.He等人[12]以SourceForge社區的數據研究,構建了管理者-項目的二分網絡模型,并在此基礎上提出了核心-邊緣網絡結構的管理者合作網絡模型.Choi等人[13]以網絡調研的方式發現了開發者參與社區軟件開發的動機與參與人員的需求導向,工作經歷,個人興趣等皆有不同程度的關系,表明了動機的多樣性.Ma等人[14]指出對于單個項目,commit的行為時間間隔始終近似呈現冪律分布且連續性的commit操作的時間間隔都不長.除此之外,一部分研究人員也試著訊在對軟件定量分析的屬性包括哪些,Hofmann等人[15]調查發現軟件的貢獻程度可以由commit的數量多寡表現出來.

綜上所述,開源社區中無論是對開發者本身還是其相關行為的研究始終是該領域的熱點,而與已有工作不同,本文嘗試以GHTorrent下的數據集鏡像為基礎,通過分析技術關聯與合作關聯這兩種開源項目之間風險傳遞關系構建網絡模型,基于支持向量機對設置好特征的項目成敗數據進行訓練,經過數據治理后得出的訓練模型來預測相應開源社區的風險指數和發展趨勢.

3 復雜網絡與級聯崩塌模型

復雜網絡模型是指用來描述社會科學,自然科學工程技術上互相關聯系統的模型,并引入了數學中圖的概念,即復雜網絡可以看作是由一些具有獨立特征且與其他獨立單元相互連接的節點的集合,因此可以把每個單元看作圖中的一個節點,節點間互相連接視作圖中的邊.從理論上講,任何由大量單元組成的網絡,都可以將其中的單元視為一個節點,單元之間的相互作用視為邊,以此轉化為復雜網絡的研究.

復雜網絡的級聯崩塌是指一個至幾個節點或邊發生的故障會同通過節點之間的耦合關系引發其他節點的故障,這將出現連鎖反應,進而引發大規模的節點乃至整個網絡的崩塌.

4 基于社區的崩塌驅動模型

4.1 Github上項目的級聯崩塌分析

在此類代碼托管平臺中,各種相關數據不斷更新傳輸,項目與項目之間存在密切的關聯,使得Github組成了一個典型的復雜網絡模型.然而,這種網絡的關聯形式通常會帶來一系列的負面影響.當某個項目在開發進程中遇到阻礙時,都將使其他相關項目產生一些潛在的影響.由于網絡的正反饋作用,細微的故障也會演變成意想不到的大型突發事件.作為一個復雜的社區網絡,它具有關聯性和層次性的特點.由于項目或者開發人員之間的長期互動促使了團體的逐漸形成.在社區團體中,成員們通常會保持價值觀和開發理念的一致性質[16].因此,當團隊成員受到一些外部因素的影響時,級聯效應會在相關的項目團體中擴散,使整個網絡變為亞穩定狀態.這種影響一旦超過閾值,網絡的狀態就會進一步崩塌,從而導致雪崩現象的發生.

如圖1所示,以Github上某一個項目為例解釋崩塌級聯的具體發展過程.“SOUI”,“OsmSharp”,“NetDimension”,“tinyantstudio”,“FlaUI”,“Panuon”是Github上的6個開源項目.“SOUI”項目是在DuiEngine的基礎上全面重構完成的開源DirectUI庫,2017年2月開始研發,3月首次commit,其兩位核心開發成員ID分別為“Bing”和“LK”.“LK”是項目的管理者,不僅如此,這位用戶還一并參與和管理著 “OsmSharp”,“NetDimension”,“tinyantstudio”,“FlaUI”,“Panuon”等多個項目.我們在對“SOUI”項目進行詳細調研后,發現由于技術攻關失敗,項目在沒有完工的情況下,在14個月后不再有任何更新和提交.受此影響,“LK”獨立開發的“tinyantstudio”和參與合作的“OsmSharp”、“FlaUI”、“Panuon”等項目也都停止開發,繼而引發項目“Panuon”的更新也完全停滯至今.至此為一個完整的社區項目發生級聯崩塌的過程,在整個崩塌歷程中,核心成員“LK”起著舉足輕重的作用.

圖1 項目的崩塌級聯效應

4.2 項目級聯崩塌現象的驅動力

阻礙項目發展的因素是研究雪崩動力過程的核心點.開源社區通過郵件以及論壇等形式為用戶和開發者提供了可以交流的平臺,憑借這些媒介,無論是開發者之間還是用戶之間,亦或二者之間都可以就關鍵性問題進行探討.圖2所示為某項目的崩塌級聯效應和發展因素分析.

圖2 項目發展的驅動和限制因素

由此可得,開源項目發展是否順利與兩個因素息息相關:即技術因素和用戶因素.軟件本身具有高度互依存性,大量軟件要依賴其他各種支持環境才能運行.另一些也需要特定的中間件來輔助以才能提供所需的功能.因此,從技術因素來看,沒有環境支持的項目很難長期生存和發展.所以,當這些環節中的任何一個環節出現問題時,其他相關的軟件或系統都會受到一定程度的影響,從而存在故障的風險.另一方面,軟件開發通常由許多人協同完成.在長期的合作開發過程中,不同風格的開發人員會逐漸走向相同的設計理念和知識體系,形成相似或統一的框架或程序風格.當受到會員流失、開發商轉讓等外部因素的影響時,可能會直接導致開發進度的停擺.在現實生活中,由用戶合作問題引起的項目失敗是最為常見的現象.開發過程中產生意見分歧是項目開發中最為常見的障礙,此外,核心開發成員的離開會對項目開發造成毀滅性的打擊.在上述兩方面因素的影響下,軟件項目構成的復雜網絡級聯崩塌關系會呈現出技術關聯和合作關聯兩種模式.

4.3 技術關聯模式

由上述內容可知,軟件項目之間由技術關聯而產生一個軟件群體.群體一般將某個特定的核心項目當作中心,以環境配套支持件為輔助,形成軟件網.通常來說,處于核心地位的項目是市面上比較認同的程序,其他外圍項目均以該項目為核心,提供運行環境以及額外的擴展功能.圖3為以eMule為例的技術關聯模式展示.

圖3 項目的技術關聯網絡

4.4 合作關聯模式

開源軟件項目一般由多人共同協作研發.然而多數開發者又會同時參與幾個不同的項目,因此出現了合作關聯關系.例如兩個項目A和B分別由3個開發者合作開發;而開發者c一并加入項目A和B的開發進程,如圖4所示.假設在某個時間,c由于缺乏動力而離開社區,導致這個事件將分別對A和B項目開發團隊產生影響.若c為這兩個項目的核心開發者或管理者,那他的離開大概率會讓這兩個項目的其他開發者失去后續的動機和信心,乃至最終直接或間接導致項目的失敗.圖4顯示c的離開對a、b和d、e有影響.由于此種影響產生于項目內部,故命名為內部效應.在這種效應的影響下,A、B項目都停止開發工作,由此表現出此次崩塌過程的級聯效應.項目A和項目B相繼失敗.值得注意的是,團隊合作是導致連鎖效應的另一個重要因素.項目A和項目B中的開發人員b和c在合作過程中存在沖突或分歧,勢必會影響到兩個項目的后續進展,其結果就表現為項目A和B的級聯崩塌.

圖4 合作關聯時核心開發者離去引發的級聯失效傳遞

除此之外的另一種由合作關聯所產生的級聯效應是源自群體行為模式的解體.長期的工作和交互會促使人們自發形成一定的群體規范和行為模式.此等包含共性特征的項目會形成緊密聯系的團體結構[17],團體內的項目在研發技術和設計模式等方面具有明顯的一致性[18],當受到來自外部的技術亦或不同的設計理念等因素影響時,便會造成團體內的連鎖反應.

4.5 級聯崩塌的混合關聯模式

現實中,級聯崩塌在傳播時通常不會區分其技術關聯模式和合作關聯模式,更普遍的是基于兩種關聯模式的混合.如圖5所示,項目D由a,b共同開發,項目E則為b,c共同開發,而b是兩個項目的聯合參與者.項目F由d單獨開發,它與E存在技術關聯(如圖5(a)).若開發者b由于某些因素中斷了開發進程,并先后影響項目D和E,導致兩個項目進度均被終止;

圖5 混合關聯模式下的級聯效應

而F的技術層面受到E的影響,因此E的終止又導致F的失敗.由此便引發了D,E,F 3個項目相繼失敗的連鎖反應.在該級聯崩塌中,D,E級聯屬于合作關聯,E,F級聯屬于技術關聯.從整體上看,D,E,F級聯則對應于混合關聯(如圖5(b)).

5 支持向量機

支持向量機(Support Vector Machine,SVM)常用于線性可分的情況,通過學習得到分類超平面,使樣本點到支持向量的距離最大化.SVM是通過在高維空間構建一個用于分類的超平面,以改善傳統模式識別方法在訓練過程中的造成過擬合以及局部最優的問題,顯著提高了訓練得到模型的泛化能力.SVM對于采集訓練數據集的訓練過程實質上是目標模型的優化求解過程,如式(1)所示:

(1)

式中:ω、b分別為超平面的法向量矩陣、截距向量.通過引入拉格朗日乘子,針對參數求其偏導,再以求解原問題的對偶問題求解,詳細求解如公式(2)所示:

(2)

式(2)中:a為超參數矩陣.這樣的問題轉化過程具有兩方面優勢,首先,這樣使得目標對偶問題求解更方便;其次,在處理線性不可分問題時,能夠進而使用核函數方法使得維度空間發生改變.

由于非邊界樣本對應的參數ai都是0,因此在進行測試時,僅需要計算測試樣本與支持向量的內積即可:

f(x)=wTx+b=∑aiyi〈x,xi〉+b

(3)

式中:〈x,xi〉代表內積運算.

實際問題中,待分類問題一般是線性不可分的,此時需要借助懲罰函數提高模型對噪聲的敏感度,避免模型訓練的過擬合.對于線性不可分,可以增加核函數的使用,使得訓練樣本的特征空間從低維映射到高維.此外,核函數的使用替代了原始低維空間的內積計算,使得內積計算和超平面分類可以在不同維度空間進行,最終使問題變為線性可分.目前常用的核函數包括基于高斯的核函數、基于線性變換的核函數,以及基于多項式的核函數,其通用數學表達式如式(4)所示:

K(x,z)=〈σ(x),σ(z)〉

(4)

式中:σ為原本數據向高維空間的映射.

6 實 驗

6.1 數據處理

本文采用Github開源社區里抓取的110萬條項目數據作為分析和分類器設計的基礎.數據主要包括:用戶在某一時間訪問項目的id,用戶id,項目id,用戶訪問項目的時間.數據處理分為兩部分,第一部分是針對數據進行標準化處理,使得不同數值以及不同量綱之間的數據可以進行混合分析.數據的標準化處理主要解決不同性質數據問題對不同性質的數據直接處理不能得出有效的結果.本文所采用的數據標準化的方法如下:

1)min-max標準化

(5)

式中:x*為標準化之后的樣本;x為標準化之前的樣本;xmax和xmin為采集的Github數據集中對應特征里的最大值和最小值.

2)正則化標準化

(6)

式中:μ為樣本集的均值;σ為樣本集的標準差.

數據處理的第二部分是清洗原始采集樣本,異常數據的剔除,無效項目的樣本剔除,定義并提取有效持續項目以及失敗項目.其中無效項目的樣本剔除的判斷依據為采集樣本中的相關條目數量小于10條或者參與者數量為1.失敗項目的判斷依據為順序排序下該項目的連續登陸時間間隔大于365天,即視為項目失敗,相反,其余項目視為有效持續項目(成功項目).數據集樣本清洗前后統計數據如表1所示.

表1 數據集樣本清洗前后統計表

6.2 分類器設計

根據前述項目級聯崩塌現象的驅動力以及崩塌關聯模式,本文認為合作關聯模式在開源社區項目的發展演變中,扮演著更加重要的角色,并且技術關聯模式在某種程度上,其在合作開發鏈條中最終仍然是以項目參與人合作并輸出貢獻的方式得以體現,技術關聯反應在某項目參與者參與項目的深度及廣度中,如圖6所示.

圖6 參與者深度與廣度和各關聯模式的層級關系

因此,本文通過設計提取若干與項目自身、參與者參與項目有關的特征參數,通過統計分析,最終確定以5類特征用于分類器的訓練,特征提取及定義如表2所示.

表2 訓練特征設計

項目id的條目總數總體反映了項目活躍程度,按照社區開源項目歷史經驗,項目活躍程度與項目的有效持續性密切相關;另一個至關重要的要素就是項目參與者的數量,本文將參與者劃分為兩類,分別為單一參與者和復用參與者,項目中包含這兩種作者的數量與項目成敗有內在聯系;最后增加了項目中參與項目最多的參與者所參與的項目總數.

最后通過訓練SVM分類器,實現對開源項目發展健康程度的預測.流程如圖7所示.

圖7 算法流程圖

6.3 實驗結果

實驗程序采用Matlab編寫,構建SVM分類器,核函數采用徑向基函數(Radial Basis Function,RBF),優化方法使用序列最小優化(Sequential Minimal Optimization,SMO),徑向基函數σ參數選取為1.0.訓練的有效持續項目和失敗項目按照90%和10%的比例生成訓練數據及和測試數據集,隨機生成10次并進行分類器訓練和預測,結果取平均值(如表3所示);并與多元線性回歸(Multiple Linear Regression,MLR)算法進行結果對比(如表4所示).

表3 基于SVM的項目預測準確率結果

表4 基于MLR的預測準確率結果

以上實驗結果表明,MLR算法對于有效可持續項目的預測準確率不佳,對于失敗項目幾乎無法進行正確的預測;基于SVM和級聯崩塌關聯模式所設計的特征可以更有效的用于分類器訓練,訓練得到的分類器對失敗項目預測準備率達到了89.8%,同時對于有效持續項目的預測準確率也達到了76%,兩者結合可以有效用于開源社區項的項目可持續性預測及失敗風險評估.

7 結 論

Github社區作為一個典型的自組織演化系統,其產生與發展是多種因素共同作用的結果.不同的因素共同推動著社區不斷走向成熟直至達到臨界狀態,使社區呈現出豐富的多樣性特征以及充滿激情的創作活力.對此類系統而言,通過外部檢測其健康程度對于系統的演變和風險提示具有積極意義.本文基于對復雜網絡下開源社區崩塌級聯模式的詳細分析,提出基于SVM的開源項目風險評估方法,通過設計特征提取對不同項目進行可持續性和和失敗風險預測,通過采集數據訓練模型和測試驗證,結果表明,提出的方法可以有效的對失敗項目進行評估和預測,并適用于開源項目的健康監測管理等應用領域.

猜你喜歡
關聯
不懼于新,不困于形——一道函數“關聯”題的剖析與拓展
“苦”的關聯
當代陜西(2021年17期)2021-11-06 03:21:36
船山與宋學關聯的再探討
原道(2020年2期)2020-12-21 05:47:06
“一帶一路”遞進,關聯民生更緊
當代陜西(2019年15期)2019-09-02 01:52:00
新制度關聯、組織控制與社會組織的倡導行為
奇趣搭配
基于廣義關聯聚類圖的分層關聯多目標跟蹤
自動化學報(2017年1期)2017-03-11 17:31:17
智趣
讀者(2017年5期)2017-02-15 18:04:18
探討藏醫學與因明學之間的關聯
西藏科技(2016年5期)2016-09-26 12:16:39
GPS異常監測數據的關聯負選擇分步識別算法
主站蜘蛛池模板: 九九热视频在线免费观看| 欧美成人手机在线观看网址| 日本五区在线不卡精品| 国产aⅴ无码专区亚洲av综合网| 无码专区在线观看| 国产精品九九视频| 亚洲另类第一页| 五月婷婷欧美| 成人精品午夜福利在线播放| AV在线天堂进入| 亚洲无码日韩一区| 免费网站成人亚洲| 亚洲首页国产精品丝袜| 天天色综合4| 这里只有精品在线| 欲色天天综合网| 99视频在线观看免费| 97久久人人超碰国产精品| 婷婷六月激情综合一区| 久久中文字幕av不卡一区二区| 中文字幕在线视频免费| 亚洲欧美一区二区三区蜜芽| 天天操精品| 亚洲成A人V欧美综合| 国产在线高清一级毛片| 欧美在线黄| 亚洲专区一区二区在线观看| 亚洲第一成网站| 亚洲一区二区三区香蕉| 红杏AV在线无码| 国产一级小视频| 亚洲欧美成人网| 欧美精品高清| 国产亚洲男人的天堂在线观看| 亚洲天堂视频在线观看免费| 少妇人妻无码首页| aⅴ免费在线观看| 无码精品国产VA在线观看DVD| V一区无码内射国产| 国产对白刺激真实精品91| 伊人成色综合网| 99久久精品免费视频| www.91在线播放| 欧美一区二区自偷自拍视频| 国产SUV精品一区二区| 亚洲综合第一区| 自慰高潮喷白浆在线观看| 福利国产微拍广场一区视频在线| 亚洲天堂成人在线观看| 久久综合九九亚洲一区| 日韩黄色在线| 久久精品国产免费观看频道| 伊人久久综在合线亚洲2019| 国产精品久久久久婷婷五月| 亚洲一级毛片在线观| 又爽又大又黄a级毛片在线视频 | 久久精品嫩草研究院| 手机在线免费不卡一区二| 91久久国产热精品免费| 人妻中文久热无码丝袜| 日韩黄色大片免费看| 九九这里只有精品视频| 真实国产乱子伦视频| 无码免费试看| 日本道中文字幕久久一区| 亚洲一区二区黄色| 欧美日韩v| 国产福利一区视频| 91网红精品在线观看| 国产色伊人| 国产男人的天堂| a级毛片网| 一区二区三区高清视频国产女人| 免费看美女毛片| 熟妇丰满人妻| 最新日韩AV网址在线观看| 精品久久人人爽人人玩人人妻| 亚洲精品免费网站| 97影院午夜在线观看视频| 狠狠做深爱婷婷久久一区| 91视频99| 精品国产aⅴ一区二区三区|