Читать книгу Интеллектуальный анализ данных. Учебник - Вадим Николаевич Шмаль - Страница 6

Кластеризация

Оглавление

Кластеризация – это задача обнаружения групп и структур в данных, которые в той или иной мере «похожи», не используя известные структуры в данных, а обучаясь на том, что уже есть.

В частности, кластеризация используется таким образом, что новые точки данных добавляются только к существующим кластерам, без изменения их формы для соответствия новым данным. Другими словами, кластеры формируются до сбора данных, а не закрепляются после того, как все данные собраны.

Учитывая набор параметров для данных, которые (в основном) являются переменными, и их «коллинеарность», кластеризацию можно рассматривать как иерархический алгоритм для поиска кластеров точек данных, удовлетворяющих набору критериев. Параметры можно сгруппировать в одну из двух категорий: значения параметров, определяющие пространственное расположение кластеров, и значения параметров, определяющие отношения между кластерами.

Учитывая набор параметров для набора данных, кластеризацию можно рассматривать как обнаружение этих кластеров. Какие параметры мы используем для этого? Метод неявной кластеризации, который находит ближайшие кластеры (или, в некоторых версиях, кластеры, более похожие друг на друга) с наименьшими вычислительными затратами, вероятно, является самым простым и наиболее часто используемым методом для этого. При кластеризации мы стремимся к тому, чтобы кластеры были как можно более связаны друг с другом – не имеет значения, делаем ли мы это, проводя больше измерений или используя только определенную технику для сбора данных.

Но в чем разница между кластеризацией и разделением данных на один или несколько наборов данных?

Методы неявной кластеризации и управляемой кластеризации на самом деле очень похожи. Вся разница в том, что мы используем разные параметры, чтобы определить, в каком направлении нам следует разделять данные. Возьмем в качестве примера набор точек на сфере, которые определяют взаимосвязанную сеть. Оба метода направлены на то, чтобы сеть была максимально близка к сети, определяемой двумя ближайшими точками. Это потому, что нам все равно, если мы очень далеко от одного или другого. Итак, используя алгоритм неявной кластеризации (кластерное расстояние), мы разделим сферу на две части, которые определяют очень разные сети: одна будет сетью, определяемой двумя ближайшими точками, а другая будет сетью, определяемой двумя самыми дальними точками. В результате получится две совершенно отдельные сети. Но это нехороший подход, потому что чем дальше мы удаляемся от двух ближайших точек, тем меньше расстояния между точками, тем труднее будет найти связи между ними – так как существует ограниченное количество точек, которые связаны небольшим расстоянием.

С другой стороны, метод контролируемой кластеризации (кластерное расстояние) потребовал бы от нас измерения длины между каждой парой точек, а затем выполнения вычислений, которые делают ближайшие друг к другу сети наименьшим возможным расстоянием. Результатом, вероятно, будут две отдельные сети, которые близки друг к другу, но не совсем одинаковы. Поскольку нам нужно, чтобы две сети были похожи друг на друга, чтобы обнаружить взаимосвязь, вполне вероятно, что этот метод не сработает – вместо этого два кластера будут совершенно разными.

Различие между этими двумя методами сводится к тому, как мы определяем «кластер». Дело в том, что в первом методе (кластерное расстояние) мы определяем кластер как множество точек, принадлежащих сети, аналогичной сети, определяемой двумя ближайшими точками. По этому определению сети всегда будут связаны (они будут находиться на одинаковом расстоянии друг от друга), независимо от того, сколько точек мы включаем в определение. Но во втором методе (управление кластеризацией) мы определяем кластеры как пары точек, которые находятся на одинаковом расстоянии от всех других точек в сети. Это определение может сильно затруднить поиск связанных точек, потому что оно требует, чтобы мы находили каждую точку, аналогичную другим точкам в сети. Тем не менее, это понятный компромисс. Сосредоточившись на поиске кластеров с одинаковым расстоянием друг от друга, мы, вероятно, получим больше полезных данных, поскольку, если мы найдем связи между ними, мы сможем использовать эту информацию, чтобы найти взаимосвязь между ними. Это означает, что у нас больше возможностей найти связи, что облегчит выявление отношений. Определяя кластеры с помощью измерений расстояния, мы гарантируем, что сможем найти взаимосвязь между двумя точками, даже если нет возможности напрямую измерить расстояние между ними. Но это часто приводит к очень малому количеству соединений в данных.

