K-nearest neighbours (KNN) stores the training rows and predicts by finding the k closest ones to a new point. Classification takes the majority label among those neighbours.
It is lazy because there is no real training step. Fitting just keeps the data in memory, and all the work happens at prediction time. A naive scan costs about O(nd) distance computations per query, with n rows and d features.
It is non-parametric because no fixed set of parameters is ever learned. The shape of the decision boundary comes from the data itself, so it can bend any way the classes require. That is the appeal: you assume nothing about linearity or about the distribution of the features. The cost is that the whole dataset must be kept and searched for every single prediction.
Rewriting in plainer words…
This answer doesn't lend itself to a diagram - it reads best . No credits were charged.