在研究人员急于跨所有可用数据或尝试复杂的方法之前,可能是首先检查更简单的替代方案。具体而言,如果历史数据在某些小区域中具有最多的信息,那么也许从该地区学习的模型就足够了,这是项目的其余部分。为支持这一索赔,我们提供了一个案例研究,其中包含240个GitHub项目,在那里我们发现这些项目中的信息“被聚集”朝向项目的最早部分。从前150个提交的缺陷预测模型也有效,或者比最先进的替代品更好。只使用这个早期生命周期数据,我们可以非常快速地构建模型,很早就在软件项目生命周期中。此外,使用这种方法,我们已经显示了一个简单的模型(只有两个功能)概括为数百个软件项目。基于这种经验,我们怀疑概括软件工程缺陷预测模型的事先工作可能有不必要的复杂化本身简单的过程。此外,在从相对无关的区域中得出的结论以来,需要重新讨论焦点生命周期数据的事先工作。 Replication注意:我们所有的数据和脚本都在https://github.com/snaraya7/simplify-software-analytics上线
translated by 谷歌翻译
Labeling a module defective or non-defective is an expensive task. Hence, there are often limits on how much-labeled data is available for training. Semi-supervised classifiers use far fewer labels for training models, but there are numerous semi-supervised methods, including self-labeling, co-training, maximal-margin, and graph-based methods, to name a few. Only a handful of these methods have been tested in SE for (e.g.) predicting defects and even that, those tests have been on just a handful of projects. This paper takes a wide range of 55 semi-supervised learners and applies these to over 714 projects. We find that semi-supervised "co-training methods" work significantly better than other approaches. However, co-training needs to be used with caution since the specific choice of co-training methods needs to be carefully selected based on a user's specific goals. Also, we warn that a commonly-used co-training method ("multi-view"-- where different learners get different sets of columns) does not improve predictions (while adding too much to the run time costs 11 hours vs. 1.8 hours). Those cautions stated, we find using these "co-trainers," we can label just 2.5% of data, then make predictions that are competitive to those using 100% of the data. It is an open question worthy of future work to test if these reductions can be seen in other areas of software analytics. All the codes used and datasets analyzed during the current study are available in the https://GitHub.com/Suvodeep90/Semi_Supervised_Methods.
translated by 谷歌翻译
Automatically generated static code warnings suffer from a large number of false alarms. Hence, developers only take action on a small percent of those warnings. To better predict which static code warnings should not be ignored, we suggest that analysts need to look deeper into their algorithms to find choices that better improve the particulars of their specific problem. Specifically, we show here that effective predictors of such warnings can be created by methods that locally adjust the decision boundary (between actionable warnings and others). These methods yield a new high water-mark for recognizing actionable static code warnings. For eight open-source Java projects (cassandra, jmeter, commons, lucene-solr, maven, ant, tomcat, derby) we achieve perfect test results on 4/8 datasets and, overall, a median AUC (area under the true negatives, true positives curve) of 92%.
translated by 谷歌翻译
血浆定义为物质的第四个状态,在高电场下可以在大气压下产生非热血浆。现在众所周知,血浆激活液体(PAL)的强和广谱抗菌作用。机器学习(ML)在医疗领域的可靠适用性也鼓励其在等离子体医学领域的应用。因此,在PALS上的ML应用可以提出一种新的观点,以更好地了解各种参数对其抗菌作用的影响。在本文中,通过使用先前获得的数据来定性预测PAL的体外抗菌活性,从而介绍了比较监督的ML模型。进行了文献搜索,并从33个相关文章中收集了数据。在所需的预处理步骤之后,将两种监督的ML方法(即分类和回归)应用于数据以获得微生物灭活(MI)预测。对于分类,MI分为四类,对于回归,MI被用作连续变量。为分类和回归模型进行了两种不同的可靠交叉验证策略,以评估所提出的方法。重复分层的K折交叉验证和K折交叉验证。我们还研究了不同特征对模型的影响。结果表明,高参数优化的随机森林分类器(ORFC)和随机森林回归者(ORFR)分别比其他模型进行了分类和回归的模型更好。最后,获得ORFC的最佳测试精度为82.68%,ORFR的R2为0.75。 ML技术可能有助于更好地理解在所需的抗菌作用中具有主要作用的血浆参数。此外,此类发现可能有助于将来的血浆剂量定义。
translated by 谷歌翻译
软件错误预测预测是一个活跃的研究领域,许多因素影响了预测性能。但是,除了一项初始工作外,尚未研究学习方法(即,用于培训和预测目标变量的数据的细节)对预测性能的影响。本文探讨了两种学习方法的影响,即Useallpredictall和usePredictPost,对软件错误预测预测的性能,包括释放内部和跨释放。经验结果基于从十二个开源项目的64个版本中提取的数据。结果表明,学习方法对分类表现有实质性的,通常未被承认的影响。具体而言,使用USEALLPREDICTALL导致的性能要比使用释放和跨释放的UsePrepredictPost学习方法要好得多。此外,本文发现,对于释放内部预测,分类性能的这种差异是由于两种学习方法中的类不平衡级别引起的。解决课堂失衡时,消除了学习方法之间的性能差异。我们的发现暗示,应始终明确识别学习方法及其对软件缺陷预订预测的影响。本文最后讨论了我们的研究和实践结果的潜在后果。
translated by 谷歌翻译
In the last decade, several studies have explored automated techniques to estimate the effort of agile software development. We perform a close replication and extension of a seminal work proposing the use of Deep Learning for Agile Effort Estimation (namely Deep-SE), which has set the state-of-the-art since. Specifically, we replicate three of the original research questions aiming at investigating the effectiveness of Deep-SE for both within-project and cross-project effort estimation. We benchmark Deep-SE against three baselines (i.e., Random, Mean and Median effort estimators) and a previously proposed method to estimate agile software project development effort (dubbed TF/IDF-SVM), as done in the original study. To this end, we use the data from the original study and an additional dataset of 31,960 issues mined from TAWOS, as using more data allows us to strengthen the confidence in the results, and to further mitigate external validity threats. The results of our replication show that Deep-SE outperforms the Median baseline estimator and TF/IDF-SVM in only very few cases with statistical significance (8/42 and 9/32 cases, respectively), thus confounding previous findings on the efficacy of Deep-SE. The two additional RQs revealed that neither augmenting the training set nor pre-training Deep-SE play lead to an improvement of its accuracy and convergence speed. These results suggest that using semantic similarity is not enough to differentiate user stories with respect to their story points; thus, future work has yet to explore and find new techniques and features that obtain accurate agile software development estimates.
translated by 谷歌翻译
无论是在功能选择的领域还是可解释的AI领域,都有基于其重要性的“排名”功能的愿望。然后可以将这种功能重要的排名用于:(1)减少数据集大小或(2)解释机器学习模型。但是,在文献中,这种特征排名没有以系统的,一致的方式评估。许多论文都有不同的方式来争论哪些具有重要性排名最佳的特征。本文通过提出一种新的评估方法来填补这一空白。通过使用合成数据集,可以事先知道特征重要性得分,从而可以进行更系统的评估。为了促进使用新方法的大规模实验,在Python建造了一个名为FSEVAL的基准测定框架。该框架允许并行运行实验,并在HPC系统上的计算机上分布。通过与名为“权重和偏见”的在线平台集成,可以在实时仪表板上进行交互探索图表。该软件作为开源软件发布,并在PYPI平台上以包裹发行。该研究结束时,探索了一个这样的大规模实验,以在许多方面找到参与算法的优势和劣势。
translated by 谷歌翻译
软件开发互动期间的有毒对话可能会对免费开源软件(FOSS)开发项目产生严重影响。例如,有毒对话的受害者可能会害怕表达自己,因此会丧失自己的动力,并最终可能离开该项目。自动过滤有毒的对话可能有助于福斯社区保持其成员之间的健康互动。但是,现成的毒性探测器在软件工程(SE)数据集上的表现较差,例如从代码审查评论中策划的一个。为了遇到这一挑战,我们提出了毒性,这是一种基于学习的基于学习的毒性识别工具,用于代码审查互动。有毒物质包括选择一种监督学习算法之一,选择文本矢量化技术,八个预处理步骤以及一个大规模标记的数据集,其中包括19,571个代码评论评论。在这八个预处理步骤中,有两个是特定于SE域。通过对预处理步骤和矢量化技术的各种组合的模型进行严格的评估,我们已经确定了数据集的最佳组合,可提高95.8%的精度和88.9%的F1得分。毒性明显优于我们数据集中的现有毒性探测器。我们已发布了数据集,预处理的模型,评估结果和源代码,网址为:https://github.com/wsu-seal/toxicr
translated by 谷歌翻译
大多数机器学习算法由一个或多个超参数配置,必须仔细选择并且通常会影响性能。为避免耗时和不可递销的手动试验和错误过程来查找性能良好的超参数配置,可以采用各种自动超参数优化(HPO)方法,例如,基于监督机器学习的重新采样误差估计。本文介绍了HPO后,本文审查了重要的HPO方法,如网格或随机搜索,进化算法,贝叶斯优化,超带和赛车。它给出了关于进行HPO的重要选择的实用建议,包括HPO算法本身,性能评估,如何将HPO与ML管道,运行时改进和并行化结合起来。这项工作伴随着附录,其中包含关于R和Python的特定软件包的信息,以及用于特定学习算法的信息和推荐的超参数搜索空间。我们还提供笔记本电脑,这些笔记本展示了这项工作的概念作为补充文件。
translated by 谷歌翻译
在过去的二十年中,几个机器学习(ML)库已自由使用。许多研究都使用此类图书馆对预测软件工程(SE)任务进行实证研究。但是,使用一个库在另一个库上使用的差异被忽略了,隐含地假设使用这些库中的任何一个都会为用户提供相同或非常相似的结果。本文旨在提高人们对使用不同ML库进行软件开发工作估算(见)时所产生的差异的认识,这是研究最广泛的SE预测任务之一。为此,我们研究了3个最受欢迎的ML开源库(即不同语言)(即Scikit-Learn,Caret和Weka)提供的4个确定性机器学习者。我们进行了一项彻底的实证研究,比较了机器学习者在5个最常见的数据集上的性能,请参见方案(即,盒子内ML和TUNED-ML)以及深入的分析其API的文档和代码。我们的研究结果表明,在总共研究的105例病例中,这3个文库提供的预测平均为95%。在大多数情况下,这些差异明显很大,并且误容最多。每个项目3,000小时。此外,我们的API分析表明,这些库为用户提供了可以操纵参数的不同级别的控制,并且总体上缺乏清晰度和一致性,这可能会误导用户。我们的发现强调,ML库是参观研究的重要设计选择,这可能会导致性能差异。但是,这种差异不足。最后,我们通过强调开放式挑战,对图书馆的开发商以及使用它们的研究人员和从业者提出建议。
translated by 谷歌翻译
在这项工作中,我们审查并评估了一个具有公开可用和广泛使用的数据集的深度学习知识追踪(DLKT)模型,以及学习编程的新型学生数据集。评估的DLKT模型已重新实现,用于评估先前报告的结果的可重复性和可复制性。我们测试在与模型的主要架构上独立于模型的比较模型中找到的不同输入和输出层变化,以及在某些研究中隐含地和明确地使用的不同最大尝试计数选项。几个指标用于反映评估知识追踪模型的质量。评估的知识追踪模型包括Vanilla-DKT,两个长短期内存深度知识跟踪(LSTM-DKT)变体,两个动态键值存储器网络(DKVMN)变体,以及自我细致的知识跟踪(SAKT)。我们评估Logistic回归,贝叶斯知识跟踪(BKT)和简单的非学习模型作为基准。我们的结果表明,DLKT模型一般优于非DLKT模型,DLKT模型之间的相对差异是微妙的,并且在数据集之间经常变化。我们的研究结果还表明,通常的纯模型,例如平均预测,比更复杂的知识追踪模型更好地表现出更好的性能,尤其是在准确性方面。此外,我们的公制和封路数据分析显示,用于选择最佳模型的度量标准对模型的性能有明显的影响,并且该度量选择可以影响模型排名。我们还研究了输入和输出层变化的影响,过滤出长期尝试序列,以及随机性和硬件等非模型属性。最后,我们讨论模型性能可重量和相关问题。我们的模型实现,评估代码和数据作为本工作的一部分发布。
translated by 谷歌翻译
上下文:差分测试是一种有用的方法,它使用相同算法的不同实现,并比较软件测试的结果。近年来,这种方法已成功用于深度学习框架的测试活动。目的:对超出深度学习的差异测试的应用几乎没有知识。在本文中,我们要缩小此差距以进行分类算法。方法:我们使用Scikit-Learn,Weka,Spark Mllib和Caret进行了案例研究,在其中我们通过考虑哪些算法在多个框架中可用,通过识别应识别的算法对应表现出相同的算法来确定差异测试的潜力。行为,以及通过执行确定对的测试并分析偏差来实现的有效性。结果:尽管我们发现流行算法的潜力很大,但可行性似乎有限,因为通常无法确定其他框架中相同的配置。可行测试的执行表明,分数和类别存在很大的偏差。只有基于班级统计意义的宽松方法不会导致大量的测试失败。结论:超出深度学习的差异测试的潜力似乎有限用于研究机器学习库的质量。如果从业人员对实施有深入的了解,则可能仍然使用该方法,尤其是如果仅考虑班级显着差异的粗糙甲骨文就足够了。
translated by 谷歌翻译
GitHub是Internet上最大的开源软件主机。这个大型,可自由访问的数据库吸引了从业人员和研究人员的注意。但是,随着Github的增长的继续,越来越难以导航遍布广泛领域的大量存储库。过去的工作表明,考虑到应用程序域对于预测存储库的普及以及有关项目质量的推理的任务至关重要。在这项工作中,我们建立在先前注释的5,000个GitHub存储库的数据集上,以设计自动分类器,以通过其应用程序域对存储库进行分类。分类器使用最先进的自然语言处理技术和机器学习,根据五个应用程序域从多个数据源和目录存储库中学习。我们用(1)自动分类器贡献,该分类器可以将流行的存储库分配给每个应用程序域,至少具有70%的精度,(2)对该方法在不流行的存储库中的性能进行调查,以及(3)这种方法对这种方法的实际应用程序,用于回答软件工程实践的采用如何在应用程序域之间有何不同。我们的工作旨在帮助GitHub社区确定感兴趣的存储库,并为未来的工作开放有希望的途径,以调查来自不同应用领域的存储库之间的差异。
translated by 谷歌翻译
本文调查了股票回购,特别是分享回购公告。它解决了如何识别此类公告,股票回购的超额回报以及股票回购公告后的回报的预测。我们说明了两种NLP方法,用于自动检测股票回购公告。即使有少量的培训数据,我们也可以达到高达90%的准确性。该论文利用这些NLP方法生成一个由57,155个股票回购公告组成的大数据集。通过分析该数据集,本论文的目的是表明大多数宣布回购的公司的大多数公司都表现不佳。但是,少数公司的表现极大地超过了MSCI世界。当查看所有公司的平均值时,这种重要的表现过高会导致净收益。如果根据公司的规模调整了基准指数,则平均表现过高,并且大多数表现不佳。但是,发现宣布股票回购的公司至少占其市值的1%,即使使用调整后的基准,也平均交付了显着的表现。还发现,在危机时期宣布股票回购的公司比整个市场更好。此外,生成的数据集用于训练72个机器学习模型。通过此,它能够找到许多可以达到高达77%并产生大量超额回报的策略。可以在六个不同的时间范围内改善各种性能指标,并确定明显的表现。这是通过训练多个模型的不同任务和时间范围以及结合这些不同模型的方法来实现的,从而通过融合弱学习者来产生重大改进,以创造一个强大的学习者。
translated by 谷歌翻译
上下文:测试气味是开发测试用例时采用的亚最佳设计选择的症状。先前的研究证明了它们对测试代码可维护性和有效性的有害性。因此,研究人员一直在提出基于启发式的自动化技术来检测它们。但是,此类探测器的性能仍然有限,并且取决于要调整的阈值。目的:我们提出了基于机器学习来检测四种测试气味的新型测试气味检测方法的设计和实验。方法:我们计划开发最大的手动验证测试气味数据集。该数据集将被利用来训练六个机器学习者,并在跨项目内和跨项目内评估其功能。最后,我们计划将我们的方法与最新的基于启发式的技术进行比较。
translated by 谷歌翻译
Automated Program Repair (APR) is defined as the process of fixing a bug/defect in the source code, by an automated tool. APR tools have recently experienced promising results by leveraging state-of-the-art Neural Language Processing (NLP) techniques. APR tools such as TFix and CodeXGLUE combine text-to-text transformers with software-specific techniques are outperforming alternatives, these days. However, in most APR studies the train and test sets are chosen from the same set of projects. In reality, however, APR models are meant to be generalizable to new and different projects. Therefore, there is a potential threat that reported APR models with high effectiveness perform poorly when the characteristics of the new project or its bugs are different than the training set's(Domain Shift). In this study, we first define and measure the domain shift problem in automated program repair. Then, we then propose a domain adaptation framework that can adapt an APR model for a given target project. We conduct an empirical study with three domain adaptation methods FullFineTuning, TuningWithLightWeightAdapterLayers, and CurriculumLearning using two state-of-the-art domain adaptation tools (TFix and CodeXGLUE) and two APR models on 611 bugs from 19 projects. The results show that our proposed framework can improve the effectiveness of TFix by 13.05% and CodeXGLUE by 23.4%. Another contribution of this study is the proposal of a data synthesis method to address the lack of labelled data in APR. We leverage transformers to create a bug generator model. We use the generated synthetic data to domain adapt TFix and CodeXGLUE on the projects with no data (Zero-shot learning), which results in an average improvement of 5.76% and 24.42% for TFix and CodeXGLUE, respectively.
translated by 谷歌翻译
我们查看模型可解释性的特定方面:模型通常需要限制在大小上才能被认为是可解释的,例如,深度5的决策树比深度50中的一个更容易解释。但是,较小的模型也倾向于高偏见。这表明可解释性和准确性之间的权衡。我们提出了一种模型不可知论技术,以最大程度地减少这种权衡。我们的策略是首先学习甲骨文,这是培训数据上高度准确的概率模型。 Oracle预测的不确定性用于学习培训数据的抽样分布。然后,对使用此分布获得的数据样本进行了可解释的模型,通常会导致精确度明显更高。我们将抽样策略作为优化问题。我们的解决方案1具有以下关键的有利属性:(1)它使用固定数量的七个优化变量,而与数据的维度(2)无关,它是模型不可知的 - 因为可解释的模型和甲骨文都可能属于任意性模型家族(3)它具有模型大小的灵活概念,并且可以容纳向量大小(4)它是一个框架,使其能够从优化领域的进度中受益。我们还提出了以下有趣的观察结果:(a)通常,小型模型大小的最佳训练分布与测试分布不同; (b)即使可解释的模型和甲骨文来自高度截然不同的模型家族,也存在这种效果:我们通过使用封闭的复发单位网络作为甲骨文来提高决策树的序列分类精度,从而在文本分类任务上显示此效果。使用字符n-grams; (c)对于模型,我们的技术可用于确定给定样本量的最佳训练样本。
translated by 谷歌翻译
比较不同的汽车框架是具有挑战性的,并且经常做错了。我们引入了一个开放且可扩展的基准测试,该基准遵循最佳实践,并在比较自动框架时避免常见错误。我们对71个分类和33项回归任务进行了9个著名的自动框架进行了详尽的比较。通过多面分析,评估模型的准确性,与推理时间的权衡以及框架失败,探索了自动框架之间的差异。我们还使用Bradley-terry树来发现相对自动框架排名不同的任务子集。基准配备了一个开源工具,该工具与许多自动框架集成并自动化经验评估过程端到端:从框架安装和资源分配到深入评估。基准测试使用公共数据集,可以轻松地使用其他Automl框架和任务扩展,并且具有最新结果的网站。
translated by 谷歌翻译
越来越多的工作已经认识到利用机器学习(ML)进步的重要性,以满足提取访问控制属性,策略挖掘,策略验证,访问决策等有效自动化的需求。在这项工作中,我们调查和总结了各种ML解决不同访问控制问题的方法。我们提出了ML模型在访问控制域中应用的新分类学。我们重点介绍当前的局限性和公开挑战,例如缺乏公共现实世界数据集,基于ML的访问控制系统的管理,了解黑盒ML模型的决策等,并列举未来的研究方向。
translated by 谷歌翻译
目的:我们研究使用机器学习(ML)模型的可解释的累入预测,并在预测能力,稀疏性和公平性方面分析性能。与以前的作品不同,本研究列举了输出概率而不是二进制预测的可解释模型,并使用定量公平定义来评估模型。本研究还研究了模型是否可以横跨地理位置概括。方法:我们在佛罗里达州和肯塔基州的两个不同的刑事核查数据集上生成了黑盒和可解释的ML模型。我们将这些模型的预测性能和公平与目前用于司法系统中使用的两种方法进行了比较,以预测审前常规率:Arnold PSA和Compas。我们评估了所有模型的预测性能,可以在两次跨越两次预测六种不同类型犯罪的模型。结果:几种可解释的ML模型可以预测常规和黑盒ML模型,比Compas或Arnold PSA更准确。这些模型在实践中可能有用。类似于Arnold PSA,这些可解释模型中的一些可以作为一个简单的表格写入。其他可以使用一组可视化显示。我们的地理分析表明ML模型应分开培训,以便单独的位置并随时间更新。我们还为可​​解释模型提供了公平分析。结论:可解释的机器学习模型可以在预测准确性和公平性方面表现,也可以表现,也可以表现,也可以执行不可解释的方法和目前使用的风险评估尺度。机器学习模型对于单独培训,可以更准确地进行不同的位置,并保持最新。
translated by 谷歌翻译