Tuning for Software Analytics: is it Really Necessary?
arXiv:1609.01759 · doi:10.1016/j.infsof.2016.04.017
Abstract
Context: Data miners have been widely used in software engineering to, say, generate defect predictors from static code measures. Such static code defect predictors perform well compared to manual methods, and they are easy to use and useful to use. But one of the "black art" of data mining is setting the tunings that control the miner. Objective:We seek simple, automatic, and very effective method for finding those tunings. Method: For each experiment with different data sets (from open source JAVA systems), we ran differential evolution as anoptimizer to explore the tuning space (as a first step) then tested the tunings using hold-out data. Results: Contrary to our prior expectations, we found these tunings were remarkably simple: it only required tens, not thousands,of attempts to obtain very good results. For example, when learning software defect predictors, this method can quickly find tuningsthat alter detection precision from 0% to 60%. Conclusion: Since (1) the improvements are so large, and (2) the tuning is so simple, we need to change standard methods insoftware analytics. At least for defect prediction, it is no longer enough to just run a data miner and present the resultwithoutconducting a tuning optimization study. The implication for other kinds of analytics is now an open and pressing issue
References in corpus (1)
Cited by in corpus (49)
- Fast Parallel Hypertree Decompositions in Logarithmic Recursion Depth
- What is Wrong with Topic Modeling? (and How to Fix it Using Search-based Software Engineering)
- Is "Better Data" Better than "Better Data Miners"? (On the Benefits of Tuning SMOTE for Defect Prediction)
- Easy over Hard: A Case Study on Deep Learning
- Predicting Defective Lines Using a Model-Agnostic Technique
- The impact of feature importance methods on the interpretation of defect classifiers
- Revisiting Unsupervised Learning for Defect Prediction
- How to Evaluate Solutions in Pareto-based Search-Based Software Engineering? A Critical Review and Methodological Guidance
- Finding Better Active Learners for Faster Literature Reviews
- How to "DODGE" Complex Software Analytics?
- Finding Trends in Software Research
- The 'as Code' Activities: Development Anti-patterns for Infrastructure as Code
- Why is Differential Evolution Better than Grid Search for Tuning Defect Predictors?
- Better Software Analytics via "DUO": Data Mining Algorithms Using/Used-by Optimizers
- Hyperparameter Optimization for Effort Estimation
- Better Security Bug Report Classification via Hyperparameter Optimization
- An empirical assessment of best-answer prediction models in technical Q&A sites
- Simpler Hyperparameter Optimization for Software Analytics: Why, How, When?
- Revisiting Process versus Product Metrics: a Large Scale Analysis
- Less is More: Minimizing Code Reorganization using XTREE
- Data-Driven Search-based Software Engineering
- Synergy between Machine/Deep Learning and Software Engineering: How Far Are We?
- Synergizing Domain Expertise with Self-Awareness in Software Systems: A Patternized Architecture Guideline
- Is One Hyperparameter Optimizer Enough?
- Optimizing Prediction Intervals by Tuning Random Forest via Meta-Validation
- Predicting Breakdowns in Cloud Services (with SPIKE)
- Predicting Performance of Software Configurations: There is no Silver Bullet
- Transfer Learning with Bellwethers to find Good Configurations
- Bellwethers: A Baseline Method For Transfer Learning
- BiLO-CPDP: Bi-Level Programming for Automated Model Discovery in Cross-Project Defect Prediction
- Early Life Cycle Software Defect Prediction. Why? How?
- Profiling Software Developers with Process Mining and N-Gram Language Models
- Buggin: Automatic intrinsic bugs classification model using NLP and ML
- Sequential Model Optimization for Software Process Control
- Why Software Effort Estimation Needs SBSE
- Analysis and Detection of Information Types of Open Source Software Issue Discussions
- FRUGAL: Unlocking SSL for Software Analytics
- "Sampling"' as a Baseline Optimizer for Search-based Software Engineering
- How to Improve AI Tools (by Adding in SE Knowledge): Experiments with the TimeLIME Defect Reduction Tool
- Better Data Labelling with EMBLEM (and how that Impacts Defect Prediction)
- Defect Reduction Planning (using TimeLIME)
- Building Better Quality Predictors Using "-Dominance"
- Preference Discovery in Large Product Lines
- RIOT: a Stochastic-based Method for Workflow Scheduling in the Cloud
- Can You Explain That, Better? Comprehensible Text Analytics for SE Applications
- Search-Based Software Engineering for Self-Adaptive Systems: Survey, Disappointments, Suggestions and Opportunities
- Mining Scientific Workflows for Anomalous Data Transfers
- On the Need of Removing Last Releases of Data When Using or Validating Defect Prediction Models
- How to Better Distinguish Security Bug Reports (using Dual Hyperparameter Optimization