1.一种基于多特征的开源软件项目孵化状态预测方法,其特征在于,包括如下步骤:步骤1:收集关于Apache项目的文件提交以及邮件交流的历史数据;
步骤2:根据项目的前设定时间段的历史数据,构建项目成员社交网络;
所述步骤2中,根据步骤1中的项目前设定时间段的历史数据,构建项目成员社交网络,项目成员社交网络为一个由集合V、E和W组成的有向图,记为G=(V,E,W),其中V={v1,v2,…,vN}是节点的集合,表示邮件的参与人员,包括收件人和发件人; 是有向连边的集合,连边方向是从邮件的发件人指向收件人;W=(wij)N×N是连边权重的集合,表示两人的邮件交流次数;
步骤3:提取前设定时间段历史数据中的属性特征和网络特征;
所述步骤3中,网络特征提取包括以下过程:
1)前设定时间段邮件网络的节点数量|V|,项目成员社交网络的节点集合是:V={v1,v2,…,vN}, (1)其中,vi,是一个节点,(1≤i≤N),节点的集合大小用|V|=N表示;
2)前设定时间段邮件网络的连边数量|E|,项目成员社交网络的边的集合是:其中,(vi,vj)∈E表示节点vi到节点vj的边,边的集合的大小用|E|=M表示;
3)前设定时间段邮件网络的特征向量中心性ce(G),计算如下:其中网络图G中节点vi的特征向量中心性ce(vi),计算如下:其中,γ是一个比例常数,Aij表示网络的加权邻接矩阵的元素,T
假设Ce=(ce(v1),ce(v2),…,ce(vN)) 是所有节点的中心向量,则式(4)写成如下矩阵形式:
T
γCe=ACe, (5)
T
其中,A=(Aij)N×N表示加权邻接矩阵,γ是对应的特征值,Ce是邻接矩阵A的特征向量;
4)前设定时间段邮件网络的恢复力β,计算如下:T
其中,1=(1,…,1) 表示单位向量, 表示入度的加权度向量,
5)前设定时间段邮件网络的密度D,计算如下:其中,|E|表示网络的实际总边数;
6)前设定时间段邮件网络的度匹配性r,计算如下:其中,ki和kj表示一条连边两个端点的度数,H表示网络中所有连边的总权重,wij表示节点vi到节点vj的连边权重;
7)前设定时间段邮件网络的聚类系数C,计算如下:其中网络图G中节点vi的聚类系数Ci,计算如下:si=∑jwij表示节点vi的强度,ki表示节点vi的度,所述步骤3中,对前设定时间段属性特征的提取,属性特征包括:①前设定时间段的平均程序员数量;②前设定时间段的平均邮件数量;③前设定时间段的平均提交数量;
步骤4:采用机器学习分类器模型支持向量机SVM,选取核函数,构建多特征的开源软件项目孵化状态的预测模型,并进行十折交叉验证,得出测试精度。
2.如权利要求1所述的一种基于多特征的开源软件项目孵化状态预测方法,其特征在于:所述步骤1中,收集历史数据,文件提取信息包括:程序员的ID,提交文件的时间,以及被提交文件的ID;邮件交流信息包括:发件人ID,收件人ID,以及交流的发生时间。
3.如权利要求1所述的一种基于多特征的开源软件项目孵化状态预测方法,其特征在于:所述步骤4中,支持向量机SVM二分类模型的构建过程如下:首先,确定核函数的选取,使用高斯核RBF,即样本xi和xj之间在特征空间的内积用它们在原始样本空间中通过函数k(xi,xj)来计算,其表达式如下:其中,δ表示高斯核的带宽;
然后进行通过网格算法寻找SVM模型的参数最优值,再进行十折交叉验证,进行多次测试取平均,得出基于多特征的开源软件项目孵化状态预测方法的精度指标。