Что такое кластеризация

И как ее эффективно использовать



Приглашаем вас ознакомиться с нашей новой статьей "Примеры кластеризации" которая представляет обзор различных алгоритмов кластеризации и их применение в различных сферах. В начале статьи мы разъясняем основные понятия, объясняя, что такое кластеризация и бесконтрольное обучение. Затем мы представляем ряд популярных алгоритмов кластеризации, включая алгоритм кластеризации k-средних, модель гауссовой смеси (GMM), спектральную кластеризацию, иерархическую кластеризацию и сдвиг среднего - с примерами их реализации на языке Python.

Алгоритмы кластеризации — это мощная техника машинного обучения на данных без контроля. Наиболее распространенными алгоритмами в машинном обучении являются иерархическая кластеризация и кластеризация k-средних. Эти два алгоритма невероятно мощны при применении к различным задачам машинного обучения.

И k-средние, и иерархическая кластеризация были применены к различным сценариям, чтобы помочь получить новое понимание задач.

Что такое кластеризация?

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

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

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

Что такое бесконтрольное обучение?

Бесконтрольное обучение — это когда вы обучаете алгоритм машинного обучения, но не даете ему ответ на проблему.

1. Алгоритм кластеризации k-средних в Python

Алгоритм группировки k-средних — это итерационный процесс, в котором необходимо минимизировать расстояние точки данных от средней точки данных в кластере. Алгоритм обучается только на входных данных, без выходных. Он работает путем поиска отдельных групп данных (т. е. кластеров), которые наиболее близки друг к другу. Точнее, он разбивает данные на кластеры, в которых каждая точка попадает в кластер, среднее значение которого ближе всего к этой точке данных.

алгоритм кластеризаци

2. Модель гауссовой смеси (GMM) в Python

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

Эти модели полезны, потому что гауссовы распределения обладают четко определенными свойствами, такими как среднее значение, дисперсия и ковариация. Среднее значение — это просто среднее значение входного сигнала в пределах кластера. Дисперсия измеряет колебания значений для одного входа. Ковариация — это матрица статистики, описывающая, как входы связаны друг с другом и, в частности, как они изменяются вместе.

В совокупности эти параметры позволяют алгоритму GMM создавать гибкие идентичные кластеры сложной формы. Если k-средние обычно определяет кластеры сферической формы, то GMM может определять группы Python различной формы. Это делает GMM более надежным, чем k-средние на практике.

GMM в Python

Модели гауссовой смеси в целом более надежны и гибки, чем кластеризация k-средними в Python. Опять же, это связано с тем, что GMM улавливает сложные формы кластеров, а K-means — нет. Это позволяет GMM точно определять группы в Python, которые являются более сложными, чем сферические кластеры, определяемые k-средними. GMM - идеальный метод для наборов данных умеренного размера и сложности, поскольку он лучше улавливает группы в наборах, имеющих сложную форму.

3. Спектральная кластеризация в Python

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

Спектральная кластеризация

4. Иерархическая кластеризация

Алгоритмы иерархической кластеризации стремятся создать иерархию кластеризованных точек данных.

Иерархическая агломеративная кластеризация стремится минимизировать количество групп путем объединения наиболее близких друг к другу, используя измерение расстояния, как пример, евклидово расстояние для числовых кластеров или расстояние Хэмминга для текстовых.

Иерархическая агломеративная кластеризация

5. Сдвиг среднего

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

7 примеров алгоритмов кластеризации в действии

1. Выявление фейковых новостей

Фейковые новости — явление не новое, но оно становится все более распространенным.

В чем проблема: фейковые новости создаются и распространяются быстрыми темпами благодаря технологическим инновациям, таким как социальные сети. Эта проблема привлекла к себе внимание во время президентской кампании в США в 2016 году. Во время этой кампании термин «фейковые новости» упоминался беспрецедентное количество раз.

Как работает методика кластеризаций: в работе, недавно опубликованной двумя студентами факультета компьютерных наук Калифорнийского университета в Риверсайде, говорится, что они используют алгоритмы группировки для выявления фейковых новостей на основе их содержания.

Алгоритм работает следующим образом: он берет содержание статьи, корпус, изучает используемые слова, а затем объединяет их в кластеры. Именно эти группы помогают алгоритму определить, какие статьи являются подлинными, а какие — фейковыми новостями. Определенные слова чаще всего встречаются в сенсационных, кликбейтных статьях. Если в статье встречается высокий процент специфических терминов, это повышает вероятность того, что материал является фейковой новостью.

2. Фильтр спама

Все знают папку «Нежелательная почта», или «Спам! в почтовом ящике. Это место, куда попадают письма, которые алгоритм определил как спам.

Многие курсы машинного обучения используют спам-фильтр в качестве примера обучения без наблюдения и кластеризации. <p">В чем заключается проблема: спам — это в лучшем случае раздражающая часть современных маркетинговых технологий, а в худшем — пример того, как люди выманивают ваши личные данные. Чтобы избежать попадания таких писем в ваш основной почтовый ящик, компании, занимающиеся электронной почтой, используют алгоритмы. Цель этих алгоритмов заключается в том, чтобы правильно определить, является ли письмо спамом или нет.

Как работает методика кластеризаций: метод группировки k-средних зарекомендовал себя как эффективный способ выявления спама. Он работает следующим образом: рассматриваются различные разделы электронного письма (заголовок, отправитель и содержимое). Затем данные группируются вместе.

