Предыдущий урок: Урок 4. Наша первая модель — линейная регрессия. Объясняем без формул и магии
В предыдущем уроке мы научили компьютер строить прямую и предсказывать значения — цены квартир, число шагов, что угодно, где результатом является число. Это называется регрессией. Сегодня мы перейдём к другому крупному направлению машинного обучения — классификации.
Если регрессия отвечает на вопрос: «Сколько?», то классификация отвечает на вопрос: «К какому классу относится объект?» Это может быть что угодно: вид цветка, категория товара, болеет человек или нет, спам это или нормальное письмо, кошка это или собака на фотографии.
Человек различает объекты легко и интуитивно, а вот компьютер — нет. Но мы научим его это делать. Сейчас ты:
- поймёшь суть задач классификации,
- узнаешь, что такое KNN — один из самых простых и интуитивных алгоритмов,
- построишь свою первую классификационную модель,
- увидишь, как модель “разделяет” данные,
- сделаешь прогноз: определит ли модель вид ириса по его параметрам.
Что такое классификация
Представь, что перед тобой куча шариков разных цветов: красные, синие, зелёные. Твоя задача — разложить их по коробкам. Ты легко справишься: отличишь шарики по цвету, размеру, блеску — чему угодно. Компьютер делает то же самое. Только вместо шариков — строки таблицы. Вместо цвета — признаки: длина, вес, параметры, признаки изображения, данные сенсоров. Вместо коробок — классы.
Цель классификации: Научить модель определять, к какому классу относится новый объект на основе примеров.
Какие бывают классы?
1. Бинарные — два варианта:
- болеет / не болеет
- спам / не спам
- купит / не купит
2. Многоклассовые — больше двух вариантов:
- три вида ирисов
- 10 цифр (распознавание от 0 до 9)
- 1000 видов объектов на изображениях
3. Несбалансированные — когда одного класса намного больше других (например, в медицине).
Мы будем работать с многоклассовой задачей — это проще понять и визуализировать.
🎁 Кстати, мы отмечаем 1000 подписчиков на канале и дарим вам скидку 50% на курс по System Design. Промокод: IT_EXTRA1000
Старый знакомый набор — Iris
Мы уже загружали этот набор в прошлом уроке. Он идеален для классификации. Он содержит:
- длину лепестка
- ширину лепестка
- длину чашелистика
- ширину чашелистика
- вид цветка
Нужно научить модель определять вид цветка по его параметрам.
Что такое KNN — алгоритм “ближайшие соседи”
Это один из самых простых и интуитивных алгоритмов классификации. Он не строит сложных формул, графов или линий. Вместо этого он рассуждает… почти как человек. Принцип такой:
- Берём новый объект, который хотим классифицировать.
- Смотрим на k ближайших к нему объектов из обучающей выборки.
- Смотрим, к каким классам относятся эти “соседи”.
- Класс, который встречается чаще — тот и выбираем.
Представь, что ты переехал в новый город, хочешь узнать, где купить вкусную пиццу. Ты спрашиваешь нескольких случайных прохожих. Если большинство скажет: «Вон там лучший ресторан», — ты туда и пойдёшь. Это и есть работа KNN.
Загружаем данные и готовим модель
Открываем IDLE и пишем:
Мы указали n_neighbors = 3, значит модель будет “спрашивать мнение” у трёх ближайших соседей.
Делаем прогноз
Проверим, какой это вид ириса для какого-нибудь цветка из тестовых данных.
Обычно модель угадывает правильно с первого раза — данные очень “чистые” и разделяются хорошо.
Проверяем качество модели
Для классификации важна точность — доля правильных ответов.
Обычно для набора Iris модель KNN показывает точность 0.95–1.00. В нашем случае:
Это невероятно высокий результат — но он объясним: данные идеально подходят для обучения.
Визуализация данных: как выглядят классы
Чтобы лучше понять, как модель “видит” данные, давай построим график.
Возьмём два признака: длину и ширину лепестка.
Ты увидишь три ярко выраженные группы:
Такой набор просто создан для классификации.
Что происходит внутри KNN?
Хоть алгоритм и простой, важно понимать его внутреннюю логику: У KNN нет фазы “настоящего" обучения. Он просто запоминает данные. При предсказании он ищет точки, которые находятся ближе всего к новой точке.
“Близость” определяется по расстоянию (например, по Евклидову), но не будем о матемитике — просто помни: чем ближе точки, тем “похожее” у них поведение. То есть KNN — это не модель в привычном смысле, а умный способ поиска похожих объектов.
Недостатки KNN
Хоть алгоритм прекрасен для обучения, он не идеален:
- Медленный на больших данных — чем больше данных, тем дольше искать “соседей”.
- Чувствителен к лишним признакам — иногда один признак “шумит” и сбивает предсказание.
- Требует нормализации данных (мы изучим это позже).
Но для обучения основам — это лучший вариант.
Что дальше
Мы разберём деревья решений — один из самых популярных и интуитивных алгоритмов, который работает совсем иначе, чем KNN. Он думает не расстояниями, а “вопросами”: «Если ширина лепестка меньше X, то… иначе…»
Это мощная модель, которая лежит в основе случайных лесов и градиентного бустинга — методов, которые побеждают на соревнованиях Kaggle.
Следующий урок: Урок 6. Деревья решений — как компьютер “задаёт вопросы” и принимает решения
👍 Ставьте лайки если хотите разбор других интересных тем.
👉 Подписывайся на IT Extra на Дзен чтобы не пропустить следующие статьи
Если вам интересно копать глубже, разбирать реальные кейсы и получать знания, которых нет в открытом доступе — вам в IT Extra Premium.
Что внутри?
✅ Закрытые публикации: Детальные руководства, разборы сложных тем (например, архитектура высоконагруженных систем, глубокий анализ уязвимостей, оптимизация кода, полезные инструменты и объяснения сложных тем простым и понятным языком).
✅ Конкретные инструкции: Пошаговые мануалы, которые вы сможете применить на практике уже сегодня.
✅ Без рекламы и воды: Только суть, только концентрат полезной информации.
✅ Ранний доступ: Читайте новые материалы первыми.
Это — ваш личный доступ к экспертизе, упакованной в понятный формат. Не просто теория, а инструменты для роста.
👉 Переходите на Premium и начните читать то, о чем другие только догадываются.
👇
Понравилась статья? В нашем Telegram-канале ITextra мы каждый день делимся такими же понятными объяснениями, а также свежими новостями и полезными инструментами. Подписывайтесь, чтобы прокачивать свои IT-знания всего за 2 минуты в день!