收藏 分销(赏)

基于机器学习的GitHub企业影响力分析与预测.pdf

上传人:自信****多点 文档编号:2352344 上传时间:2024-05-28 格式:PDF 页数:13 大小:19.12MB
下载 相关 举报
基于机器学习的GitHub企业影响力分析与预测.pdf_第1页
第1页 / 共13页
基于机器学习的GitHub企业影响力分析与预测.pdf_第2页
第2页 / 共13页
基于机器学习的GitHub企业影响力分析与预测.pdf_第3页
第3页 / 共13页
亲,该文档总共13页,到这儿已超出免费预览范围,如果喜欢就下载吧!
资源描述

1、第 5 卷第 3 期2023 年9 月智能科学与技术学报Chinese Journal of Intelligent Science and TechnologyVol.5 No.3September 2023基于机器学习的GitHub企业影响力分析与预测王明宇1,宫庆媛2,瞿晶晶3,王新1(1.复旦大学计算机科学技术学院,上海 200438;2.复旦大学智能复杂体系基础理论与关键技术实验室,上海 200438;3.上海人工智能实验室,上海 201210)摘要:企业影响力的高低不仅关系到其行业竞争力,也影响着其社会声誉和未来发展,然而对企业影响力的评价一直没有统一的标准。GitHub是一个代表

2、性的软件开发代码存储库开源平台,现有研究通常使用企业在GitHub发布的项目得到的star总数衡量其影响力高低,但是这种方式难以衡量小微企业和新生企业的潜力。通过引入科学家的影响力衡量指标h指数,以GitHub为信息源进行企业网络建模,同时基于该网络提取特征构建分类器,对企业未来的影响力水平进行预测。在此基础上应用SHAP模型解释技术,判别决定企业影响力的重要特征。实验结果显示,基于XGBoost的模型在GitHub真实数据集上实现了0.92的准确率和0.93的平均AUC,可以准确、可靠地对企业进行影响力预测。关键词:在线开发者社区;社交网络;机器学习;SHAP中图分类号:TP39文献标志码:

3、Adoi:10.11959/j.issn.2096-6652.202327Analysis and prediction of GitHub company influence based on machine learningWANG Mingyu1,GONG Qingyuan2,QU Jingjing3,WANG Xin11.School of Computer Science,Fudan University,Shanghai 200438,China2.Research Institute of Intelligent Complex Systems,Fudan University,

4、Shanghai 200438,China3.Shanghai Artificial Intelligent Laboratory,Shanghai 201210,ChinaAbstract:The influence of a company is not only related to its industry competitiveness,but also affects its public reputation and future development.However,there has been no unified standard for evaluating the i

5、nfluence of a company.GitHub is a representative open-source platform for software development code repositories.Existing research typically used the total number of stars a company receives for projects posted on GitHub to measure its influence,but this approach is difficult to measure the potentia

6、l of small,micro,and nascent companies.The paper predicted the future influence level of a company by introducing the scientists influence measure h-index,using GitHub as the information source,and modeling the company network.Features was extracted features based on this network to build the classi

7、fier,which predicted the future influence level of the company.The SHAP model explanation technique was further applied on this basis to identify the important features that determined the influence of a company.The experimental results showed that the XGBoost model achieved an accuracy of 0.92 and

8、an average AUC of 0.93 on the real-world GitHub dataset.In summary,the proposed method could accurately and reliably predict the influence of companies.Key words:online developer community,social network,machine learning,SHAP收稿日期:20230701;修回日期:20230802通信作者:宫庆媛,基金项目:国家自然科学基金项目(No.62102094)Foundation

9、Item:The National Natural Science Foundation of China(No.62102094)第 3 期王明宇等:基于机器学习的GitHub企业影响力分析与预测0引言GitHub是一个领先的在线开发人员社区,拥有3 100万开发人员和9 600多万个存储库。此外,有大量企业在GitHub拥有官方账号,尤其是科技类企业1。他们会将科研成果以项目的形式发布在GitHub 账号上,如果开发者对某个项目感兴趣,他们可以通过“star”来推荐它。在很多研究中,学者使用star的数量来代表一个项目2的受欢迎程度,即star的数量越大,说明这个项目越受欢迎。对于一家企业