Затем эти группы можно классифицировать, чтобы определить, какие из них являются спамом. Включение кластеризации в процесс классификации повышает точность фильтра до 97%. Это отличная новость для тех, кто хочет быть уверен, что не пропустит любимые рассылки и предложения.

3. Маркетинг и продажи

Персонализация и таргетинг — это большой бизнес.

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

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

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

4. Классификация сетевого трафика

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

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

Как работает методика кластеризаций: кластеризация k-средних используется для объединения характеристик источников трафика. Когда группы созданы, вы можете классифицировать типы трафика. Этот процесс быстрее и точнее, чем предыдущий метод. Имея точную информацию об источниках трафика, вы можете развивать свой сайт и эффективно планировать пропускную способность.

5. Выявление мошеннической или преступной деятельности

В данном сценарии мы сосредоточимся на мошенническом поведении таксистов. Однако эта техника используется во многих сценариях.

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

Как работает методика кластеризаций: анализируя записи GPS, алгоритм способен группировать схожие модели поведения. На основе характеристик групп вы можете классифицировать их на истинные и мошеннические.

6. Анализ документов

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

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

Как работает методика кластеризаций: для решения этой задачи была использована модель иерархической кластеризации. Алгоритм способен рассмотреть текст и сгруппировать его по различным темам. Используя эту технику, вы можете быстро кластеризовать и упорядочить похожие документы, используя характеристики, определенные в параграфе.

7. Фэнтези-футбол и спорт

Итак, до этого момента мы рассмотрели различные бизнес-задачи и то, как алгоритмы кластеризации применялись для их решения.

Но теперь перейдем к важнейшим вопросам — фэнтези-футболу!

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

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

Как использовать алгоритмы кластеризации?

Несмотря на то, что техника достаточно универсальна, вы можете применять ее во многих сценариях.

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

Таким образом, как только у вас появляется прочная реализация для работы с группированными данными, возможности становятся безграничными.

Сравнение алгоритмов кластеризации Python

Существует множество алгоритмов группировки, из которых можно выбирать. Только стандартный пакет кластеризации sklearn имеет 13 различных классов групп. Так какие же алгоритмы следует использовать?

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

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

Все это хорошо, но что, если вы не знаете многого о своих данных? Если, к примеру, вы «просто смотрите» и делаете некоторый разведочный анализ данных (EDA), то выбрать специализированный алгоритм таким образом не так просто.

Несколько правил для кластеризации EDA

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

  • Не ошибитесь! Если вы занимаетесь EDA, скорее всего вы пытаетесь учиться и получить интуитивное представление о ваших данных. В этом случае гораздо лучше не получить никакого результата, чем получить неправильный. Плохие результаты приводят к ложным инсайтам, которые, в свою очередь, направляют вас по совершенно неправильному пути. Вы не только не понимаете свои данные, вы неправильно их понимаете. Это означает, что эффективный алгоритм кластеризации EDA должен быть консервативным; он должен быть готов не распределять точки по группам; он не должен группировать точки вместе, если они действительно не находятся в кластере. И это есть у гораздо меньшего числа алгоритмов, чем вы можете подумать.
  • Интуитивно понятные параметры: Все алгоритмы группировки имеют параметры, вам нужно лишь сделать несколько шагов для настройки. Вопрос в том, как выбрать настройки для этих параметров? Если вы мало знаете о своих данных, может быть трудно определить, какое значение или настройку должен иметь тот или иной параметр. Это означает, что параметры должны быть достаточно интуитивно понятными, чтобы их можно было установить, не зная многого о ваших данных.
  • Стабильные кластеры: Если вы запустите алгоритм дважды с разной случайной инициализацией, вы должны ожидать, что получите примерно те же группы. Если вы делаете выборку данных, то взятие другой случайной выборки не должно радикально изменить результирующую структуру групп (если только у вас нет проблем с выборкой). Если вы меняете параметры алгоритма кластеризации, нужно, чтобы кластеризация изменялась в несколько стабильной предсказуемой манере.
  • Производительность: Наборы данных становятся все больше. Вы можете сделать подвыборку (таким образом вы увидите стабильность), но в конечном итоге вам нужен алгоритм группировки, который может масштабироваться до больших объемов данных. От алгоритма мало толку, если вы можете использовать его, только взяв настолько маленькую подвыборку, что она уже не является репрезентативной для данных в целом!

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

Подпишитесь на рассылку для предпринимателей
Вы будете получать новости по нашим направлениям, советы и кейсы предпринимателей
Вы подписаны!

Нажимая кнопку «Войти», Вы принимаете условия
Политики конфиденциальности

Похожие статьи

Задача кластеризации

Классификация и кластеризация: отличия

Что такое кластер?

Ключевые слова keywords

Обозначение в поисковых системах

Точность поиска: что это такое и как его повысить

Новые
Популярные
Просмотры: 621

Скрытая семантика

Просмотры: 761

Парсинг ключевых фраз

Просмотры: 1188

Поисковые подсказки

Просмотры: 6424

Что такое кластер?

Просмотры: 4687

Классификация и кластеризация: отличия

Просмотры: 3771

Что такое кластеризация

Класстеризация
  • Анализ сайтов кластер
  • Предоставление данных кластер
  • Отслеживание позиций кластер
  • Анализ конкурентов кластер
Некластеризация
  • Анализ сайтов Некластер1
  • Предоставление Неданных кластер
  • Отслеживание Непозиций кластер
  • Анализ конкурентов Некластер

а вот здесь шеф жжет с задачками(((((((