Lazy vs Eager Learning I wish to better understand the difference between lazy and eager learning. I am having difficulty conceptualising what the "abstraction" refers to between the two. 

According to the text book I am reading it says, "The distinction between easy learners and lazy learners is based on when the algorithm abstracts from the data." 

A lazy learner delays abstracting from the data until it is asked to make a prediction while an eager learner abstracts away from the data during training and uses this abstraction to make predictions rather than directly compare queries with instances in the dataset. 

I understand that KNN algorithm loads all the data into memory so depending on the size of the dataset, the computing requirements could be enormous as well as the fact it's a non-parametric algorithm so there is no training to find parameters, the classification is done on a per query requirement??
Lazy learner:

Just store Data set without learning from it

Start classifying data when it receive Test data

So it takes less time learning and more time classifying data



Eager learner:

When it receive data set it starts classifying (learning)

Then it does not wait for test data to learn

So it takes long time learning and less time classifying data


Hint : In supervised learning

Some examples are :
Lazy : K - Nearest Neighbour, Case - Based Reasoning
Eager : Decision Tree, Naive Bayes, Artificial Neural Networks