10、来说,其创建的所有项目所获得的star总数越大,说明该企业越受欢迎。但是这种评价方式存在一定的局限性,例如,同样作为知名社交网站,Facebook拥有超过80 000名员工,其star总数高达935 897次,而拥有7 500名员工的Twitter的star数量只有123 067次;同样作为知名互联网公司,创立于2000年的百度的star总数高达64 149次,而创立于2010年的美团的star总数仅有6 404次。显然,使用star总数作为衡量指标,若以员工人数划分,小型企业相比大型企业不占优势;若以创立时间划分,新生企业相比老牌企业不占优势。本文借鉴科学家的h指数(用于评估科研学者学术水平

11、与学术影响力的混合量化指标,也称h因子),定义企业的h指数:其在GitHub发布的N个项目中有h个项目每个项目至少被star了h次,并且其余N-h个项目每个项目被star的数量均小于或等于h次。根据定义,我们对GitHub上的企业进行h指数计算。表1列举了几家代表性企业的h指数和其他相关指标。从表1中可以看出,h指数受企业规模大小和创立时间因素的影响较小,大大减少了使用star总数评价企业影响力的局限性。例如,Facebook虽然拥有接近100万个star,在全球企业中排名第3,但实际上这些star只集中在不到100个项目中。也就是说其他大量的项目并没有得到很多关注,因此其h指数只有97。而S

12、quare虽然只拥有不到2 000名员工,并且只创立了14年,其star总数相对较低,但h指数达到了较高的105,是因为它发展迅速,有很多优质项目得到大量关注。因此,h指数是一个稳健的累积指标,兼顾了企业项目的发布数量和star数量,“质”与“量”并重。单纯的项目数量增加对h指数不产生直接影响,也不容易被某个意外过高或过低star的项目所影响。因此h指数能够科学地对企业的影响力进行综合评价,并进行相应的量化。经过计算,Brand Finance(全球性的独立第三方品牌影响力评估机构)发布的科技类企业排名与GitHub企业的h指数排名之间的 Spearman 相关系数为 0.484,具有一定的相

13、关性。因此h指数可以在一定程度上反映出科技类企业的影响力,尤其是在品牌强度方面的影响力。h指数可以衡量企业影响力的高低,而企业影响力的高低反映出其在一定时间内创造的价值,对于企业的社会声誉和未来发展具有重要意义。一般来说,企业影响力是一种无法预判的后验信息,仅能依靠有关特征来确定现有的影响力。为了解决这一问题,我们将企业当前的指标作为依据,对企业未来的影响力进行预测,发掘企业潜力,找到那些暂时处于初创期、发展期的优秀企业,提高其知名度,从而带来关注度和资源倾斜。同时,也可以对处于停滞期和衰退期的企业起到预警作用。本文使用GitHub提供的REST API收集公开信息,抓取的信息字段包括项目数量

14、、贡献者数量、每个项目拥有的star数量等。在此基础上,使用极限 梯 度 提 升 树(extreme gradient boosting,XGBoost)作为底层分类器来构建模型,使用SHAP解释框架对特征进行解释,从而对企业未来影响力高低进行可靠预测,并将预测结果与支持向量机(support vector machine,SVM)、多层感知机(multilayer perceptron,MLP)模型进行对比。结果显示,基于XGBoost的模型预测结果显著优于基于支持向量机、多层感知机的模型预测结果。本文的主要贡献总结如下。(1)使用NetworkX(用于创建、操作和研究复杂网络的结构、动力学

15、和功能的Python包)对486家企业进行网络建模和计算,提取可以反映节表1GitHub企业信息对比企业名称TencentSquareIBMAppleFacebookJetBrainsUberTwitterOracle员工数量/名110 7151 853282 100154 00083 5531 90029 0007 500143 000创立时间1998年2009年1911年1976年2004年2000年2009年2006年1977年star总数/次448 913281 16666 368217 340935 897161 40998 124123 06756 345h指数1351051031

