Let's go back to visit the penguins. This time, I'm going to train a nearest neighbor classifier with five neighbors. I'm going to use the whole dataset and not do a train test, but this time because I'm not really interested in the metrics at this point. Let's say I want to de find the nearest neighbor to some new data vector. Here I've made up some data for a penguin, and I want to make that into a query, so I need to turn it into a data frame since that's what we trained on. It has to have the same columns as the original feature matrix X. Then I can use knn K neighbors to find all the nearest neighbors. Remember, there are five neighbors for each point. These are the five penguins closest to these values in our original data set. I have to put index zero here because the query could have more than one vector in it, and so this comes back actually as a list of vectors. If I look at those rows in x, then you can see the best match here is the first row, and so on. Now you might notice if you're paying close attention that these numbers don't match the numbers in the rows of the data frame always. So that might be something that worries you for a moment. What happened is it happened so long ago that we forgotten, but we do drop some rows from this table because there are some nA entries in it. And so because we've dropped some rows, that means that the index column is no longer consecutively numbered all the way through out. So this does, in fact, correspond to those positions in the reduced table. All right. And then we can look at the labels for those same neighbors, and they're all Addis. So obviously, in this case, we would say that my example is in Adi.