BIRCH

Материал из testwiki
Перейти к навигации Перейти к поиску

Сбалансированное итеративное сокращение и кластеризация с помощью иерархий (BIRCH, Шаблон:Lang-en) — это алгоритм интеллектуального анализа данных без учителя, используемый для осуществления иерархической кластеризации на наборах данных большого размераШаблон:Sfn. Преимуществом BIRCH является возможность метода динамически кластеризовать по мере поступления многомерных метрических Шаблон:Не переведено 5 в попытке получить кластеризацию лучшего качества для имеющегося набора ресурсов (памяти и Шаблон:Не переведено 5). В большинстве случаев алгоритм BIRCH требует одного прохода по базе данных.

Разработчики BIRCH утверждали, что это был «первым алгоритмом кластеризации, предлагающим в базах данных эффективно обрабатывать 'шум' (точки данных, которые не являются частью схемы)»Шаблон:Sfn побивший DBSCAN за два месяца. Алгоритм получил в 2006 году приз SIGMOD после 10 лет тестирования[1].

Проблема с предыдущими методами

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

Преимущества BIRCH

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

Алгоритм

Алгоритм BIRCH берёт в качестве входа набор из Шаблон:Mvar точек данных, представленный как вещественные вектора, и желаемое число кластеров Шаблон:Mvar. Алгоритм разбит на четыре фазы, вторая из которых не обязательна.

Первая фаза строит CF дерево точек данных, высоко сбалансированную древесную структуру, определённую следующим образом:

  • Если дан набор N d-мерных точек данных, признак кластеризации (Шаблон:Lang-en) CF набора определяется как тройка CF=(N,LS,SS), где LS=i=1NXi является линейной суммой, а SS=i=1N(Xi)2 является суммой квадратов точек данных.
  • Признаки кластеризации организуются в CF-дерево, высоко сбалансированное дерево с двумя параметрами: коэффициентом ветвления B и порогом T. Каждый нелистовой узел состоит максимум из B входов вида [CFi,childi], где childi является указателем на его i-ого потомка, а CFi является признаком кластеризации, представляющим связанный подкластер. Лист содержит не более L входов, каждый вида [CFi]. Он также имеет два указателя, prev и next, которые используются для соединения в цепь все листы. Размер дерева зависит от параметра T. Требуется, чтобы узел A вмещался на страницу размера P. B и L определяются значением P. Таким образом, P может меняться для Шаблон:Не переведено 5. Это очень компактное представление набора данных, поскольку каждый лист не является отдельной точкой данных, а является подкластером.

На втором шаге алгоритм просматривает все листья в начальном CF-дереве, чтобы построить меньшее CF-дерево путём удаления выпадений и группирования переполненных подклассов в бо́льшие подклассы. Этот шаг в исходном представлении BIRCH помечен как необязательный.

На третьем шаге используется существующий алгоритм для кластеризации всех листов. Здесь применяется агломерирующий иерархический алгоритм кластеризации непосредственно к подкластерам, представленным их CF-векторами. Это также обеспечивает гибкость, позволяющую пользователю указать либо желаемое число кластеров, либо желаемый порог диаметра кластеров. После этого шага получаем набор кластеров, которые содержат главные схемы распределения в данных. Однако могут существовать небольшие локальные неточности, которые могут быть обработаны необязательным шагом 4. На шаге 4 центры тяжести кластеров, полученных на шаге 3, используются как зародыши и точки перераспределения точек данных для получения нового набора кластеров. Шаг 4 обеспечивает также возможность отбрасывания выбросов. То есть точка, которая слишком далека от ближайшего зародыша, может считаться выбросом.

Вычисление признаков кластеров

Если дано только CF=[N,LS,SS], те же измерения могут быть получены без знания истинных значений.

  • Центроид: C=i=1NXiN=LSN
  • Радиус: R=i=1N(XiC)2N=NC2+SS2CLSN
  • Среднее расстояние между кластерами CF1=[N1,LS1,SS1] и CF2=[N2,LS2,SS2]:D2=i=1N1j=1N2(XiYj)2N1N2=N1SS2+N2SS12LS1LS2N1N2

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

Примечания

Шаблон:Примечания

Литература

Шаблон:Refbegin

Шаблон:Refend Шаблон:Машинное обучение Шаблон:Rq