Глядя на пример создания двух наборов данных – один для неявной кластеризации и один для управляемой кластеризации – мы можем легко увидеть разницу между этими двумя методами. В первом примере результаты могут быть одинаковыми в одном случае и разными в другом. Но если метод хорош для поиска интересных взаимосвязей (как это обычно и бывает), он даст нам полезную информацию об общей структуре данных. Однако, если техника плохо выявляет взаимосвязи, то она даст нам очень мало информации.

Допустим, мы разрабатываем систему для определения направления нового продукта и хотим определить похожие продукты. Поскольку невозможно измерить направление продукта вне системы, нам придется найти связи между продуктами на основе информации об их названиях. Если есть хорошее правило, которое мы можем использовать для установления связей между похожими продуктами, тогда эта информация очень полезна, поскольку она позволяет нам находить интересные отношения (путем идентификации похожих продуктов, которые появляются близко друг к другу). Однако, если связь между двумя продуктами не очень очевидна, вполне вероятно, что это просто несвязанная связь – а значит, выбранный нами метод обнаружения признаков может не иметь большого значения. С другой стороны, если связь не очень очевидна, но чрезвычайно полезна (как в приведенном выше примере), то мы можем начать узнавать, как название продукта связано с процессом, через который продукт прошел. Это пример того, как разные методы могут давать очень разные результаты.

В отличие от характеристик разных методов, у вас также есть разные возможные техники. Например, когда я говорю, что моя система использует распознавание изображений, это не обязательно означает, что процесс, через который проходит продукт, использует распознавание изображений. Если есть изображения продукта, которые мы сделали в прошлом, или если мы захватили некоторые входные данные из изображения продукта, полученная система, вероятно, не будет использовать распознавание изображений. Это может быть что-то совершенно другое – что-то гораздо более сложное. Каждый из этих методов способен идентифицировать очень разные вещи. Результат может зависеть от характеристик фактических данных или от используемых данных. Это означает, что недостаточно посмотреть на конкретный тип инструмента – нам также нужно посмотреть, какой тип инструмента будет использоваться для определенного типа процесса. Это пример того, как анализ данных не должен быть сосредоточен только на решаемой проблеме. Скорее всего, система проходит множество различных процессов, поэтому нам нужно посмотреть, как будут использоваться различные инструменты для создания взаимосвязи между двумя точками, а затем решить, какой тип данных рассматривать.

Часто мы будем больше озабочены тем, как будет применяться метод. Например, мы можем захотеть увидеть, какой тип данных, скорее всего, будет полезен для поиска связи. Мы видим, что нет большой разницы в том, как применяется обработка естественного языка. Это означает, что, если мы хотим найти взаимосвязь, обработка естественного языка будет хорошим выбором. Однако обработка естественного языка не решает все возможные отношения. Обработка естественного языка часто полезна, когда мы хотим сделать огромное количество маленьких шагов, но обработка естественного языка ничего не делает, когда мы хотим пойти действительно глубоко. Взгляд на обработку естественного языка позволяет устанавливать связи между данными, чего нельзя сделать при использовании других методов. Это одна из причин, по которой обработка естественного языка может быть полезной, но не необходимой.

Тем не менее, обработка естественного языка часто не находит таких сильных связей, как распознавание изображений, потому что обработка естественного языка фокусируется на более простых данных, тогда как распознавание изображений рассматривает очень сложные данные. В этом случае обработка естественного языка не очень хороша, но все же может быть полезна. Рассмотрение обработки естественного языка не всегда является лучшим способом решения проблемы. Обработка естественного языка может быть полезна, если данные простые, но иногда невозможно работать с очень сложными данными.

Этот пример можно применить ко многим различным типам данных, но обработка естественного языка, как правило, более полезна для данных естественного языка, таких как текстовые файлы. Для более сложных данных (таких как изображения) обработки естественного языка часто бывает недостаточно. Если есть проблема с обработкой естественного языка, важно рассмотреть другие методы, такие как определение слов и определение того, какие данные на самом деле хранятся в изображении. Этот тип данных потребует другой структуры данных, чтобы найти взаимосвязь.

С возрастающей сложностью технологий у нас часто нет времени просматривать данные, которые мы просматриваем. Даже если мы посмотрим на данные, мы можем не найти хорошего решения, потому что у нас есть большое количество вариантов, но не так много времени, чтобы рассмотреть их все. Вот почему во многих компаниях есть специалист по данным, который может принять множество различных решений, а затем решить, что лучше всего подходит для данных

Интеллектуальный анализ данных. Учебник

Подняться наверх