CN114428720A - 基于p-k的软件缺陷预测方法、装置、电子设备及介质 - Google Patents

基于p-k的软件缺陷预测方法、装置、电子设备及介质 Download PDF

Info

Publication number
CN114428720A
CN114428720A CN202011077409.5A CN202011077409A CN114428720A CN 114428720 A CN114428720 A CN 114428720A CN 202011077409 A CN202011077409 A CN 202011077409A CN 114428720 A CN114428720 A CN 114428720A
Authority
CN
China
Prior art keywords
data set
training
test data
software
knn
Prior art date
Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
Pending
Application number
CN202011077409.5A
Other languages
English (en)
Inventor
王婷婷
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
China Petroleum and Chemical Corp
Sinopec Geophysical Research Institute
Original Assignee
China Petroleum and Chemical Corp
Sinopec Geophysical Research Institute
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Application filed by China Petroleum and Chemical Corp, Sinopec Geophysical Research Institute filed Critical China Petroleum and Chemical Corp
Priority to CN202011077409.5A priority Critical patent/CN114428720A/zh
Publication of CN114428720A publication Critical patent/CN114428720A/zh
Pending legal-status Critical Current

Links

Images

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F11/00Error detection; Error correction; Monitoring
    • G06F11/36Preventing errors by testing or debugging software
    • G06F11/3604Software analysis for verifying properties of programs
    • G06F11/3608Software analysis for verifying properties of programs using formal methods, e.g. model checking, abstract interpretation
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F18/00Pattern recognition
    • G06F18/20Analysing
    • G06F18/21Design or setup of recognition systems or techniques; Extraction of features in feature space; Blind source separation
    • G06F18/213Feature extraction, e.g. by transforming the feature space; Summarisation; Mappings, e.g. subspace methods
    • G06F18/2135Feature extraction, e.g. by transforming the feature space; Summarisation; Mappings, e.g. subspace methods based on approximation criteria, e.g. principal component analysis
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F18/00Pattern recognition
    • G06F18/20Analysing
    • G06F18/21Design or setup of recognition systems or techniques; Extraction of features in feature space; Blind source separation
    • G06F18/214Generating training patterns; Bootstrap methods, e.g. bagging or boosting
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F18/00Pattern recognition
    • G06F18/20Analysing
    • G06F18/24Classification techniques
    • G06F18/241Classification techniques relating to the classification model, e.g. parametric or non-parametric approaches
    • G06F18/2413Classification techniques relating to the classification model, e.g. parametric or non-parametric approaches based on distances to training or reference patterns
    • G06F18/24147Distances to closest patterns, e.g. nearest neighbour classification

Landscapes

  • Engineering & Computer Science (AREA)
  • Theoretical Computer Science (AREA)
  • Data Mining & Analysis (AREA)
  • Physics & Mathematics (AREA)
  • General Physics & Mathematics (AREA)
  • General Engineering & Computer Science (AREA)
  • Computer Vision & Pattern Recognition (AREA)
  • Bioinformatics & Cheminformatics (AREA)
  • Evolutionary Computation (AREA)
  • Evolutionary Biology (AREA)
  • Bioinformatics & Computational Biology (AREA)
  • Artificial Intelligence (AREA)
  • Life Sciences & Earth Sciences (AREA)
  • Software Systems (AREA)
  • Computer Hardware Design (AREA)
  • Quality & Reliability (AREA)
  • Stored Programmes (AREA)

Abstract

本申请公开了一种基于P‑K的软件缺陷预测方法、装置、电子设备及介质。该方法可以包括:收集软件历史缺陷数据,将软件历史缺陷数据划分为训练数据集与测试数据集;针对训练数据集内的度量元进行降维,获得特征向量;根据降维后的训练数据集与特征向量,进行KNN分类训练;调整降维参数与KNN参数,获得最优模型;根据最优模型,针对测试数据集内的度量元进行降维,并进行KNN分类训练,预测测试数据集的缺陷。本发明解决了度量元的维数问题,较好的解决软件缺陷预测的准确度,为软件缺陷预测提供可行方法,能够对软件系统做出缺陷数目预测,为制定软件测试计划提供参考指标,更好的规划人力和时间。

