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??

  • $\begingroup$ Pretty much, but don't forget that $k$ is a hyperparameter you can optimize. $\endgroup$
    – Emre
    May 18, 2017 at 6:07

1 Answer 1


Lazy learner:

  1. Just store Data set without learning from it

  2. Start classifying data when it receive Test data

  3. So it takes less time learning and more time classifying data

Eager learner:

  1. When it receive data set it starts classifying (learning)

  2. Then it does not wait for test data to learn

  3. 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

  • $\begingroup$ It will be good if you can give some examples of lazy and eager learners. $\endgroup$
    – rnso
    Dec 5, 2018 at 17:11
  • $\begingroup$ If you means by examples the algorithms .lazy :k-nearest neighbor, Case-based reasoning...Eager : Decision Tree, Naive Bayes, Artificial Neural Networks $\endgroup$ Dec 12, 2018 at 15:58
  • $\begingroup$ Good information. Thanks. Can be added to the answer above. $\endgroup$
    – rnso
    Dec 13, 2018 at 2:01
  • $\begingroup$ is DBSCAN a lazy learner? $\endgroup$ Jan 21, 2020 at 11:16
  • $\begingroup$ @NipunSampath: Using the original algorithm it is a lazy learner. $\endgroup$
    – Make42
    Jul 2, 2020 at 13:23

Your Answer

By clicking “Post Your Answer”, you agree to our terms of service and acknowledge you have read our privacy policy.

Not the answer you're looking for? Browse other questions tagged or ask your own question.