§2. Эвристические методы
Научное исследование — это искусство, а правила его, если они слишком жёстки, приносят больше вреда, чем пользы.
— Дж. Томсон, «Дух науки»
Подавляющая часть классификаций на практике проводится именно эвристическими методами. Причины:
- они относительно просты, и смысл их ясен;
- в работу алгоритма можно вмешаться, меняя один-два параметра с понятным смыслом;
- трудоёмкость у них невысокая.
A1. Связные компоненты
Все объекты разбиваются на классы типа ленты (слабого сгущения, C3 из §1), где задаваемый параметр . В этой постановке задача классификации эквивалентна нахождению связных компонент графа: вершины и соединены ребром, если . Алгоритм выделения связных компонент — поиск в глубину — изложен в §9.
Для выбора полезно построить гистограмму межобъектных расстояний: высота прямоугольника над промежутком пропорциональна количеству , попавших в . При хорошей структурированности данных гистограмма, как правило, имеет два выделяющихся максимума:
- при — типичное внутриклассовое расстояние;
- при — типичное межклассовое расстояние.
Часто удачным выбором оказывается значение .
Смысл по-пацански: договорились, что «свои» — это те, до кого можно дотянуться рукой длиной , хотя бы через знакомых. Короткая рука — каждый сам за себя; длинная — весь район одна компания. Гистограмма подсказывает длину руки.
Подвигай на «облаках с центром» и на «лентах». Окно удачных узкое:
- чуть короче — и от облаков откалываются одиночки, а ленты рвутся на куски;
- чуть длиннее — и соседние классы склеиваются через пару случайно оказавшихся между ними точек. Это цепочечный эффект, о нём ещё будет речь в §3.
Поэтому гистограмма так важна: без неё приходится угадывать.
A2. Кратчайший незамкнутый путь
Его также называют минимальным покрывающим деревом или каркасом (КНП). Строится так:
- соединяются ребром две ближайшие точки;
- затем среди оставшихся отыскивается точка, ближайшая к любой из уже соединённых, и присоединяется к ним;
- и т. д. до исчерпания всех точек.
Р. Прим в 1957 г. доказал, что построенный таким способом граф имеет минимальную общую длину рёбер среди всевозможных соединений, связывающих все вершины.
В найденном КНП затем отбрасывают самых длинных дуг и получают классов. Число задаёт исследователь; на практике обычно . Метод позволяет выделять классы произвольной формы.
Длины рёбер КНП — это ровно уровни объединения в методе «ближнего соседа» из §3: каркас и дендрограмма P1 несут одну и ту же информацию.
Отступление: точка Штейнера
Если разрешается добавлять в граф новые вершины (точки Штейнера), то можно добиться меньшей, чем у КНП, длины пути. Уже для трёх точек , и на плоскости, у которых наибольший из углов меньше , существует точка внутри треугольника, для которой минимальна сумма .
Доказательство. Пусть — некоторая точка внутри . При повороте на вокруг вершины точки , и перейдут в точки , и соответственно. Так как равносторонний, то . Отрезок переходит в отрезок , поэтому . Значит, сумма равна длине ломаной . Она минимальна, когда ломаная является отрезком. Поскольку , для этого необходимо, чтобы . Иначе говоря, сторона должна быть видна из оптимальной точки под углом . Из симметрии то же самое должно быть верно и для двух других сторон .
Как построить такую точку циркулем и линейкой — вопрос 2, где она для выпуклого четырёхугольника — вопрос 3. Для произвольного расположения вершин и любого числа точек Штейнера эффективные алгоритмы построения кратчайшего соединения неизвестны.
A3. Метод k-средних
Предназначен для выделения классов типа C4 («класс с центром»). Название, ставшее популярным, введено Дж. Мак-Кином. Два варианта.
(a) Алгоритм Г. Болла и Д. Холла (1965).
- Случайно выбираются объектов — эталонов.
- Каждый объект присоединяется к ближайшему эталону — образуется классов.
- В качестве новых эталонов принимаются центры масс классов (каждому объекту приписана масса 1).
- После пересчёта объекты снова распределяются по ближайшим эталонам и т. д.
Критерий окончания — стабилизация центров масс всех классов.
Вместо случайно выбираемых эталонов лучше использовать наиболее удалённых объектов. Сначала отыскиваются два самых удалённых друг от друга объекта, затем -й эталон () определяется как наиболее удалённый в среднем от уже имеющихся.
(b) Алгоритм Дж. Мак-Кина (1967). Отличается тем, что при просмотре списка объектов пересчёт центра масс класса происходит сразу после присоединения к нему очередного объекта. Алгоритм Мак-Кина связан с функционалом качества из §5.
Смысл по-пацански: выбрали «старших», каждый прибился к ближайшему, старший переехал в середину своей компании, все снова перебежали к ближайшему — и так, пока никто не переезжает. Болл и Холл пересаживают всех разом, Мак-Кин — по одному.
Пощёлкай «Эталоны: случайные» и «Новая выборка». Случайные эталоны нередко ставят двух «старших» в одно облако, и алгоритм застревает в плохом разбиении. Самые удалённые объекты спасают почти всегда. Двигая «Шаг алгоритма», видно, как центры сползают к серединам облаков за несколько итераций. На лентах и кольце k-средних беспомощен: это не классы с центром.
A4. Алгоритм «Форель»
Первоначальное название — ФОРЭЛ, «ФОРмальный ЭЛемент». Предложен В. Н. Елкиной и Н. Г. Загоруйко в 1966 г.
- Случайный объект объявляется центром класса; все объекты на расстоянии не больше от него входят в первый класс.
- В классе определяется центр масс, который объявляется новым центром класса, и т. д. до стабилизации центра.
- Затем все объекты, попавшие в первый класс, изымаются, и процедура повторяется с новым случайным центром.
Алгоритмы A4 и A2 можно скомбинировать:
- при небольшом алгоритм A4 находит классов;
- их центры соединяют КНП, из которого удаляют самых длинных рёбер, и получают классов.
При этом образуются классы более сложной формы, чем -мерные шары. Здесь важна идея двухэтапности: сначала выделить заведомо компактные маленькие группы, затем произвести их объединение. Так можно успешно классифицировать довольно большие массивы информации — сотни объектов.
A5. Метод потенциальных ям
Предположим, что каждый объект создаёт вокруг себя поле притяжения с некоторой весовой функцией, например гладким квартическим ядром
где , а параметр задаёт эффективный размер области притяжения. Все вместе объекты создают потенциальное поле . Классам соответствуют потенциальные ямы: объект относится к яме, в которую он «скатывается» при свободном движении.
Практически приходится, стартовав с , запускать некоторый алгоритм (локальной) минимизации. Один из простейших — циклический перебор точек, соседних с текущей по осям, с шагом ( — точность поиска точки минимума):
- если значение в какой-то из них меньше, чем в текущей, происходит перемещение туда (противоположную по этой оси точку можно не проверять);
- для ускорения полезно запоминать знак успешного перемещения по каждой оси и в следующем цикле пробовать сдвигаться сначала в том же направлении;
- критерий окончания — отсутствие перемещений за время цикла.
Обозначим через конечную точку пути из . Объекты и отнесём к одному классу, если , то есть если и близки в метрике города D1. (Буква в книге не расшифрована — это небольшое целое число шагов; в виджете взято .) Число перемещений при поиске локального минимума — длина пути — характеризует удалённость от «центра» класса, дна ямы.
Из-за необходимости численной минимизации для каждого метод рекомендуется применять для классификации небольшого числа (нескольких десятков) объектов.
Смысл по-пацански: каждый объект — ямка в резиновом листе. Ямки рядом сливаются в одну большую воронку. Пустил шарик с каждого объекта — куда скатился, там его и класс.
На паре «большое облако + малое плотное» потенциальные ямы при около 2 обычно находят оба класса, хотя k-средних тут часто «отгрызает» от большого облака кусок в пользу малого. Попробуй и «Форель»: при маленьком она дробит всё на мелкие шарики — ровно тот первый этап, после которого их склеивают через КНП.