Description

基于P-K的软件缺陷预测方法、装置、电子设备及介质
技术领域
本发明涉及软件测试及数据挖掘领域,更具体地,涉及一种基于P-K的软件缺陷预测方法、装置、电子设备及介质。
背景技术
从1970年开始,软件缺陷预测技术开始发展;随着软件系统规模变得越来越大,逻辑日趋复杂,软件缺陷也势必增加,影响软件质量,由于软件缺陷预测帮助测试人员了解软件的状态和质量,帮助制定交付标准,所以软件缺陷的预测也变得重要起来。
目前,软件缺陷预测分为静态和动态两种预测方法。随着软件迭代更新次数以及同类软件的增多,基于软件历史开发数据及发现的缺陷数,进行缺陷数目、类型、分布的预测成为一种切实可行方法。研究指出影响缺陷预测有3个因素,度量元的选取、缺陷预测模型的构建方法和数据集。也就是根据缺陷相关的度量元数据(代码行数、类数、方法数等),选择适当预测模型,选择适当的数据集可以有效的提高缺陷预测的转去额度。本文就基于以上静态缺陷预测方法展开研究。
怎么样从大量的开发历史数据中找到与缺陷相关的数据,也就是度量元选取问题变成首要问题,这就涉及到数据挖掘领域。现在主要运用的是PCA,LDA,LLE以及ICA等方法。其中PCA(Principle Component Analysis),主成分分析法,常用于提取数据的主要特征分量,用来对高维数据进行降维,提高运算效率。
对于静态软件缺陷预测技术,有分类、回归和基于神经网络的贝叶斯、CNN、DNN等方法,这就涉及预测模型选取问题。由于基于复杂神经网络训练模型的时间会较长,对机器性能要求较高,所以本文暂不探索研究。KNN(k-NearestNeighbor),k最近邻是监督型分类器,对有标记的数据进行训练得到模型,根据此模型对新的数据进行预测,得到标签(label)。
因此,有必要开发一种基于PCA-KNN的软件缺陷预测方法、装置、电子设备及介质。
公开于本发明背景技术部分的信息仅仅旨在加深对本发明的一般背景技术的理解,而不应当被视为承认或以任何形式暗示该信息构成已为本领域技术人员所公知的现有技术。
发明内容
本发明提出了一种基于P-K的软件缺陷预测方法、装置、电子设备及介质,其能够解决了度量元的维数问题,较好的解决软件缺陷预测的准确度,为软件缺陷预测提供可行方法,能够对软件系统做出缺陷数目预测,为制定软件测试计划提供参考指标,更好的规划人力和时间。
第一方面,本公开实施例提供了一种基于P-K的软件缺陷预测方法,包括:
收集软件历史缺陷数据,将所述软件历史缺陷数据划分为训练数据集与测试数据集;
针对所述训练数据集内的度量元进行降维,获得特征向量;
根据降维后的训练数据集与所述特征向量,进行KNN分类训练;
调整降维参数与KNN参数,获得最优模型;
根据所述最优模型,针对所述测试数据集内的度量元进行降维,并进行KNN分类训练,预测所述测试数据集的缺陷。
优选地,针对所述训练数据集内的度量元进行降维,获得特征向量包括:
通过PCA主成分分析技术,将高维数据进行特征选择,去冗余,获得前k个特征值对应的特征向量。
优选地,将高维数据进行特征选择之前,先针对所述高维数据进行标准化处理。
优选地,所述最优模型包括最优降维参数与最优KNN参数。
优选地,根据所述最优模型,针对所述测试数据集内的度量元进行降维,并进行KNN分类训练,预测所述测试数据集的缺陷包括:
根据所述最优降维参数针对所述测试数据集内的度量元进行降维,根据所述最优KNN参数进行KNN分类训练,预测所述测试数据集的缺陷。
优选地,还包括:
针对测试数据集的预测缺陷与实际缺陷进行对比,评价所述最优模型。
优选地,所述训练数据集与所述测试数据集的数据比例为7:3。
作为本公开实施例的一种具体实现方式,
第二方面,本公开实施例还提供了一种基于P-K的软件缺陷预测装置,包括:
数据集划分模块,收集软件历史缺陷数据,将所述软件历史缺陷数据划分为训练数据集与测试数据集;
降维模块,针对所述训练数据集内的度量元进行降维,获得特征向量;
训练模块,根据降维后的训练数据集与所述特征向量,进行KNN分类训练;
最优模型建立模块,调整降维参数与KNN参数,获得最优模型;
预测模块,根据所述最优模型,针对所述测试数据集内的度量元进行降维,并进行KNN分类训练,预测所述测试数据集的缺陷。
优选地,针对所述训练数据集内的度量元进行降维,获得特征向量包括:
通过PCA主成分分析技术,将高维数据进行特征选择,去冗余,获得前k个特征值对应的特征向量。
优选地,将高维数据进行特征选择之前,先针对所述高维数据进行标准化处理。
优选地,所述最优模型包括最优降维参数与最优KNN参数。
优选地,根据所述最优模型,针对所述测试数据集内的度量元进行降维,并进行KNN分类训练,预测所述测试数据集的缺陷包括:
根据所述最优降维参数针对所述测试数据集内的度量元进行降维,根据所述最优KNN参数进行KNN分类训练,预测所述测试数据集的缺陷。
优选地,还包括:
针对测试数据集的预测缺陷与实际缺陷进行对比,评价所述最优模型。
优选地,所述训练数据集与所述测试数据集的数据比例为7:3。
第三方面,本公开实施例还提供了一种电子设备,该电子设备包括:
存储器,存储有可执行指令;
处理器,所述处理器运行所述存储器中的所述可执行指令,以实现所述的基于P-K的软件缺陷预测方法。
第四方面,本公开实施例还提供了一种计算机可读存储介质,该计算机可读存储介质存储有计算机程序,该计算机程序被处理器执行时实现所述的基于P-K的软件缺陷预测方法。
本发明的方法和装置具有其它的特性和优点,这些特性和优点从并入本文中的附图和随后的具体实施方式中将是显而易见的,或者将在并入本文中的附图和随后的具体实施方式中进行详细陈述,这些附图和具体实施方式共同用于解释本发明的特定原理。
附图说明
通过结合附图对本发明示例性实施例进行更详细的描述,本发明的上述以及其它目的、特征和优势将变得更加明显,其中,在本发明示例性实施例中,相同的参考标号通常代表相同部件。
图1示出了根据本发明的一个实施例的基于P-K的软件缺陷预测方法的步骤的流程图。
图2示出了根据本发明的一个实施例的基于PCA-KNN的软件缺陷预测模型与SVM软件缺陷预测模型的对比示意图。
图3示出了根据本发明的一个实施例的一种基于P-K的软件缺陷预测装置的框图。
附图标记说明:
201、数据集划分模块;202、降维模块;203、训练模块;204、最优模型建立模块;205、预测模块。
具体实施方式
下面将更详细地描述本发明的优选实施方式。虽然以下描述了本发明的优选实施方式,然而应该理解,可以以各种形式实现本发明而不应被这里阐述的实施方式所限制。
本发明提供一种基于P-K的软件缺陷预测方法,包括:
收集软件历史缺陷数据,将软件历史缺陷数据划分为训练数据集与测试数据集;
针对训练数据集内的度量元进行降维,获得特征向量;
根据降维后的训练数据集与特征向量,进行KNN分类训练;
调整降维参数与KNN参数,获得最优模型;
根据最优模型,针对测试数据集内的度量元进行降维,并进行KNN分类训练,预测测试数据集的缺陷。
在一个示例中,针对训练数据集内的度量元进行降维,获得特征向量包括:
通过PCA主成分分析技术,将高维数据进行特征选择,去冗余,获得前k个特征值对应的特征向量。
在一个示例中,将高维数据进行特征选择之前,先针对高维数据进行标准化处理。
在一个示例中,最优模型包括最优降维参数与最优KNN参数。
在一个示例中,根据最优模型,针对测试数据集内的度量元进行降维,并进行KNN分类训练,预测测试数据集的缺陷包括:
根据最优降维参数针对测试数据集内的度量元进行降维,根据最优KNN参数进行KNN分类训练,预测测试数据集的缺陷。
在一个示例中,还包括:
针对测试数据集的预测缺陷与实际缺陷进行对比,评价最优模型。
在一个示例中,训练数据集与测试数据集的数据比例为7:3。
具体地,收集要预测的相关软件的历史数据,包括wmc(类中方法权重),dit(继承树深度),noc(一个类的直接子类数),cbo(对象间的耦合),Ic(一个类的继承耦合类的个数),loc(类的二进制码的行数)等,以上数据称为度量元,其中一个度量元是bug数目,作为标签label使用。
将收集到的软件缺陷相关数据随机选取划分为训练数据集合测试数据集,训练数据集与测试数据集的数据比例为7:3,训练数据集带标签y,测试数据集不含标签。
使用数据挖掘的PCA(主成分分析)技术,将高维(m维)数据标准化后进行特征选择,去冗余,也就是降维到k(k<m)。因为度量元从不同维度对bug的缺陷数有影响,通过PCA技术选择对bug缺陷数影响最大的几个特征作为主成分,也就是实现了降维。
经过特征处理后的训练集数据x_train和bug数目向量,输入KNN作为预测模型的分类回归算法中。调整PCA及KNN的相关参数,例如PCA的k值,KNN的neighbors个数,距离度量等来优化预测模型,通过调参,不断变换k的数值、neighbors个数、距离度量等各种组合,根据最终结果确定最优模型。
将降维的测试数据x_test作为输入,输入到最优模型中,计算测试数据和训练数据的欧式距离或者曼哈顿距离,再用交叉验证法确定K的取值。计算K个最邻距离中出现次数最多的测试数据所对应的label,既是预测到的bug数量y_pred。
通过y_pred和y_test,计算accuracy_score(准确率得分,是模型分类正确的数据除以样本总数),precision(精确度)、recall_score(召回率)、f_score(由精确度和召回率计算得出),分析算法的准确度。
本发明还提供一种基于P-K的软件缺陷预测装置,包括:
数据集划分模块,收集软件历史缺陷数据,将软件历史缺陷数据划分为训练数据集与测试数据集;
降维模块,针对训练数据集内的度量元进行降维,获得特征向量;
训练模块,根据降维后的训练数据集与特征向量,进行KNN分类训练;
最优模型建立模块,调整降维参数与KNN参数,获得最优模型;
预测模块,根据最优模型,针对测试数据集内的度量元进行降维,并进行KNN分类训练,预测测试数据集的缺陷。
在一个示例中,针对训练数据集内的度量元进行降维,获得特征向量包括:
通过PCA主成分分析技术,将高维数据进行特征选择,去冗余,获得前k个特征值对应的特征向量。
在一个示例中,将高维数据进行特征选择之前,先针对高维数据进行标准化处理。
在一个示例中,最优模型包括最优降维参数与最优KNN参数。
在一个示例中,根据最优模型,针对测试数据集内的度量元进行降维,并进行KNN分类训练,预测测试数据集的缺陷包括:
根据最优降维参数针对测试数据集内的度量元进行降维,根据最优KNN参数进行KNN分类训练,预测测试数据集的缺陷。
在一个示例中,还包括:
针对测试数据集的预测缺陷与实际缺陷进行对比,评价最优模型。
在一个示例中,训练数据集与测试数据集的数据比例为7:3。
具体地,收集要预测的相关软件的历史数据,包括wmc(类中方法权重),dit(继承树深度),noc(一个类的直接子类数),cbo(对象间的耦合),Ic(一个类的继承耦合类的个数),loc(类的二进制码的行数)等,以上数据称为度量元,其中一个度量元是bug数目,作为标签label使用。
将收集到的软件缺陷相关数据随机选取划分为训练数据集合测试数据集,训练数据集与测试数据集的数据比例为7:3,训练数据集带标签y,测试数据集不含标签。
使用数据挖掘的PCA(主成分分析)技术,将高维(m维)数据标准化后进行特征选择,去冗余,也就是降维到k(k<m)。因为度量元从不同维度对bug的缺陷数有影响,通过PCA技术选择对bug缺陷数影响最大的几个特征作为主成分,也就是实现了降维。
经过特征处理后的训练集数据x_train和bug数目向量,输入KNN作为预测模型的分类回归算法中。调整PCA及KNN的相关参数,例如PCA的k值,KNN的neighbors个数,距离度量等来优化预测模型,通过调参,不断变换k的数值、neighbors个数、距离度量等各种组合,根据最终结果确定最优模型。
将降维的测试数据x_test作为输入,输入到最优模型中,计算测试数据和训练数据的欧式距离或者曼哈顿距离,再用交叉验证法确定K的取值。计算K个最邻距离中出现次数最多的测试数据所对应的label,既是预测到的bug数量y_pred。
通过y_pred和y_test,计算accuracy_score(准确率得分,是模型分类正确的数据除以样本总数),precision(精确度)、recall_score(召回率)、f_score(由精确度和召回率计算得出),分析算法的准确度。
本发明还提供一种电子设备,电子设备包括:存储器,存储有可执行指令;处理器,处理器运行存储器中的可执行指令,以实现上述的基于P-K的软件缺陷预测方法。
本发明还提供一种计算机可读存储介质,该计算机可读存储介质存储有计算机程序,该计算机程序被处理器执行时实现上述的基于P-K的软件缺陷预测方法。
为便于理解本发明实施例的方案及其效果,以下给出四个具体应用示例。本领域技术人员应理解,该示例仅为了便于理解本发明,其任何具体细节并非意在以任何方式限制本发明。
实施例1
图1示出了根据本发明的一个实施例的基于P-K的软件缺陷预测方法的步骤的流程图。
如图1所示,该基于P-K的软件缺陷预测方法包括:步骤101,收集软件历史缺陷数据,将软件历史缺陷数据划分为训练数据集与测试数据集;步骤102,针对训练数据集内的度量元进行降维,获得特征向量;步骤103,根据降维后的训练数据集与特征向量,进行KNN分类训练;步骤104,调整降维参数与KNN参数,获得最优模型;步骤105,根据最优模型,针对测试数据集内的度量元进行降维,并进行KNN分类训练,预测测试数据集的缺陷。
收集要预测的相关软件的历史数据,包括wmc(类中方法权重),dit(继承树深度),noc(一个类的直接子类数),cbo(对象间的耦合),Ic(一个类的继承耦合类的个数),loc(类的二进制码的行数)等,以上数据称为度量元,本发明收集了21个度量元,其中一个度量元是bug数目,作为标签label使用。
将收集到的软件缺陷相关数据随机选取划分为训练数据集合测试数据集,训练数据集与测试数据集的数据比例为7:3,训练数据集带标签y,测试数据集不含标签。
使用数据挖掘的PCA(主成分分析)技术,将高维(m维)数据标准化后进行特征选择,去冗余,也就是降维到k(k<m)。因为度量元从不同维度对bug的缺陷数有影响,通过PCA技术选择对bug缺陷数影响最大的几个特征作为主成分,也就是实现了降维。
经过特征处理后的训练集数据x_train和bug数目向量,输入KNN作为预测模型的分类回归算法中。调整PCA及KNN的相关参数,例如PCA的k值,KNN的neighbors个数,距离度量等来优化预测模型,获得最优模型。
将降维的测试数据x_test作为输入,输入到最优模型中,计算测试数据和训练数据的欧式距离或者曼哈顿距离,再用交叉验证法确定K的取值。计算K个最邻距离中出现次数最多的测试数据所对应的label,既是预测到的bug数量y_pred。
通过y_pred和y_test,计算accuracy_score(准确率得分,是模型分类正确的数据除以样本总数),precision(精确度)、recall_score(召回率)、f_score(由精确度和召回率计算得出),分析算法的准确度。
图2示出了根据本发明的一个实施例的基于KPCA-Bayes的软件缺陷预测模型与SVM软件缺陷预测模型的对比示意图,纵轴代表分数。
图2可以看出,在准确率上本发明模型得分为0.874,svm得分0.787;f-score得分分别是0.534和0.293,precision得分分别是0.565和0.271,recall得分分别是0.530和0.293。因此,基于PCA-KNN的软件缺陷预测模型具有较优的准确率,较好避免出现假阴性、假阳性的预测。
实施例2
图3示出了根据本发明的一个实施例的一种基于P-K的软件缺陷预测装置的框图。
如图3所示,该基于P-K的软件缺陷预测装置,包括:
数据集划分模块201,收集软件历史缺陷数据,将软件历史缺陷数据划分为训练数据集与测试数据集;
降维模块202,针对训练数据集内的度量元进行降维,获得特征向量;
训练模块203,根据降维后的训练数据集与特征向量,进行KNN分类训练;
最优模型建立模块204,调整降维参数与KNN参数,获得最优模型;
预测模块205,根据最优模型,针对测试数据集内的度量元进行降维,并进行KNN分类训练,预测测试数据集的缺陷。
作为可选方案,针对训练数据集内的度量元进行降维,获得特征向量包括:
通过PCA主成分分析技术,将高维数据进行特征选择,去冗余,获得前k个特征值对应的特征向量。
作为可选方案,将高维数据进行特征选择之前,先针对高维数据进行标准化处理。
作为可选方案,最优模型包括最优降维参数与最优KNN参数。
作为可选方案,根据最优模型,针对测试数据集内的度量元进行降维,并进行KNN分类训练,预测测试数据集的缺陷包括:
根据最优降维参数针对测试数据集内的度量元进行降维,根据最优KNN参数进行KNN分类训练,预测测试数据集的缺陷。
作为可选方案,还包括:
针对测试数据集的预测缺陷与实际缺陷进行对比,评价最优模型。
作为可选方案,训练数据集与测试数据集的数据比例为7:3。
实施例3
本公开提供一种电子设备包括,该电子设备包括:存储器,存储有可执行指令;处理器,处理器运行存储器中的可执行指令,以实现上述基于P-K的软件缺陷预测方法。
根据本公开实施例的电子设备包括存储器和处理器。
该存储器用于存储非暂时性计算机可读指令。具体地,存储器可以包括一个或多个计算机程序产品,该计算机程序产品可以包括各种形式的计算机可读存储介质,例如易失性存储器和/或非易失性存储器。该易失性存储器例如可以包括随机存取存储器(RAM)和/或高速缓冲存储器(cache)等。该非易失性存储器例如可以包括只读存储器(ROM)、硬盘、闪存等。
该处理器可以是中央处理单元(CPU)或者具有数据处理能力和/或指令执行能力的其它形式的处理单元,并且可以控制电子设备中的其它组件以执行期望的功能。在本公开的一个实施例中,该处理器用于运行该存储器中存储的该计算机可读指令。
本领域技术人员应能理解,为了解决如何获得良好用户体验效果的技术问题,本实施例中也可以包括诸如通信总线、接口等公知的结构,这些公知的结构也应包含在本公开的保护范围之内。
有关本实施例的详细说明可以参考前述各实施例中的相应说明,在此不再赘述。
实施例4
本公开实施例提供一种计算机可读存储介质,该计算机可读存储介质存储有计算机程序,该计算机程序被处理器执行时实现所述的基于P-K的软件缺陷预测方法。
根据本公开实施例的计算机可读存储介质,其上存储有非暂时性计算机可读指令。当该非暂时性计算机可读指令由处理器运行时,执行前述的本公开各实施例方法的全部或部分步骤。
上述计算机可读存储介质包括但不限于:光存储介质(例如:CD-ROM和DVD)、磁光存储介质(例如:MO)、磁存储介质(例如:磁带或移动硬盘)、具有内置的可重写非易失性存储器的媒体(例如:存储卡)和具有内置ROM的媒体(例如:ROM盒)。
本领域技术人员应理解,上面对本发明的实施例的描述的目的仅为了示例性地说明本发明的实施例的有益效果,并不意在将本发明的实施例限制于所给出的任何示例。
以上已经描述了本发明的各实施例,上述说明是示例性的,并非穷尽性的,并且也不限于所披露的各实施例。在不偏离所说明的各实施例的范围和精神的情况下,对于本技术领域的普通技术人员来说许多修改和变更都是显而易见的。

