Введение
Алгоритм K-Nearest Neighbours (K-NN) — один из наиболее интуитивно понятных, но мощных алгоритмов в области машинного обучения и науки о данных. Это непараметрический алгоритм ленивого обучения, который можно использовать для задач классификации и регрессии. Целью этой статьи является глубокое погружение в алгоритм K-NN, раскрытие его основных принципов и предложение практического примера Python.
Что такое K-ближайшие соседи (K-NN)?
Алгоритм K-NN работает, находя «k» ближайших точек данных в наборе данных к заданной входной точке и делая вывод на основе класса большинства или среднего значения среди этих «k» ближайших соседей.
Ключевые термины:
- Непараметрический: это означает, что модель не делает никаких предположений о базовом распределении данных.
- Ленивое обучение. В отличие от нетерпеливых учащихся, которые обобщают данные во время обучения, ленивые учащиеся ждут, пока в систему не будет сделан запрос, чтобы выполнить обобщение.
- k: количество ближайших соседей, учитываемых при составлении прогнозов.
Шаги алгоритма:
- Рассчитайте расстояние между входной точкой и любой другой точкой в наборе данных.
- Отсортируйте расстояния в порядке возрастания.
- Выберите верхние «k» ближайших точек.
- Если это проблема классификации, возьмите большинство голосов. Для регрессии вычислите среднее значение.
- Верните предсказание.
Пример кода Python для классификации
Давайте посмотрим на пример Python, чтобы лучше понять K-NN. В этом примере мы будем использовать знаменитый набор данных Iris для решения задачи классификации.
from sklearn.datasets import load_iris from sklearn.model_selection import train_test_split from sklearn.neighbors import KNeighborsClassifier import numpy as np # Load the Iris dataset iris = load_iris() X, y = iris.data, iris.target # Split the data into training and test sets X_train, X_test, y_train, y_test = train_test_split(X, y, test_size=0.2, random_state=42) # Initialize the K-NN classifier k = 3 knn = KNeighborsClassifier(n_neighbors=k) # Train the classifier knn.fit(X_train, y_train) # Make predictions y_pred = knn.predict(X_test) # Evaluate the model accuracy = np.mean(y_pred == y_test) print(f'Accuracy: {accuracy * 100}%')
Заключение
Алгоритм K-Nearest Neighbours — это универсальный инструмент в наборе инструментов специалиста по данным. Его применимость охватывает множество областей, от здравоохранения до финансов. Несмотря на свою простоту, он может дать впечатляющие результаты при наличии достаточно большого и хорошо распределенного набора данных. Как мы видели, реализация K-NN в Python довольно проста, однако понимание ее тонкостей имеет решающее значение для эффективного применения.
Продолжение информации об инженере по контролю качества в следующей статье.