# When Less is More: On the Value of "Co-training" for Semi-Supervised Software Defect Predictors

arXiv: https://arxiv.org/abs/2211.05920 · HTML: https://mlsanity.com/paper/2211.05920/

## Key facts

- Cited by 1 papers in the map (data through 14 Oct 2026).
- Builds on 12 of its 135 references that are in the map.
- First posted on arXiv 10 Nov 2022.

## Builds on (most cited first, 12 of 12)

- [The Impact of Automated Parameter Optimization on Defect Prediction Models](https://mlsanity.com/paper/1801.10270/) (2018)
- [Semi-supervised clustering methods](https://mlsanity.com/paper/1307.0252/) (2013)
- [What is Wrong with Topic Modeling? (and How to Fix it Using Search-based Software Engineering)](https://mlsanity.com/paper/1608.08176/) (2016)
- [500+ Times Faster Than Deep Learning (A Case Study Exploring Faster Methods for Text Mining StackOverflow)](https://mlsanity.com/paper/1802.05319/) (2018)
- [Better Data Labelling with EMBLEM (and how that Impacts Defect Prediction)](https://mlsanity.com/paper/1905.01719/) (2019)
- [Identifying Self-Admitted Technical Debts with Jitterbug: A Two-step Approach](https://mlsanity.com/paper/2002.11049/) (2020)
- [Bellwethers: A Baseline Method For Transfer Learning](https://mlsanity.com/paper/1703.06218/) (2017)
- [Applications of Psychological Science for Actionable Analytics](https://mlsanity.com/paper/1803.05067/) (2018)
- [Better Software Analytics via "DUO": Data Mining Algorithms Using/Used-by Optimizers](https://mlsanity.com/paper/1812.01550/) (2018)
- [Mining Scientific Workflows for Anomalous Data Transfers](https://mlsanity.com/paper/2103.12221/) (2021)
- [We Don't Need Another Hero? The Impact of "Heroes" on Software Development](https://mlsanity.com/paper/1710.09055/) (2017)
- [Revisiting Process versus Product Metrics: a Large Scale Analysis](https://mlsanity.com/paper/2008.09569/) (2020)

## Built on by (most cited first, 1 of 1)

- [SmartOracle -- An Agentic Approach to Mitigate Noise in Differential Oracles](https://mlsanity.com/paper/2601.15074/) (2026)

## Abstract (arXiv)

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. However, 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 there, those methods have been tested on just a handful of projects. This paper applies a wide range of 55 semi-supervised learners to over 714 projects. We find that semi-supervised "co-training methods" work significantly better than other approaches. Specifically, after labeling, just 2.5% of data, then make predictions that are competitive to those using 100% of the data. That said, co-training needs to be used cautiously 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). It is an open question, worthy of future work, to test if these reductions can be seen in other areas of software analytics. To assist with exploring other areas, all the codes used are available at https://github.com/ai-se/Semi-Supervised.
