When data is scarce, software analytics can make many mistakes. For example, consider learning predictors for open source project health (e.g. the number of closed pull requests in twelve months time). The training data for this task may be very small (e.g. five years of data, collected every month means just 60 rows of training data). The models generated from such tiny data sets can make many prediction errors. Those errors can be tamed by a {\em landscape analysis} that selects better learner control parameters. Our niSNEAK tool (a)~clusters the data to find the general landscape of the hyperparameters; then (b)~explores a few representatives from each part of that landscape. niSNEAK is both faster and more effective than prior state-of-the-art hyperparameter optimization algorithms (e.g. FLASH, HYPEROPT, OPTUNA). The configurations found by niSNEAK have far less error than other methods. For example, for project health indicators such as $C$= number of commits; $I$=number of closed issues, and $R$=number of closed pull requests, niSNEAK's 12 month prediction errors are \{I=0\%, R=33\%\,C=47\%\} Based on the above, we recommend landscape analytics (e.g. niSNEAK) especially when learning from very small data sets. This paper only explores the application of niSNEAK to project health. That said, we see nothing in principle that prevents the application of this technique to a wider range of problems. To assist other researchers in repeating, improving, or even refuting our results, all our scripts and data are available on GitHub at https://github.com/zxcv123456qwe/niSneak
翻译:当数据稀缺时,软件分析可能产生大量错误。例如,考虑对开源项目健康状态(如十二个月内关闭的拉取请求数量)的学习预测。该任务的训练数据可能非常少(例如,每月收集一次、持续五年的数据仅能生成60行训练数据)。从如此小规模数据集中生成的模型可能产生许多预测错误。这些错误可通过一种名为"景观分析"的方法得以控制——该方法能选择更优的学习器控制参数。我们的niSNEAK工具:(a) 对数据进行聚类以发现超参数的整体景观;(b) 从景观各区域中探索少量代表性参数。相较于先前最先进的超参数优化算法(如FLASH、HYPEROPT、OPTUNA),niSNEAK既更快又更有效。其找到的配置产生的误差远低于其他方法。例如,针对项目健康指标$C$(提交次数)、$I$(关闭问题数)和$R$(关闭拉取请求数),niSNEAK的12个月预测误差分别为{I=0%、R=33%、C=47%}。基于上述结果,我们推荐在从极小数据集学习时采用景观分析方法(如niSNEAK)。本文仅探索了niSNEAK在项目健康预测中的应用,但原则上我们认为该技术可推广至更广泛的问题。为便于其他研究者复现、改进或反驳我们的成果,所有脚本与数据已托管于GitHub(https://github.com/zxcv123456qwe/niSneak)。