Инструмент KXEN
Предпосылки создания KXEN
В 1990-е годы были получены важные результаты в математике и машинном обучении. Инициатором исследований в этой области стал Владимир Вапник, опубликовавший свою Статистическую Теорию Обучения. Он был первым, кто приоткрыл дверь к новым путям декомпозиции ошибки, получаемой в процессе применения методов машинного обучения. Он обнаружил и описал структуру этой ошибки и на основе сделанных выводов отыскал способ структурировать методы моделирования.
Что же дает такая структура? Вместо того, чтобы случайным образом выбирать и опробовать все имеющиеся методы, она позволяет определить направление для поиска и сравнения методов между собой. Возникает резонный вопрос: "Так значит, все-таки нужно иметь все эти методы, чтобы сравнивать их между собой?" Ответ: "нет". И вот почему.
Поскольку подбор подходящего метода анализа стал осознанным, а не случайным, и в основе его лежат математические выводы, то появилась возможность извлечь мета-алгоритмы и осуществлять такой поиск автоматически. Этот подход используется на всех этапах обработки данных в KXEN. В действительности, идеологи KXEN использовали и проверяли указанные концепции в решении реальных проблем более десяти лет.
Здесь необходимо уточнить один важный момент. При всех достоинствах мета-алгоритмов KXEN, они не идеальны, и связано это с необходимостью компромисса. Пользователю нужна высокая скорость анализа и в то же время легкая интерпретация полученного результата.
Тот математический аппарат, который заложен в KXEN, в ходе анализа строит несколько конкурирующих моделей. Но этот процесс осуществляется не случайным образом (перебором разных методов моделирования), а путем изучения различных наборов моделей с опорой на Теорию минимизации структурного риска В. Вапника (Structured Risk Minimization). Создатели KXEN разработали механизм сравнения моделей, с тем чтобы добиться наилучшего соотношения между их точностью и надежностью, и уже эту оптимальную модель представить в качестве результата анализа пользователю.
В предыдущих лекциях мы установили, что одна из ключевых проблем в предсказательном анализе - приведение данных в соответствие с используемыми алгоритмами. Одни алгоритмы воспринимают только символы, другие - только числа. Очень часто эксперту приходится тратить много времени на предварительную подготовку данных и их кодирование (обработка пропусков в данных, обработка выбросов, кодирование данных в зависимости от выбранного алгоритма для анализа и т.д.) Также предполагается, что в распоряжении аналитика есть алгоритмы, которые позволяют получить хорошие и состоятельные результаты.
Каким же образом KXEN решает эту проблему? Разработчики KXEN интегрировали способы автоматической обработки отсутствующих и нетипичных значений и технологию предварительного кодирования. Подготовка данных в KXEN разделена на два этапа. На первом этапе, который называется "преобразование данных" (Data Manipulation), специалисты в предметной области выбирают в базе данных или самостоятельно создают атрибуты (переменные, столбцы), которые могут представлять интерес для их задачи. Например, ни одна автоматическая система не скажет, что последняя пятница месяца является хорошим индикатором для прогнозирования денежных потоков между банками. Второй этап подготовки данных включает в себя оптимальное кодирование указанных атрибутов для их наилучшего анализа в рамках выбранных алгоритмов. Задача KXEN заключается в том, чтобы, как только бизнес-пользователь проведет описание задачи, обеспечить автоматическое кодирование соответствующих данных и извлечь максимум сведений по поставленному вопросу.
Другим ключевым моментом является интерпретируемость результатов. Все компоненты KXEN сконструированы таким образом, чтобы представлять конечным пользователям содержательные результаты, т.е. содержательное наполнение, которое отображается в виде графиков, например, понятие вклада переменных, важности категорий, индикаторов качества и надежности.
Сами по себе методы описательного и предсказательного анализа бесполезны. Чтобы извлечь прибыль из модели прогнозирования оттока клиентов, необходимо внедрить эту модель в операционную среду компании и на основе прогнозной оценки предпринимать те или иные действия. Поскольку перед использованием моделей их необходимо натренировать (адаптировать к текущей ситуации), дескриптивный анализ и прогнозирование - это всего лишь часть процесса. Недостаточно обеспечить себя инструментом, необходимо обеспечить себя компонентами, которые будут интегрированы в операционную среду. В результате появляются следующие требования:
- Четкий и лаконичный API.
- Возможность интеграции в любой пользовательский интерфейс.
- Отсутствие необходимости временного или постоянного копирования данных для анализа.
Это требование отражает ограничение на архитектуру. Разработчики KXEN намеренно отказались от копирования данных во временное хранилище в процессе анализа. Тренировка моделей в KXEN осуществляется путем нескольких разверток на данных, т.е. "на лету" (строка за строкой). Правда, в этом случае от пользователя может потребоваться посмотреть на выборку несколько раз в зависимости от компонент, которые включаются в анализ.
- Возможность внедрения моделей в операционную среду компании.
Выполнение этого требования дает возможность не только производить моделирование в режиме on-line, но и экспортировать построенные модели, используя другие программные языки, например Java, SQL, PMML и др. Встраивание модели KXEN в виде программного кода в рабочую базу данных позволяет производить анализ и получать прогнозную оценку в регулярном режиме.
У потенциального пользователя может возникнуть вопрос, почему KXEN не создает отдельное приложение. Ответ достаточно прост - в этой сфере работают уже очень много игроков; также известно, что издержки входа при создании подходящего приложения очень велики. Поэтому создатели KXEN выбрали путь партнерства с ведущими компаниями, которые уже работают на этих вертикальных рынках.
Примером такого партнерства является специальный модуль KXEN для Clementine, хорошо известного приложения Data Mining от SPSS, который интересен как с точки зрения самой интеграции приложений, так и сочетания KXEN с более традиционными техниками Data Mining.
И еще один вопрос, который часто задается потенциальными партнерами: "Зачем мне встраивать технологию KXEN вместо того, чтобы просто связать свое приложение с приложением одного из вендоров (продавцов) Data Mining?" Ответ на этот вопрос следующий: практический опыт показал, что использование дескриптивного анализа и прогнозирования не заканчивается построением модели. Данные меняются со временем, и необходимо периодически производить мониторинг эффективности моделей с целью принятия решения об их корректировке или выставления меток в операционной среде. Компания KXEN включила управление конфигурацией модели в API, тем самым обеспечив сигнализацию об автоматическом выявлении отклонений на входных распределениях или во взаимосвязях входов-выходов. Очевидно, в последнем случае необходимо использование надежных методов, потому что статистические отклонения в производительности модели не должны являться следствием техники моделирования, но должны идентифицировать различия в данных, которые требуется моделировать.
Средства KXEN специально построены на компонентной архитектуре для возможности встраивания в среды не только с целью мониторинга жизненного цикла модели, но и управления этим циклом. Это невозможно через простое соединение с популярным средством прогнозирования. KXEN будет генерировать осмысленные ответы на ситуации из реальной жизни автоматически, просто и действительно быстро. Таким образом, реальный смысл не в том, чтобы запускать внешний пользовательский интерфейс для построения моделей, а в том, чтобы иметь возможность: