Обучение без учителя: кластеризация методом k-средних (k-Means)
До сих пор в этом курсе каждый урок давал компьютеру размеченные примеры: письма, уже помеченные как спам или не спам, дома с известной ценой, фотографии, уже подписанные кошка или собака. Машина просто училась копировать готовые ответы. Но большая часть данных в реальном мире приходит вообще без готовых ответов. Никто не сказал вам, какие клиенты похожи друг на друга, какие новостные заметки относятся к одной теме или какие цвета преобладают на фотографии. Этот урок о том, как научить машину находить такую скрытую структуру самостоятельно. Всё это семейство методов называется обучением без учителя (unsupervised learning), и самый известный его представитель — алгоритм кластеризации под названием метод k-средних (k-means).
К концу урока вы сможете выполнять метод k-средних вручную на бумаге, выбирать разумное число групп, точно понимать, где алгоритм ломается, и вызывать его в несколько строк на Python.
Ваши учебные цели
- Объяснить, что такое обучение без учителя и чем оно отличается от обучения с учителем.
- Описать, что делает кластеризация, и назвать четыре реальные задачи, где она применяется.
- Проследить четыре шага метода k-средних вручную на крошечном двумерном наборе данных с настоящими числами.
- Выбрать число кластеров $k$ с помощью метода локтя и инерции.
- Перечислить основные ограничения метода k-средних (форма, масштабирование, начальная расстановка, выбор $k$).
- Сравнить кластеризацию и классификацию и познакомиться с двумя другими идеями обучения без учителя.
- Запустить
KMeansв scikit-learn и считать координаты центров кластеров.