DOI: 10.1002/spe.70113 ISSN: 0038-0644

Can AI be Easy? Lessons Learned From the EZR.py Toolkit

Tim Menzies, Srinath Srinivasan, Kishan Ganguly

ABSTRACT

Much recent press claims that developers no longer need to read code. We disagree, at least within the domain of tabular software‐engineering (SE) optimization tasks: rows of and values where the values are expensive to obtain. As evidence, we present EZR.py, a Python toolkit of less than 1000 lines (no heavy dependencies) that implements Naive Bayes, ‐means clustering, classification and regression trees, simulated annealing, local search, active learning, and complementary‐Bayes text‐mining relevance filtering for tabular SE data. EZR was built by repeatedly reading and refactoring AI tools to simplify and unify them. The result demonstrates that many seemingly different learning algorithms are nearly the same once stripped back to their core: classical algorithms collapse to a few lines each, and a state‐of‐the‐art active learner fits in roughly 80 lines. This paper shows that (a)  on 20 randomly selected benchmarks from the MOOT repository of 124 tabular SE optimization tasks, simulated annealing in its 1983 default configuration matches or beats more elaborate local‐search variants; (b) an 80‐line active learner reaches 85%–95% of the reference optimum with fewer than 100 labels across the MOOT tasks , building trees from fewer than ten variables even when thousands are available; and (c)  on Yu et al.'s four systematic‐review corpora, a 30‐line complementary‐Bayes filter matches the recall of the SVM‐based FASTREAD text miner using roughly one‐third of the labels , on three of the four corpora; on the fourth, it converges faster but plateaus below FASTREAD's recall ceiling (a tradeoff detailed in §7) . Companion studies (coauthored by authors of this paper) further report that this active learner's model update runs over 400 times faster than SMAC3, and that its trees rank features as well as SHAP and ReliefF. We conclude that, within the scope of tabular SE optimization, reading and refactoring code is a useful method of generating insight, and small unified toolkits can rival large libraries. EZR is available under an open‐source license. Install via pip install ezr (Python 3.12). The exact version studied here (release v0.9.4 ) is archived at Zenodo, DOI 10.5281/zenodo.22554751 ; example data at github.com/timm/moot . See Appendix A for notes on installing and running this code.

More from our Archive