Henry I want to understand what the K-Nearest Neighbors (KNN) algorithm is in machine learning. How does it classify or predict outcomes based on nearby data points? Can someone also explain its strengths, limitations, and common applications?