The candidate elimination algorithm incrementally builds the version space given a hypothesis space H and a set E of examples. The examples are added one by one; each example possibly shrinks the version space by removing the hypotheses that are inconsistent with the example. The candidate elimination algorithm does this by updating the general and specific boundary for each new example.

- You can consider this as an extended form of Find-S algorithm.
- Consider both positive and negative examples.
- Actually, positive examples are used here as Find-S algorithm (Basically they are generalizing from the specification).
- While the negative example is specified from generalize form.

**Terms Used: **

**Concept learning:**Concept learning is basically learning task of the machine (Learn by Train data)**General Hypothesis:**Not Specifying features to learn the machine.**G = {‘?’, ‘?’,’?’,’?’…}:**Number of attributes**Specific Hypothesis:**Specifying features to learn machine (Specific feature)**S= {‘pi’,’pi’,’pi’…}:**Number of pi depends on number of attributes.**Version Space:**It is intermediate of general hypothesis and Specific hypothesis. It not only just written one hypothesis but a set of all possible hypothesis based on training data-set.

**Algorithm:**

Step1:Load Data setStep2:Initialize General Hypothesis and Specific Hypothesis.Step3:For each training exampleStep4:If example is positive example if attribute_value == hypothesis_value: Do nothing else: replace attribute value with '?' (Basically generalizing it)Step5:If example is Negative example Make generalize hypothesis more specific.

**Example:**

**Consider the dataset given below:**

**Algorithmic steps:**

Initially :G =[[?, ?, ?, ?, ?, ?], [?, ?, ?, ?, ?, ?], [?, ?, ?, ?, ?, ?], [?, ?, ?, ?, ?, ?], [?, ?, ?, ?, ?, ?], [?, ?, ?, ?, ?, ?]] S = [Null, Null, Null, Null, Null, Null]For instance 1 :<'sunny','warm','normal','strong','warm ','same'> and positive output. G1 = G S1 = ['sunny','warm','normal','strong','warm ','same']For instance 2 :<'sunny','warm','high','strong','warm ','same'> and positive output. G2 = G S2 = ['sunny','warm',?,'strong','warm ','same']For instance 3 :<'rainy','cold','high','strong','warm ','change'> and negative output. G3 = [['sunny', ?, ?, ?, ?, ?], [?, 'warm', ?, ?, ?, ?], [?, ?, ?, ?, ?, ?], [?, ?, ?, ?, ?, ?], [?, ?, ?, ?, ?, ?], [?, ?, ?, ?, ?, 'change']] S3 = S2For instance 4 :<'sunny','warm','high','strong','cool','change'> and positive output. G4 = G3 S4 = ['sunny','warm',?,'strong', ?, ?] At last, by synchronizing the G4 and S4 algorithm produce the output.

#### Output :

G = [['sunny', ?, ?, ?, ?, ?], [?, 'warm', ?, ?, ?, ?]] S = ['sunny','warm',?,'strong', ?, ?]

## Recommended Posts:

- ML | Multiple Linear Regression (Backward Elimination Technique)
- Different Types of Clustering Algorithm
- Asynchronous Advantage Actor Critic (A3C) algorithm
- Facebook News Feed Algorithm
- Gradient Descent algorithm and its variants
- k-nearest neighbor algorithm in Python
- ML | T-distributed Stochastic Neighbor Embedding (t-SNE) Algorithm
- ML | Mini Batch K-means clustering algorithm
- ML | Expectation-Maximization Algorithm
- ML | Reinforcement Learning Algorithm : Python Implementation using Q-learning
- Genetic Algorithm for Reinforcement Learning : Python implementation
- Silhouette Algorithm to determine the optimal value of k
- Implementing DBSCAN algorithm using Sklearn
- ML | ECLAT Algorithm
- Implementing Apriori algorithm in Python
- Encoding Methods in Genetic Algorithm
- Explanation of Fundamental Functions involved in A3C algorithm
- Crossover in Genetic Algorithm
- ML | Handling Imbalanced Data with SMOTE and Near Miss Algorithm in Python
- ML | Frequent Pattern Growth Algorithm

If you like GeeksforGeeks and would like to contribute, you can also write an article using contribute.geeksforgeeks.org or mail your article to contribute@geeksforgeeks.org. See your article appearing on the GeeksforGeeks main page and help other Geeks.

Please Improve this article if you find anything incorrect by clicking on the "Improve Article" button below.