Overview of Machine Learning Approaches

Overview of Machine Learning Approaches

DOI: 10.4018/978-1-5225-3185-2.ch003


This chapter enlists and presents an overview of various machine learning approaches. It also explains the machine learning techniques used in the area of software engineering domain especially case-based reasoning method. Case-based reasoning is used to predict software quality of the system by examining a software module and predicting whether it is faulty or non-faulty. In this chapter an attempt has been made to propose a model with the help of previous data which is used for prediction. In this chapter, how machine learning technique such as case-based reasoning has been used for error estimation or fault prediction. Apart from case-based reasoning, some other types of learning methods have been discussed in detail.
Chapter Preview


This chapter presents an overview of machine learning approaches. It summarizes a variety of machine learning techniques in the domain of software engineering field (Zhang & Tsai, 2002).

Machine Learning (ML) is the study of computational methods to automate the process of knowledge acquisition from examples. ML algorithms have been utilized in several different problem domains. Some typical applications are: data mining problems where big databases contain important implicit regularities that can be revealed automatically; weakly understood domains where there is a lack of knowledge needed to develop effective algorithms; or domains where programs must dynamically adapt to changing conditions (Mitchell, 1997). There are some list of publications and web sites offers a good starting point for the interested reader to be up to date with the state-of-the practice in ML applications (Aha, n.d.a, n.d.b; Bergadano & Gunetti, 1995; Bratko & Muggleton, 1995; Langley & Simon, 1995; Mendonca & Sunderhaft, 1999; Khoshgoftaar & Allen, 1999; Michalski, Bratko, & Kubat, 1998; Mitchell, 1997; Quinlan, 1990; Saitta & Neri, 1998; Sutton & Barto, 1999). To better use ML methods as tools to solve real world software engineering problems, we need to have a visible understanding of both the problems, and the tools and methodologies utilized. Since solutions to a given problem can frequently be expressed (or approximated) as a target function, the problem-solving process (or the learning process) boils down to how to find such a function that can best describe the known and unknown causes or phenomena for a given problem domain. Learning a target function (or a set of possible target functions) from training data involves the following issues:

  • Representation

Dissimilar learning methods may accept dissimilar representation formalisms for the data and knowledge (functions) to be learned. In some learning method, the target function is not explicitly defined.

  • Characteristics of the learning process

Learning can be supervised or unsupervised. Different methods may have a different inductive bias, different search approach, different guiding issue in the search, and different need regarding the availability of a domain theory.

For a target function, its generalization can be eager (at learning stage) or lazy (at classification stage), and its approximation can be obtained either locally or globally with regard to a set of training cases. Learning can result in either knowledge augmentation or knowledge (re) compilation. Depending on the interaction between a learner and its environment, there can be queried learning or reinforcement learning.

  • Properties of training data and domain theories:

Complete Chapter List

Search this Book: