# K-nearest neighbors

## Introduction

K-Nearest Neighbors (K-NN) is a versatile and intuitive machine learning algorithm that belongs to the realm of supervised learning. It’s a go-to choice for solving classification and regression problems, making it a crucial tool in the toolbox of any aspiring data scientist or machine learning enthusiast. In this article, we’ll delve into how K-NN works and provide you with insightful examples to deepen your understanding.

## How Does K-Nearest Neighbors Work?

The K-NN algorithm operates on the principle of similarity. It assumes that similar data points are often close to each other in the feature space. Here’s a step-by-step breakdown of how it functions:

1. Data Collection: Begin by gathering your dataset, comprising labeled data points. Each data point should have features and a corresponding class or label.
2. Select a Value for K: K represents the number of neighbors to consider when making predictions. Choosing an appropriate K is essential. A smaller K value leads to a more sensitive model, while a larger K value tends to create a smoother decision boundary.
3. Calculate Distance: For a given input data point, K-NN calculates the distance to all other data points in the dataset. The Euclidean distance is commonly used, but other distance metrics are also applicable.
4. Identify Neighbors: K-NN selects the K data points with the shortest distances to the input data point.
5. Majority Voting: In the classification task, the algorithm counts the occurrences of each class among the K neighbors and assigns the class with the highest count as the predicted class for the input data point. For regression tasks, it can also compute the average of the K-nearest neighbors’ values.
6. Prediction: The algorithm assigns the predicted class or value to the input data point based on the majority voting or averaging process.

Example Explained

Let’s illustrate K-NN with a practical example. Suppose you want to classify fruits as either apples or oranges based on two features: weight (grams) and color (0 for red, 1 for orange).

### Dataset:

Now, imagine you have a new fruit with a weight of 145 grams and a color score of 0. To classify it as an apple or an orange using K-NN, follow these steps:

1. Choose an appropriate K value (e.g., K=3).
2. Calculate the Euclidean distance between the new fruit and each data point in the dataset.
3. Select the 3 nearest neighbors with the shortest distances.
4. Count the occurrences of apple and orange among the neighbors. Let’s say 2 out of 3 are apples.
5. Predict the new fruit as an apple since it has the majority vote among the 3 neighbors.

If K was chosen differently (e.g., K=2), the prediction might change.

Code Example (Python)

Here’s a simple Python code snippet using the `scikit-learn` library to implement K-NN for the fruit classification problem:

``````from sklearn.neighbors import KNeighborsClassifier

# Create the dataset
X = [[130, 0], [140, 0], [150, 1], [155, 1], [160, 0]]
y = ['apple', 'apple', 'orange', 'orange', 'apple']

# Create the K-NN classifier with K=3
knn = KNeighborsClassifier(n_neighbors=3)

# Fit the classifier on the data
knn.fit(X, y)

# Predict the class of a new fruit
new_fruit = [[145, 0]]
prediction = knn.predict(new_fruit)

print("Predicted class:", prediction[0])``````

This code demonstrates how to use the K-NN classifier in Python to classify a new fruit based on weight and color.

### Conclusion

K-Nearest Neighbors is a powerful and intuitive algorithm that finds its applications in various fields, including recommendation systems, image recognition, and more. Armed with the knowledge of how K-NN works and practical examples, you can confidently apply this algorithm to solve real-world problems in your Python projects. Remember that choosing the right K value and suitable distance metric is crucial for the algorithm’s success in your specific tasks. Happy learning and coding!