A Comparative Study of Inductive Logic Programming Methods for Software Fault Prediction
Abstract
We evaluate inductive logic programming (ILP) methods for predicting fault density in C++ classes. In this problem, each training example is a C++ class definition, represented as a calling tree, and labeled as "positive " iff faults (i.e., errors) were discovered in its implementation. We compare two ILP systems, FOIL and FLIPPER, and explore the reasons for their differing performance, using both natural and artificial data. We then propose two extensions to FLIPPER: a user-directed bias towards easy-to-evaluate clauses, and an extension that allows FLIPPER to learn "counting clauses". Counting clauses augment logic programs with a variation of the "number restrictions" used in description logics, and significantly improve performance on this problem when prior knowledge is used. 1 INTRODUCTION In this paper, we will investigate the utility of inductive logic programming (ILP) methods for the problem of classifying programs. In particular, we will explore the problem of predicting f...
Cite
Text
Cohen and Devanbu. "A Comparative Study of Inductive Logic Programming Methods for Software Fault Prediction." International Conference on Machine Learning, 1997.Markdown
[Cohen and Devanbu. "A Comparative Study of Inductive Logic Programming Methods for Software Fault Prediction." International Conference on Machine Learning, 1997.](https://mlanthology.org/icml/1997/cohen1997icml-comparative/)BibTeX
@inproceedings{cohen1997icml-comparative,
title = {{A Comparative Study of Inductive Logic Programming Methods for Software Fault Prediction}},
author = {Cohen, William W. and Devanbu, Premkumar T.},
booktitle = {International Conference on Machine Learning},
year = {1997},
pages = {66-74},
url = {https://mlanthology.org/icml/1997/cohen1997icml-comparative/}
}