Claims (10)

1.一种基于P-K的软件缺陷预测方法,其特征在于,包括:
收集软件历史缺陷数据,将所述软件历史缺陷数据划分为训练数据集与测试数据集;
针对所述训练数据集内的度量元进行降维,获得特征向量;
根据降维后的训练数据集与所述特征向量,进行KNN分类训练;
调整降维参数与KNN参数,获得最优模型;
根据所述最优模型,针对所述测试数据集内的度量元进行降维,并进行KNN分类训练,预测所述测试数据集的缺陷。
2.根据权利要求1所述的基于P-K的软件缺陷预测方法,其中,针对所述训练数据集内的度量元进行降维,获得特征向量包括:
通过PCA主成分分析技术,将高维数据进行特征选择,去冗余,获得前k个特征值对应的特征向量。
3.根据权利要求2所述的基于P-K的软件缺陷预测方法,其中,将高维数据进行特征选择之前,先针对所述高维数据进行标准化处理。
4.根据权利要求1所述的基于P-K的软件缺陷预测方法,其中,所述最优模型包括最优降维参数与最优KNN参数。
5.根据权利要求4所述的基于P-K的软件缺陷预测方法,其中,根据所述最优模型,针对所述测试数据集内的度量元进行降维,并进行KNN分类训练,预测所述测试数据集的缺陷包括:
根据所述最优降维参数针对所述测试数据集内的度量元进行降维,根据所述最优KNN参数进行KNN分类训练,预测所述测试数据集的缺陷。
6.根据权利要求1所述的基于P-K的软件缺陷预测方法,其中,还包括:
针对测试数据集的预测缺陷与实际缺陷进行对比,评价所述最优模型。
7.根据权利要求1所述的基于P-K的软件缺陷预测方法,其中,所述训练数据集与所述测试数据集的数据比例为7:3。
8.一种基于P-K的软件缺陷预测装置,其特征在于,包括:
数据集划分模块,收集软件历史缺陷数据,将所述软件历史缺陷数据划分为训练数据集与测试数据集;
降维模块,针对所述训练数据集内的度量元进行降维,获得特征向量;
训练模块,根据降维后的训练数据集与所述特征向量,进行KNN分类训练;
最优模型建立模块,调整降维参数与KNN参数,获得最优模型;
预测模块,根据所述最优模型,针对所述测试数据集内的度量元进行降维,并进行KNN分类训练,预测所述测试数据集的缺陷。
9.一种电子设备,其特征在于,所述电子设备包括:
存储器,存储有可执行指令;
处理器,所述处理器运行所述存储器中的所述可执行指令,以实现权利要求1-7中任一项所述的基于P-K的软件缺陷预测方法。
10.一种计算机可读存储介质,其特征在于,该计算机可读存储介质存储有计算机程序,该计算机程序被处理器执行时实现权利要求1-7中任一项所述的基于P-K的软件缺陷预测方法。
CN202011077409.5A 2020-10-10 2020-10-10 基于p-k的软件缺陷预测方法、装置、电子设备及介质 Pending CN114428720A (zh)