16、019797826964331智能科学与技术学报第 5 卷 点企业影响力的网络连接特征,而不仅限于从GitHub爬取的企业账户特征。在此基础上,使用3个维度共11个特征基于XGBoost分类算法进行建模。由于加入了网络层面的影响因素,从而可以更准确地预测GitHub企业未来可以达到的影响力水平。(2)采用目前流行的机器学习模型可解释技术,对构建的企业影响力预测模型进行解释,给出使预测概率上升的重要特征和从整体上影响模型结果的重要特征,以提升模型透明度和可信度,进而构建基于可解释性机器学习(explainable artificial intelligence,XAI)的GitHub企业影响力预

17、测与解释系统。(3)在从GitHub收集的大规模数据集上评估了所提出的方法。实验结果表明,本文提出的方法在统计学上显著优于其他模型。此外,我们发现项目的数量、贡献者的数量和在企业社交网络中的有效规模取值是决定一个企业是否具有高影响力的重要的3个特征。1GitHub企业数据获取本文的数据来源是 GitHub 平台,我们通过GitHub 的 REST API 收集企业账号信息,抓取了GitHub上486家企业的相关数据。图1展示了数据抓取的过程。GitHub企业群体庞大,且存在企业名称与其GitHub账号名称不一致的问题,因此难以获取全部企业账号列表。以往针对该平台企业账号的研究只能使用一小部分企

18、业对GitHub进行数据驱动研究。本文希望通过扩大整个企业数据集,克服抽样偏差的缺点。Gitstar Ranking是一个GitHub用户和存储库数据实时更新网站,它收集了大量GitHub官方组织账户,并将其按star数量进行排序。本文对该官方组织名单进行了补充,并且排除了开源项目账户,仅使用科技类企业的账户构成数据集。GitHub为开发者提供了REST API,可以用来创建调用以获取与GitHub集成相关的数据。REST API提供了GitHub的很多常用功能,比如操作、拉取等,但是有些功能需要经过身份验证。由于本文需要对GitHub发出大量请求,而未经过身份验证的客户端每小时只能发出60个

19、请求,因此我们创建个人访问令牌,使得每小时的调用上限达到5 000次,以满足调用需求。每个 GitHub 企业账户都有一个唯一账号名。如果知道一个企业的账号名,就可以通过访问URL来查看其对公众开放的资料页面。考虑到GitHub中存在长期没有更新和维护账号数据的企业,本文过滤掉没有更新信息的企业,只选择至少有1个贡献者和1个项目的企业,组成有效企业数据集合。本文实现了一个基于Python的爬虫,这个爬虫应用GitHub提供的REST API来下载每个企业的数据。数据集收集于2022年11月24日至12月15日,历时3周。我们成功抓取了486家科技类企业的账户资料及其在GitHub上的存储库,这

20、些企业累计发布了70 074个项目,共计拥有924 967个贡献者。每个企业的数据包含项目数量、全名、拥有项目的所有者ID、企业所在国家、贡献者数量、开发语言、创建时间等。我们还计算了每两家企业之间的共同贡献者人数,并以此作为企业社交网络建模的基础。因此,本文能够构建具有486个节点和5 040条边的完整的GitHub企业社交网络图。此外,本文以3周的时间为间隔,分别抓取了GitHub上486家企业的项目数量变化量和贡献者数量变化量。本文尊重GitHub用户的隐私,只收集了公开的信息。通过分析抓取的数据,提取了每个企业的图1GitHub企业数据抓取过程332第 3 期王明宇等:基于机器学习的G

21、itHub企业影响力分析与预测信息字段的值,例如项目数量、开发语言、所在国家或地区等。此外,对于每个用户,我们都获得了完整的项目列表和贡献者列表。同时,在离线环境中存储和分析以上数据。2相关工作2.1相关研究成果随着GitHub的快速发展,研究人员针对其用户影响力进行了一系列衡量和预测3。李变4对基于链接分析的HITS算法进行改进,提出一个基于用户属性矩阵和HITS算法的社交网络中用户影响力评估算法。Hu 等人5提出了一种基于 Follow-Star-Fork-Activity的方法来衡量用户在GitHub社交网络中的影响力。通过构建社交网络,分析用户在社交网络中的影响力,包括受欢迎程度、中心

