[ЗАСТАВКА] В
этом видео мы начнём с вами знакомиться с задачей кластеризации.
Что у нас было раньше?
Раньше мы разбирались с задачами обучения на размеченных данных.
То есть у нас была обучающая выборка, в которой были объекты — x1, ..., xl.
Ну то есть векторы признаков объектов из обучающей выборки.
И известны ответы на этих объектах — y1, ..., yl.
Кроме того, у нас была тестовая выборка,
на которой нам нужно было эти ответы спрогнозировать.
В случае задачи регрессии нужно было прогнозировать какие‐то
действительные величины.
В случае задачи классификации нужно было прогнозировать метки классов.
Ну то есть относить объект к тому ли иному классу,
а классов у нас кое‐то конечное число.
Фактически мы занимались восстановлением некоторого отображения
из векторов признаков x в какие‐то метки или какие‐то действительные числа.
То есть мы пытались построить какую‐то функцию a(x),
которая бы хорошо приближала это отображение.
Ну то есть чтобы a(x) было приблизительно равно y.
Ну что значит — приблизительно равно?
В случае задачи регрессии это означает,
что отклонение должно быть не очень большое.
А в случае задачи классификации это означает,
что ответ должен очень часто совпадать с правильным.
Теперь же у нас задача меняется.
У нас есть обучающая выборка, в которой есть только объекты — x1, ..., xl.
А вот ответов теперь нет.
То есть эта обучающая выборка также является и тестовой.
И нам нужно поставить метки y1, ..., yl,
так чтобы объекты с одной и той же меткой были похожи друг на друга,
а объекты с разными метками были не очень похожи друг на друга.
Ну что это значит?
Это значит просто то, что мы хотим в пространстве признаков выделить
какие‐то сгустки объектов, какие‐то группы.
И на эти группы все объекты и разбить.
Получается, что здесь нам тоже нужно восстановить какое‐то отображение.
Но дело в том, что раньше у нас были примеры значений иксов и игреков.
А теперь у нас таких примеров нет.
Получается, теперь мы не можем потребовать, чтобы наше восстановленное
отображение приближало какое‐то, известное нам в некоторых точках.
Но мы можем потребовать, чтобы оно обладало какими‐то свойствами.
Ну, например, теми самыми свойствами, которые мы только что обсудили:
похожие объекты должны отображаться в одну метку, а непохожие — в разные метки.
Для этого нам нужно придумать, как формализовать это свойство,
ввести какие‐нибудь метрики, которые будут измерять качество нашей кластеризации.
Ну, во‐первых, мы можем посмотреть на то, какие точки попадают в один кластер.
И посмотреть, какое среднее расстояние между точками,
которые попадают в один кластер.
Понятно, что такое расстояние нам будет хотеться минимизировать.
Чем ближе точки в одном кластере, тем больше они друг на друга похожи,
если у нас адекватное пространство признаков.
С другой стороны, мы можем хотеть, чтобы разные кластеры отличались друг от друга.
То есть мы можем посмотреть на среднее расстояние между точками,
принадлежащими к разным кластерам, и пытаться это расстояние максимизировать.
Понятно, что, максимизируя эту метрику или минимизируя предыдущую,
мы не учитываем другую метрику, поэтому можно было бы их объединить в одну, ну,
например, поделить одну на другую.
Ну, например, первую на вторую и минимизировать.
Итак, в этом видео мы поговорили об отличиях задачи
кластеризации от задачи обучения на размеченных данных.
Мы поставили задачу кластеризации и поговорили о
простых способах оценить качество решения задачи кластеризации.
В следующем видео мы поговорим немного о разных постановках задачи кластеризации,
о том, как разные задачи кластеризации могут отличаться друг от друга,
и рассмотрим несколько частных применений.