Анализ "ближайших соседей"
Данный узел или опция доступны, только если они включены в лицензии PolyAnalyst Server.

Задача узла Ближайшие соседи – решить новую проблему, вспомнив подобную ситуацию, разрешенную ранее, и использовать полученные ранее сведения. Приведем несколько конкретных проблемных ситуаций:

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

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

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

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

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

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

Алгоритм классификации основан на выявлении похожих записей в таблице и использовании среднего значения целевой переменной для прогнозирования значения целевой переменной в другой похожей записи. Сложность для алгоритма состоит в определении сходства записей, того, какие независимые переменные более значимы для составления прогноза, а также в прогнозировании значения целевой переменной. Основная функция узла БС – прогнозирование значений дискретных или непрерывных переменных или их деление на категории. Механизм анализа ближайших соседей использует систему классификации на основе памяти и приписывает значения точкам данных на основе их "близости" к другим точкам данных. Правила, которые он выводит, нельзя просто просмотреть, как в линейной регрессии, но они могут использоваться для классификации других точек данных.

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

Когда приходится иметь дело с большим количеством независимых переменных, рекомендуется сначала использовать другие, более быстродействующие способы анализа, для выделения ключевых колонок и ограничения (сокращения) данных на входе в БС. Например, можно использовать линейную регрессию для выделения значимых независимых переменных, и только потом выбранные переменные используются на входе в анализ БС. Это позволит сэкономить время.

Анализ БС применяется для решения различных задач. Один из минусов данного алгоритма состоит в том, что он не позволяет наглядно представить модель или правила. Невозможно определить, какой именно фактор из большого количества исходных исторических данных лег в основу составленного прогноза.

Для анализа по методу БС PolyAnalyst использует алгоритм PAY, который является собственной доработкой компании общеизвестного алгоритма анализа ближайших соседей. Такой анализ предполагает поиск ответов на следующие вопросы:

  1. Как определить расстояние между записями?

  2. Сколько известных "соседей" следует использовать для получения среднего значения целевой переменной?

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

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

Чтобы определить количество исторических случаев для выведения среднего значения целевой переменной, алгоритм определяет величину окрестности (целое число). Отвечая на третий вопрос, алгоритм создает булевую переменную "взвешенное/невзвешенное значение". Далее рассмотрим, как определяется расстояние между двумя записями в таблице, некоторые из колонок которой булевые. Если анализируемая таблица данных содержит независимые числовые атрибуты {Xi}, а также ряд булевых и категориальных атрибутов {Aj}, расстояние между двумя записями определяется по формуле

\[d_{12}=\sqrt{\sum_{i}C_{i}D{i}(X_{i_{1}}-X_{i_{2}})^{2}+\sum_{j}c_{j}d_{j}eq(A_{j_{1}}-A_{j_{2}})}\]

Здесь

\[eq (a,b)=\left\{\begin{matrix} 0, \ \text{если} \ a=b & \\ 1 \ \text {в противном случае} & \end{matrix}\right.\]

Ci и cj могут иметь значение 0 или 1. Эти булевые коэффициенты определяют, входит ли соответствующий атрибут в выражение для расчета расстояния. PolyAnalyst находит оптимальные значения для этих коэффициентов. Di и dj – так называемые факторы расстояния, или коэффициенты нормализации. Они рассчитываются автоматически для нормализации значений, т.е. для того, чтобы сделать вклад отдельных атрибутов в функцию расстояния примерно одинаковым.

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

Каждый набор N+2 параметров соответствует определенному значению ошибки прогнозирования. В случае с булевыми или категориальными целевыми переменными ошибка прогнозирования определяется как количество неверно классифицированных записей, а в случае с числовыми целевыми атрибутами – это стандартная ошибка прогнозирования. Система должна определить оптимальное сочетание этих N+2 параметров, что обеспечит минимальную ошибку прогнозирования. Алгоритм анализа БС системы PolyAnalyst использует стандартный вариант генетического алгоритма для решения подобных задач.

  • Тип метрики, используемой в алгоритме PAY: евклидова или евклидова с коэффициентами шкалирования.

  • Тип выведения среднего значения: простой или взвешенный, на основе близости.

  • Трансформации генеральной совокупности, используемые генетическим алгоритмом: кроссовер, мутация, элитизм.

Статистическая значимость определяется с помощью рандомизированного тестирования.

Один из доступных способов оценки – сравнение результатов анализа реальных данных с результатами (вернее, их точностью), полученными для тех же данных со случайно смещенными значениями целевых переменных (мы называем это рандомизированными данными). При помощи этих тестов мы эмпирическим путем определяем параметры распределения точности, полученные для рандомизированных данных, затем сравниваем стандартную ошибку для реальных (Ereal) и рандомизированных данных. Показатель отличия S=(Erandavg-Ereal)/StddevErand. Здесь Erandavg – среднее значение стандартных ошибок для рандомизированных данных; StddevErand – стандартное отклонение стандартных ошибок для рандомизированных данных. Значение S > 3 обычно свидетельствует о том, что полученные результаты значимы.

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

Сравнение анализа БС с похожими методами анализа

Одно из преимуществ анализа БС – возможность создания модели классификации для редких значений, в отличие от других аналитических моделей, которые могут выдать недостоверный результат из-за существования редких значений в таблице данных.

По сравнению с другими методами исследования, которыми располагает система PolyAnalyst, одно из преимуществ узла БС состоит в том, что он позволяет использовать в качестве целевой переменной колонку с большим количеством разных классов. Другие алгоритмы требуют наличия 2 класса (Да/нет). Узел БС может работать с категориальными колонками, например, Возрастная группа, Категория налога и др.

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

Второй недостаток – сложность модели, т.к. она с трудом поддается интерпретации, в отличие, скажем, от линейной регрессии, результатом которой является простое линейное уравнение. Сама модель БС не имеет визуального представления, в окне просмотра результатов узла можно ознакомиться только с параметрами оценки.