22、性、内容价值、贡献和活动,使用波达计数法(Borda count)对用户影响力进行全面量化,提出了一个基于关注关系、星标关系、分叉关系和用户活动的影响力衡量框架。文献6则对关注者数量、分叉项目数量和GitHub中的项目观察者数量3个影响指标进行深入比较,其结果表明3个影响指标捕获了两个主要特征:受欢迎程度和内容价值(代码可重用性)。文献7将深度学习方法应用到社交网络用户的影响力预测,引入图卷积与图注意力两种方法,学习社交网络模型的隐藏参数。由于兼顾了用户的节点特征与所处子图的结构特征,更全面地了解用户偏好与信息传播模式,大大提升了社交网络中用户影响力的预测精度。如何对GitHub中存储库的影响

23、力进行预测也引起了广泛关注8。Borges等人9认为存储库的star数是其影响力的直接衡量标准,揭示了影响GitHub项目star数量的主要因素,并对2 279个GitHub存储库的star数的时间序列进行聚类,得到了流行度增长的4种主要模式。使用多元线性回归来预测GitHub存储库的star数,基于存储库过去6个月得到的star数量训练模型并进行预测。此外,对于star数量较少或者增长缓慢的存储库,使用来自具有相同增长趋势的存储库数据生成特定预测模型。Varuna等人10在GitHub上执行趋势预测,使用最相关且重复发生的事件构建多变量时间序列,使用长短期记忆(LSTM)模型预测 star数

24、量变化趋势。Han等人11从GitHub中提取了35个特征并构建随机森林分类器,以预测GitHub 项目的受欢迎程度。在从GitHub收集的大规模数据集上评估模型性能,实现了0.76的平均AUC。Ren等人12提出了一种基于star数量的StarIn方法来预测GitHub存储库的影响力。以GitHub中的关注者为基础数据集建立网络,从基本影响、网络动态影响和网络静态影响3个方面共6个特征的角度分析了StarIn与存储库影响力大小的相关性。StarIn在两种不同的分类器下对预测存储库的影响力大小均实现了较高的准确率。2.2XGBoostXGBoost通过不断地加入新的弱模拟器来拟合前一个弱评估器

25、训练所产生的误差,使得真实值与预测值的残差不断减小。在模型迭代结束后,将每个评估器上的预测结果进行加权组合即可得到预测结果13。XGBoost的预测函数见式(1)。y*i=i=1Kfk(xi)fF(1)其中xi为输入的第i个样本,K为决策树的数目,fk(xi)为第i个样本在第k棵树上的预测值。XGBoost的目标函数由损失函数与正则化两部分组成,其正则化的目标函数见式(2)和式(3)。其中(fk)代表树的复杂度,yik-1为前k棵树的预测值,、为控制惩罚程度的超参数,T代表叶子节点个数,w代表每个叶子节点的值。Lk=i=1nLyiyk-1i+fk(xi)+(fk)(2)(fk)=T+12w2(

26、3)2.3SHAP解释框架集成学习和深度学习等黑盒模型一般具有良好的精度,但由于模型内部复杂度高,使得建立的模型缺乏可解释性,人们无法直观理解。Lundberg等人14于2017年提出SHAP框架,这是一种用于复杂机器学习模型的解释框架。该解释模型与人类直觉一致,近年来在解释医疗和社会现象相关模型方面日益流行。SHAP是一种经典的事后归因解释框架,通过计算每个特征加入模型时的贡献进行模型解释。其核心思想是Shapley value,最早由Shapley于1953年提出,主要是用来解决合作博弈论中的分配均衡问题。SHAP是一类可加性解释模型,将每个特征都视为贡献者,通过计算其具体的贡献值,并将所

27、有特征的贡献值加和得出模型的最终预测。对于每一个样本而言,样本最终的预测值等于333智能科学与技术学报第 5 卷 平均预测值与样本各特征的SHAP值之和。这确保了贡献值加和等于最终输出,消除了各个模型间结构带来的解释性差异,能解决很多特征归因方法不一致的问题。此外,传统的特征重要性只能说明哪个特征重要,但并不清楚该特征是怎样影响预测结果的。而SHAP可以反映出各个特征的影响力以及影响的正负性,揭示该特征怎样影响预测结果,这是其最大的优势所在。3GitHub企业社交网络分析随着在线社交应用的普及,社交网络成为目前学者们研究的热点15,其中对节点影响力的分析也取得了一系列成果。在社交网络中,已有大

