Algorithm
The FOIL algorithm is as follows:
- Input List of examples
- Output Rule in first-order predicate logic
- FOIL(Examples)
- Let Pos be the positive examples
- Let Pred be the predicate to be learned
- Until Pos is empty do:
- Let Neg be the negative examples
- Set Body to empty
- Call LearnClauseBody
- Add Pred ← Body to the rule
- Remove from Pos all examples which satisfy Body
- Procedure LearnClauseBody
- Until Neg is empty do:
- Choose a literal L
- Conjoin L to Body
- Remove from Neg examples that do not satisfy L
- Until Neg is empty do:
Read more about this topic: First Order Inductive Learner