Hyperparameter Optimization for Effort Estimation
arXiv:1805.00336
Abstract
Software analytics has been widely used in software engineering for many tasks such as generating effort estimates for software projects. One of the "black arts" of software analytics is tuning the parameters controlling a data mining algorithm. Such hyperparameter optimization has been widely studied in other software analytics domains (e.g. defect prediction and text mining) but, so far, has not been extensively explored for effort estimation. Accordingly, this paper seeks simple, automatic, effective and fast methods for finding good tunings for automatic software effort estimation. We introduce a hyperparameter optimization architecture called OIL (Optimized Inductive Learning). We test OIL on a wide range of hyperparameter optimizers using data from 945 software projects. After tuning, large improvements in effort estimation accuracy were observed (measured in terms of standardized accuracy). From those results, we recommend using regression trees (CART) tuned by different evolution combine with default analogy-based estimator. This particular combination of learner and optimizers often achieves in a few hours what other optimizers need days to weeks of CPU time to accomplish. An important part of this analysis is its reproducibility and refutability. All our scripts and data are on-line. It is hoped that this paper will prompt and enable much more research on better methods to tune software effort estimators.
Submitted to EMSE
References in corpus (7)
- Scikit-learn: Machine Learning in Python
- Evaluating prediction systems in software project estimation
- Locally Weighted Naive Bayes
- What is Wrong with Topic Modeling? (and How to Fix it Using Search-based Software Engineering)
- Tuning for Software Analytics: is it Really Necessary?
- A Baseline Model for Software Effort Estimation
- 500+ Times Faster Than Deep Learning (A Case Study Exploring Faster Methods for Text Mining StackOverflow)
Cited by in corpus (12)
- How to "DODGE" Complex Software Analytics?
- The Weights can be Harmful: Pareto Search versus Weighted Search in Multi-Objective Search-Based Software Engineering
- Better Software Analytics via "DUO": Data Mining Algorithms Using/Used-by Optimizers
- Better Security Bug Report Classification via Hyperparameter Optimization
- Revisiting Process versus Product Metrics: a Large Scale Analysis
- Software Engineering for Fairness: A Case Study with Hyperparameter Optimization
- Accuracy Can Lie: On the Impact of Surrogate Model in Configuration Tuning
- Cross-Dataset Design Discussion Mining
- Unveiling process insights from refactoring practices
- FairMask: Better Fairness via Model-based Rebalancing of Protected Attributes
- Preference Discovery in Large Product Lines
- Building Very Small Test Suites (with Snap)