28、量研究通过融入中心性指标,对节点用户的影响力进行识别和评估。一般来说,把用户当作网络中的节点,用户之间的联系就是网络中的边。这种联系可以是用户之间相同的兴趣爱好所产生的连接,也可以是用户之间的合作或竞争关系等。这一概念与本文构建的企业社交网络具有高度相似性。企业影响力的研究数据主要分为两大类。一类是企业自身的属性,如项目数量、项目增加量、贡献者数量等。另一类是基于企业间的联系产生的属性,如企业之间共同的贡献者、共同参与的项目等,这种联系构成了企业之间的社交网络16。目前已有的针对企业影响力的研究只考虑到企业的自身属性,忽略了企业在网络中的位置和重要性,因此本文引入社交网络分析,以企业作为节点,

29、以两家企业之间的共同贡献者作为联系依据,利用NetworkX构建企业社交网络。本文使用486家企业的数据集,根据企业之间的联系紧密程度建立无向图,并进行可视化,如图2所示。每个节点代表一个GitHub上的企业,若两家企业的共同贡献者多于(或者等于)100人,即联系紧密,增加一条边;若共同贡献者少于100人,即联系不紧密,则不增加边。边的连接代表了企业之间联系的紧密程度。从图2中可以看到,许多节点是高度连接的,并且节点倾向于形成集群,即一些企业占据网络的中心,有很多企业与它们有相连的边,比如 Apache、Nokia、Shopify 等。也有一些企业几乎不与其他企业相连,比如AOL、安居客、Fa

30、cePlusPlus等。图例显示了拥有边数最多的前10家企业,它们均为行业代表性企业或者高新技术企业,拥有大量用户、优质声誉以及高度的影响力。3.1中心性度量节点的中心性(centrality)用于定量地衡量节点在网络中的重要性,因此可用于判定节点在网络中的影响力大小,本文将它们作为企业联系维度的特征进行建模17。节点中心性的4个主要度量指标分别为度量中心性、介数中心性、接近中心性和特征向量中心性。表2为各个指标数值排名前15的企业及其具体数值。由表2可以看出,Microsoft在4项中心性度量中均排名第一,说明其位于企业网络的最中心。图2486家企业社交网络可视化(以100作为连接边的阈值)

31、334第 3 期王明宇等:基于机器学习的GitHub企业影响力分析与预测3.1.1度量中心性度量中心性(degree centrality,DC)根据每个节点存在的连接数分配重要性分数,即节点的中心性越高,连接到特定节点的边就越多,该节点的邻居节点就越多。事实上,节点的中心性程度是它所连接的节点的比例,也就是特定节点连接到网络节点的百分比。在一个包含N个节点的网络中,节点i的度量中心性定义为:DCi=liN-1(4)其中,li表示现有的与节点i相连的边的数量,N-1表示节点i与其他节点都相连的边的数量。图3为企业中心性度量条形图,横坐标为各项中心性指标的具体数值,纵坐标为中心性指标为该数值的企

32、业数量。由图3可以看出,企业的度量中心性的分布显示出长尾效应,大多数企业集中在头部,即度量中心性较低处;只有零散、少量的企业分布在尾部,度量中心性越大,企业数量越少。有3家企业的度量中心性高于0.4,分别是Microsoft、Shopify、Unity-Technologies。这是因为在大多数社会网络中,节点的度遵守幂律分布,度较大的节点数量在网络的节点总数量中占比很少,而度较小的节点的数量却占很大比例。所以许多节点具有极低的度量中心性,因为它们在这个网络中并不相互连接。表2中心性度量排名前15名的企业排名123456789101112131415度量中心性microsoft:0.522sh

33、opify:0.470unity-technologies:0.406atlassian:0.359nokia:0.346github:0.338apache:0.326automattic:0.282grafana:0.280mozilla:0.274elastic:0.266segmentio:0.264facebook:0.260hashicorp:0.260hubspot:0.256介数中心性microsoft:0.110shopify:0.070unity-technologies:0.030automattic:0.026atlassian:0.021github:0.019apa

