Сравнение алгоритмов kNN и kwNN на примере классификации цветов ириса с нуля.
3 фев, 2025
Введение
В этом руководстве мы разберем, как работают два популярных алгоритма классификации — k-ближайших соседей (kNN) и взвешенных k-ближайших соседей (kwNN) — на примере набора данных Iris (цветы ириса).
Почему это полезно?
- kNN — один из самых простых алгоритмов машинного обучения, но он отлично объясняет базовые принципы классификации.
- kwNN — его улучшенная версия, где соседи учитываются с разным весом.
Мы напишем алгоритмы с нуля, без использования готовых библиотек (вроде `sklearn.neighbors`), чтобы понять, как всё работает внутри.
Подготовка данных
Используем классический набор данных Iris, который содержит информацию о трех видах ирисов:
- Setosa
- Versicolor
- Virginica
Каждый цветок описывается четырьмя признаками, но для простоты мы возьмем только два:
- Длина лепестка (Petal.Length)
- Ширина лепестка (Petal.Width)
from sklearn.datasets import load_iris
import numpy as np
iris = load_iris()
features = iris.data[:, 2:4] # Берём только длину и ширину лепестка
labels = iris.target_names[iris.target] # Названия видов