Priority Applications (1)

Application Number Priority Date Filing Date Title
CN202011077409.5A CN114428720A (zh) 2020-10-10 2020-10-10 基于p-k的软件缺陷预测方法、装置、电子设备及介质

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
CN202011077409.5A CN114428720A (zh) 2020-10-10 2020-10-10 基于p-k的软件缺陷预测方法、装置、电子设备及介质

Publications (1)

Publication Number Publication Date
CN114428720A true CN114428720A (zh) 2022-05-03

Family

ID=81310382

Family Applications (1)

Application Number Title Priority Date Filing Date
CN202011077409.5A Pending CN114428720A (zh) 2020-10-10 2020-10-10 基于p-k的软件缺陷预测方法、装置、电子设备及介质

Country Status (1)

Country Link
CN (1) CN114428720A (zh)

Cited By (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN115599698A (zh) * 2022-11-30 2023-01-13 北京航空航天大学(Cn) 一种基于类关联规则的软件缺陷预测方法及系统

Cited By (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN115599698A (zh) * 2022-11-30 2023-01-13 北京航空航天大学(Cn) 一种基于类关联规则的软件缺陷预测方法及系统

Similar Documents

Publication Publication Date Title
US11640563B2 (en) Automated data processing and machine learning model generation
US11328220B2 (en) Prediction characterization for black box machine learning models
US20180082215A1 (en) Information processing apparatus and information processing method
WO2023116111A1 (zh) 一种磁盘故障预测方法及装置
WO2013125482A1 (ja) 文書評価装置、文書評価方法、及びコンピュータ読み取り可能な記録媒体
CN109376535B (zh) 一种基于智能化符号执行的漏洞分析方法及系统
US11556785B2 (en) Generation of expanded training data contributing to machine learning for relationship data
CN110795736B (zh) 一种基于svm决策树的恶意安卓软件检测方法
CN117273004A (zh) 模型训练方法、装置及计算机可读存储介质
CN118276913A (zh) 一种基于人工智能的代码补全方法
CN110716761A (zh) 信息处理平台上软件应用的执行参数的自动和自优化确定
CN114428720A (zh) 基于p-k的软件缺陷预测方法、装置、电子设备及介质
KR20210158740A (ko) 기계학습 성능 기반 클러스터링 평가 장치 및 그 방법
CN112783513A (zh) 一种代码风险检查方法、装置及设备
CN114428719A (zh) 基于k-b的软件缺陷预测方法、装置、电子设备及介质
CN116756662A (zh) 基于哈里斯鹰算法优化随机森林的良率预测方法及系统
US20220051077A1 (en) System and method for selecting components in designing machine learning models
CN113743448B (zh) 模型训练数据获取方法、模型训练方法和装置
CN115238645A (zh) 资产数据识别方法、装置、电子设备和计算机存储介质
WO2022174436A1 (zh) 分类模型增量学习实现方法、装置、电子设备及介质
Barbareschi et al. Investigating the Resilience Source of Classification Systems for Approximate Computing Techniques
CN104750734B (zh) 基于线性支持向量机的分类方法及装置
CN113158117A (zh) 一种网站访问量预测方法、装置及设备
CN113569953A (zh) 分类模型的训练方法、装置及电子设备
US20230135468A1 (en) Non-transitory computer-readable storage medium for storing machine learning program, machine learning method, and machine learning apparatus

Legal Events

Date Code Title Description
PB01 Publication
PB01 Publication
SE01 Entry into force of request for substantive examination
SE01 Entry into force of request for substantive examination