34、che:0.019nokia:0.017mozilla:0.014JetBrains:0.009facebook:0.009intel:0.008adobe:0.006alibaba:0.006meteor:0.006接近中心性microsoft:0.554shopify:0.521unity-technologies:0.486atlassian:0.461nokia:0.456github:0.454apache:0.446automattic:0.431grafana:0.429mozilla:0.428elastic:0.423segmentio:0.422facebook:0.421

35、hashicorp:0.421hubspot:0.419特征向量中心性microsoft:0.164shopify:0.162unity-technologies:0.158atlassian:0.151nokia:0.149github:0.1 464apache:0.144grafana:0.139segmentio:0.135hashicorp:0.134elastic:0.133hubspot:0.132appian:0.131nextdoor:0.131digitalocean:0.130图3企业中心性度量335智能科学与技术学报第 5 卷 3.1.2介数中心性介数中心性(betwe

36、enness centrality,BC)用于衡量节点影响其他节点的能力,数值越高,说明该企业充当许多非连接企业的桥梁,能够传达较大的信息流量,影响和连接其他企业。节点i的介数中心性定义为:BCi=sitnistgst(5)其中,nist表示经过节点i且为最短路径的路径数量,gst表示连接s和t的最短路径的数量。由图3可以看出,绝大多数企业的介数中心性低于0.025,而Microsoft拥有最高的介数中心性,为0.110。介数中心性衡量节点位于其他节点之间最短路径上的次数。节点的介数中心性与节点影响其他节点的能力有关。具有高介数中心性的企业充当许多非连接企业之间的桥梁,因此能够通过传达信息来影

37、响他们,甚至通过企业的圈子连接他们。3.1.3接近中心性接近中心性(closeness centrality,CC)根据每个节点与网络中所有其他节点的“接近度”对每个节点进行评分。对于一个节点,它的接近中心性测量其到所有其他节点的平均远度。即企业的接近中心性越高,它离网络中心越近。接近中心性度量对于监控虚假信息或病毒的传播非常重要,因为虚假信息必须首先到达具有高度接近中心性的节点,然后再将其传播到网络的许多不同部分。一个含有N个节点的网络的节点i的接近中心性定义为:CCi=11Nj=1NdijNj=1Ndij(6)其中,dij表示节点i到节点j的距离。由图3可以看出,企业按接近中心性的大小聚集

38、成两个集群,一个接近为 0,另一个则集中在 0.175 至 0.475 之间。如果接近中心性较高的企业开始传播错误信息,整个网络将会很快获得错误信息。但是,如果接近中心性接近为0的企业传播虚假信息,则虚假信息向整个网络的传播速度会慢得多。3.1.4特征向量中心性特征向量中心性(eigenvector centrality,EC)是显示节点与网络中其他重要节点的连接程度的指标。它根据节点及其相邻节点在网络内的连接程度来衡量节点的影响力。特征向量中心性可以识别对整个网络影响最大的节点。一个节点的重要性既取决于其邻居节点的数量,也取决于其邻居节点的重要性。高特征向量中心性意味着节点连接到本身具有高特

39、征向量中心性的其他节点。节点i的特征向量中心性定义为:ECi=cj=1naijxj(7)其中c为一个比例常数,当且仅当i与j相连时ai,j=1,否则为0。由图3可以看出,企业的特征向量中心性同样表现出长尾效应,大多数企业的特征向量中心性接近0,其余企业的特征向量中心性大致分布在0至0.15之间,并且数量逐渐减少,其中最大值为0.164,为Microsoft。该度量与企业影响整个图的能力相关联,因此具有最高特征向量中心性的企业是该网络中最重要的节点。3.2其他指标3.2.1聚类系数节点的聚类系数(clustering coefficient)定义为两个随机选择的节点彼此存在连接的概率,它反映某个

