В этом видео мы поговорим
о примерах задач кластеризации.
Дело в том, что каждые данные по-своему особенны, так же,
как и каждая задача кластеризации.
В разных задачах могут быть отличия по форме кластеров, которые нужно выделять,
по необходимости делать кластеры вложенными друг в друга и выстраивать
какую-то иерархическую структуру кластеров, по размеру кластеров, по тому,
основная задача кластеризации или побочная...
по тому, жесткая или мягкая кластеризация нужна.
Ну, то есть,
мы можем отнести объект сразу к нескольким кластерам или только к одному.
В задачах с разными особенностями могут быть уместны разные методы,
именно поэтому методов кластеризации так много.
Ну, давайте сначала обсудим форму кластеров.
Может быть совсем простой и безоблачный случай, когда кластеры
представляют собой простые сгустки точек, имеющие какую-то понятную форму, ну,
например, шарообразную, и их довольно просто выделять.
Может быть ситуация чуть ближе к реальности, когда форма кластеров
действительно какая-то необычная, но в то же время сгустки четко выделяются.
Может быть ситуация, когда есть точки, находящиеся где-то между кластерами,
и даже непонятно, к какому кластеру их правильно отнести.
А могут быть ситуации довольно необычных структур, ну, например,
каких-то вытянутых лент кластеров, которые отличаются тем,
что мы можем найти пару точек из разных кластеров,
которые будут ближе, чем какая-нибудь другая пара точек из одного кластера.
Например, ленты могут вызвать у нас желание сначала объединять в кластер
точки, которые находятся рядом друг с другом, а потом уже к ним добавлять другие
точки кластера, постепенно добавляя в кластер всю ленту.
Но если мы будем действовать по такой стратегии,
то мы столкнемся с проблемой, если кластеры плавно перетекают друг в друга.
Кроме того, не стоит забывать,
что кластеры могут быть какими-то очень странными множествами, которые образованы
по какому-то неизвестному нам правилу, но в то же время существующему правилу.
Ну, и, кроме того, кластеры могут пересекаться.
И тогда совсем уж сложно понять, какой объект к какому кластеру относится,
в каких-то отдельных областях.
Ну, и в конце концов кластеров может попросту не быть.
Теперь о вложенности кластеров.
Нам может захотеться,
чтобы в какой-то один большой кластер входили кластеры поменьше.
Ну, например, если мы кластеризуем тексты статей из "хабрахабр",
кластер "IT" может включать в себя кластер "алгоритмы", в котором внутри
будут кластер "методы машинного обучения" и "алгоритмы и структуры данных".
И там, и там – про алгоритмы, но немножко про разные.
Также может различаться размер кластеров.
Давайте продолжим тему кластеризации текстов на примере кластеризации новостей
по содержанию.
Первая постановка может быть такой: в один кластер должны попадать новости на
одну тему.
Ну, например, в одном кластере могут оказаться все новости про спорт.
Другая постановка: в одни кластер должны попадать все новости о
каком-то большом событии, ну, например, об Олимпиаде в Сочи.
Третья постановка: в один кластер должны попадать тексты об одной и той же новости,
ну, например, открытие Олимпиады в Сочи.
Задача кластеризации новостей в
каком-то смысле подразумевала, что задача кластеризации здесь основная.
Ну, то есть мы не пытаемся использовать результат задачи кластеризации для
какой-то другой задачи машинного обучения.
Могут быть и промежуточные варианты.
Ну, например, если мы решаем задачу сегментации целевой аудитории компании,
для того чтобы в разных группах использовать разные маркетинговые
стратегии или предлагать разные услуги, то может быть мы захотим решать задачу
рекомендации разных предложений после того, как решим задачу кластеризации.
И тогда задача кластеризации станет в некотором смысле побочной.
А может быть мы просто хотим посмотреть на кластеры, и тогда задача будет основной.
Ну и совсем уж яркий пример – это задача распознавания.
Часто бывает, что нужно уметь распознавать символ,
независимо от того, каким шрифтом он написан: курсивом, полужирным...
Как пишутся отдельные элементы символа...
И тогда может быть полезно кластеризовать разные написания символа и использовать
это для лучшего решения задачи классификации символов, ну,
то есть распознавания.
Также кластеризация может быть жесткой или мягкой.
Ну, например, если мы пытаемся кластеризовать тексты по темам и у нас
есть темы "финансы", "анализ данных" и тема
непосредственно про кластеризацию, то статья про кластеризацию,
использованную в какой-нибудь задаче из области финансов,
может быть отнесена напрямую к кластеру "кластеризация" и все.
А может быть отнесена с весом 0,2 к кластеру "финансы",
с весом 0,3 – к кластеру "анализ данных" и с весом 0,5 – к кластеру "кластеризация".
Поведем итог.
Задачи кластеризации могут различаться формой кластеров, которые нужно выделять,
необходимостью строить иерархическую структуру из кластеров,
размеров кластеров...
Ну, то есть насколько узко мы понимаем тот факт,
что объекты попадают в один кластер или в разные.
Тем решаем мы конечную задачу или лишь вспомогательную, для того чтобы затем
решить задачу классификации, или регрессии, или еще какую-нибудь.
И тем, жесткая кластеризация или мягкая.
То есть относим мы объект к одному кластеру или сразу к нескольким с
каким-то весом.