40、节点的邻接节点聚集成团的倾向。在现实网络中,节点总是趋向于建立紧密的组织关系。聚类系数越大,其所在局部网络的凝聚力越大,影响力也就相对较大。3.2.2约束度约束度(constraint)以节点对其他节点的依赖程度作为评价标准,指网络中各个节点的联系在多大程度上是冗余的。数值越大,约束性越强,网络中存在的结构洞越少;依赖性越强,则能力越小,跨越结构洞的可能性就越小。3.2.3有效规模有效规模(effective size)用于测算节点的整体影响力,该指标可以在一定程度上定量地衡量结构洞节点的重要性。4系统设计与构建本文提出了一种融合XGBoost与SHAP框架的GitHub企业影响力预测与解释系

41、统,利用机器学习方法构建预测模型,融合SHAP解释框架对各个特征的重要性进行量化和归因,进而阐释影响影响力预测结果的重要因素及其作用方式。4.1系统概述本文从企业账号信息与历史数据中提取特征,将h指数的高低作为预测变量,构建基于极端梯度提升决策树、支持向量机和多层感知机的3个企业336第 3 期王明宇等:基于机器学习的GitHub企业影响力分析与预测影响力预测模型。其中,h指数高于30的企业为高影响力企业,h指数低于或等于30的企业为低影响力企业。使用网格搜索对模型的超参数进行寻优,使用5折交叉验证评估不同参数模型的能力,将得到的最优参数组合带入模型进行预测分析。针对最优预测模型,使用目前流行

42、的SHAP解释方法,对各个特征预测结果的影响给出解释,找到对企业影响力判断影响较大的特征,并明确影响方向,提升预测模型的可靠性18。具体而言,预测系统的研究框架分成4个模块,如图4所示。(1)特征提取模块。爬取GitHub信息源中的数据,筛选、剔除无效数据后,计算得出网络指标。在此基础上,进行特征提取和筛选,确定用于建模的特征。(2)模型构建模块。使用确定的特征进行建模,分别构建基于极端梯度提升决策树、支持向量机和多层感知机的企业未来影响力预测模型。(3)模型评估模块。将3个主流机器学习算法进行性能比较,将准确率、精准率、召回率和F1分数4个指标作为模型评估指标,找出综合最优模型。(4)模型解

43、释模块。引入SHAP解释框架,对综合最优模型进行可视化和解释说明,识别影响企业影响力高低的重要因素及其作用方式。4.2特征提取本文对企业数据进行特征提取与特征筛选,确定特征项及其数值,并根据企业影响力相关特征的不同特性,将其分为企业账户特征、时间变化特征、企业关联特征3个维度。企业账户特征是指与企业GitHub账户本身相关的特征,是企业账号的固有特征,例如项目数量、贡献者数量、项目所有者ID、员工数量、主要开发语言、注册所在国家等。企业账号的固有特征有很多,考虑到模型目标是对企业影响力的高低进行预测,因此本文剔除了难以进行量化和大小比较的特征,例如项目所有者ID、主要的开发语言、注册所在国家等

44、,保留了可以进行量化和大小比较的特征,例如项目数量和贡献者数量。时间变化特征是指随着时间变化而发生演变的动态特征,包括项目数量、贡献者数量在一定时期内的变化情况。企业关联特征是指通过网络建模和计算得到的反映企业之间关联度的特征,可用于衡量企业与其他企业的连接程度。本文将所有企业之间的联系构建成一个企业社交网络,每个节点代表一个企业,每一条边代表相邻的两个企业拥有超过100个共同贡献者。企业的影响力越强,图4GitHub企业影响力预测与解释系统框架337智能科学与技术学报第 5 卷 则它在网络中的节点越重要。企业关联特征包括度量中心性、介数中心性、聚类系数等。通过人工筛选的方式,本文剔除了6家长

45、期无更新的企业,最终数据集包括480家企业。通过对企业进行网络建模和计算,得到相关性度量。最后,共确定了11个特征用于建立预测模型,分别是项目数量、贡献者数量、项目变化量、贡献者变化量、度量中心性、介数中心性、接近中心性、特征向量中心性、聚类系数、约束度和有效规模。4.3预测模型构建与调优根据企业的项目数量和star数量计算其h指数,以h指数为标签,以30为阈值,将高于该值的企业标记为高影响力企业,低于或等于该值的企业标记为低影响力企业。使用XGBoost模型对企业影响力进行建模,并将支持向量机、多层感知机这两个常用的主流机器学习模型作为对比模型进行性能比较,以验证XGBoost模型是否能提供

46、最佳结果。参数调优不仅可以最大化XGBoost模型的性能,对于防止过拟合也具有重要作用。网格搜索(GridSearch)是应用最广泛的参数搜索算法,通过循环遍历查找搜索范围内所有的参数,从而确定最优值。交叉验证可以在一定程度上减小过拟合,并从有限的数据中获取尽可能多的有效信息。因此我们使用网格搜索和交叉验证(GridSearchCV)来自动化参数的调优过程。实验结果显示,交叉验证后的最佳XGBoost超参数值为:learning_rate:0.5,n_estimators:80,min_child_weight:5,subsample:0.8。4.4模型评估随机将数据集中 80%的样本划分为训

47、练集,20%划分为测试集,预测模型仅使用来自训练集的数据建立。将训练集不重复抽样随机分成5份,每次使用其中4份训练模型,余下1份用来验证4次模型训练的准确率,重复该步骤5次,直到每个子集都有一次机会作为验证集。计算5组测试结果的平均值作为模型精度的估计,并作为当前5折交叉验证下模型的性能指标。分别对3个分类模型进行训练和分类预测。使用准确率(accuracy)、精准率(precision)、召回率(recall)、F1分数(F1-score)以及指标受试者工作特征曲线(receiver operating characteristic curves)下面积 AUC 评估模型性能,从而找出综合最

48、优模型。准确率指正确分类的样本数与总样本数之比,精准率指在所有被预测为正的样本中实际为正的样本的概率,召回率指在实际为正的样本中被预测为正样本的概率,F1分数为综合评价指标。计算方法为:accuracy=TP+TNTP+TN+FP+FN(8)precision=TPTP+FP(9)recall=TPTP+FN(10)F1_score=2precisionrecallprecision+recall(11)其中TP,FP,TN,FN分别表示真阳性、假阳性、真阴性、假阴性。4.5模型解释在完成企业影响力预测后,在综合最优模型上应用SHAP解释框架进行可视化和解释说明,大大增强预测结果的可解释性。该

49、框架可以分析影响企业影响力预测结果的重要因素,并结合SHAP3类可视化图表来阐明各特征如何影响预测结果,具体如下。(1)揭示影响的重要性,即各个特征对提升整个预测模型的贡献程度。它可以直观地反映特征对模型的影响程度,发现对预测模型影响较大的特征。运用SHAP特征重要性条形图,来反映特征对模型的影响程度,发现对企业影响力影响较大的特征。(2)反映影响的总体方向性。将特征重要性与特征效应结合分析,刻画出特征值与预测结果的总体正负关系,明确特征对预测结果的影响方向。通过绘制SHAP概要图,刻画出特征值与h指数的总体正负关系,明确特征值对企业影响力高低的影响方向。(3)特征依赖分析。通过分析各特征对企

50、业影响力的边际效应,可以反映该特征对企业影响力判断的影响方式是线性的、单调的还是复合的,并展示特征数据变动对企业影响力预测值影响的大小,即抬升力度或降低力度的大小。借助SHAP部分依赖图,分析各特征的边际效应,剖析各特征变量具体取值如何影响企业影响力高低,明确特征变量的影响方式及其影响力度(抬升力度或降低力度)。5实验结果5.1预测模型实验结果为了实现XGBoost模型构建,本文使用scikit-338第 3 期王明宇等:基于机器学习的GitHub企业影响力分析与预测learn,这是一个基于Python的机器学习库。关于XGBoost模型的参数,我们将弱学习器的数量设置为80,学习率设置为0.

展开阅读全文
相似文档                                   自信AI助手自信AI助手
猜你喜欢                                   自信AI导航自信AI导航
搜索标签

当前位置:首页 > 学术论文 > 论文指导/设计

移动网页_全站_页脚广告1

关于我们      便捷服务       自信AI       AI导航        获赠5币

©2010-2024 宁波自信网络信息技术有限公司  版权所有

客服电话:4008-655-100  投诉/维权电话:4009-655-100

gongan.png浙公网安备33021202000488号   

icp.png浙ICP备2021020529号-1  |  浙B2-20240490  

关注我们 :gzh.png    weibo.png    LOFTER.png 

客服