интересно
Предыдущая | Содержание | Следующая

Реинжиниринг (data mining). Продукт poly analyst

Термин Data Mining буквально переводится как заготовка данных. По оценкам западных специалистов, современный аналитик до 80% (!) времени тратит даже не на подготовку, а на поиск и извлечение необходимых данных из разнообразных потоков деловой информации. (В скобках заметим, что отечественные информационные потоки, к тому же, при видимом обилии данных в большинстве своем малопригодны для немедленного использования, что только усложняет задачу специалистам).

Представьте, что Вам каждый день на сервер падает 20-30 Gb деловой информации...Представили? А во что может превратится сама по себе процедура поиска в таких объемах, вы почувствовали? Между прочим, на российских просторах такие задачи не редкость уже сегодня.

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

PolyAnalyst - российская система класса Data Mining, разработанная на основе технологий искусственного интеллекта (эволюционное программирование, генетические алгоритмы), призвана помочь в обнаружении и быстром показе взаимосвязи между разными рынками, между разными элементами рынка, между ценными бумагами и соответственно в принятии решений.

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

PolyAnalyst позволяет представить обнаруженные закономерности в символьной форме - как математические формулы, таблицы предсказаний, структурные законы и алгоритмы, т.е. в естественной и удобной для понимания форме. Появление таких систем означает переход от накопле-ния и оперативного использования данных к их анализу, к поиску и выявлению закономерностей, скрытых в постоянно пополняемых хранилищах. Элементы автоматической обработки и анализа данных становятся неотъемлемой частью концепции электронных хранилищ данных (data warehouse).

Желательно, чтобы системы выработки знаний отражали объективные закономерности, а не просто описыва-ли данные какими-то эмпирическими функциями. PolyAnalyst стремится к объективности, "отлучая" пользователя от выбора модели и основываясь исключительно да самих данных.

PolyAnalyst строит эмпирические модели исследуемых объектов или явлений, основываясь исклю-чительно на самих исходных данных. Программа осуществляет автоматизированный анализ данных, вскрывая внутренние связи и взаимозависимости, "похороненные" в больших массивах информации. Обнаруживаемые пакетом PolyAnalyst знания об объекте могут быть интегрированы с используемым набором программ поддержки принятия решения. Наряду с опытом человека, принимающего решение, они могут оказаться ключевым моментом в достижении успеха. Универсальный характер пакета делает его использование весьма гибким.

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

Как правило, пользователь начинает исследование с некоторой предварительной модели и перед программой ставится задача совершенствования существующей модели. Так как в PolyAnalyst машина и человек говорят на одном и том же языке, пользователь легко формулирует свою на-чальную модель, которую система должна улучшать. Может возникнуть что-то типа сотрудничества машины и квалифицированного пользователя; что-то вы подсказываете программе, что-то программа вам. Вся "наука", вся весьма и весьма сложная "начинка" спрятана от пользователя. Про-граммa задумана так, чтобы максимально облегчить работу с ней пользователям-непрограммистам и в то же время гарантировать высокое качество и достоверность результатов. Все результаты анализа формулируются в текстовой и графической формах, удобных для восприятия человеком.

Система PolyAnalyst состоит из пяти основных модулей. Центральный пункт меню программы - раздел Explore, где предлагаются на выбор 5 вариантов автомати-зированного исследования:

предварительный анализ данных на существование взаимозависимости:

поиск нелинейных взаимозависимостей в данных и представление их в символьной форме;

классификация;

кластеризация:

построение многопараметрической линейной регрессии.

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

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

Для выделения структурных компонент на фоне бесструктурного шума программа сравнивает распределения зависимой переменной в разных областях пространства независимых переменных; тот набор координат в которых различие наиболее сильно, соответствует наиболее влияющим параметрам. ARNAVAC обнаруживает в массивах данных функционально связные кластеры, фильтрует случай-ные выбросы, связанные, например, с ошибкой ввода данных оператором. Если удается установить взаимозависимость, даже слабую, об этом будет сделано сообщение с указанием статистических характеристик, визуализацией значимой области и выпавших точек. По содержанию эта же задача может быть "вывернута наизнанку" - модуль может использо-ваться не для отсеивания ошибок, а для поиска естественных по своей природе исключений с целью их идентификации и независимого анализа. Этот модуль естественно использовать для определения моментов нестабильности рынка, для анализа "выбросов" рынка по отношению к некоторому индикатору с целью определения момента перехода на другую стратегию игры.

Наиболее интересная центральная часть системы позволяет строить нелинейные регрессионные модели. При этом можно использовать не только числовые и логические переменные, но и так называемые категориальные переменные. Core PolyAnalyst - ядро системы, основанный на принципах эволюционного программирования автоматический генератор функциональных процедур, служащих для описания скрытых закономерностей. Его назначение - автоматическая генерация различных гипотез и их проверка. Известно, что статистические пакеты требуют априорных допущений о моделях. При работе с пакетом PolyAnalyst не нужно заранее допускать какие-либо закономерности в данных: это может сделать программа анализа функциональных зависимостей - вот принципиальное отличие от статистических методов, где функциональную зависимость задаст пользователь. В PolyAnalyst от пользователя требуется лишь указать зависимую переменную.

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

Процесс построения этих программ осуществляется как эволюция программ, этим метод отчасти похож на генетические алгоритмы. Затем в полученную программу вносятся некоторые модификации с применением методов так называемых обобщающих преобразований, гарантирую-щих, что потомки будут описывать анализируемый набор данных не хуже, чем исходная "родительская" программа. Таким образом формируется популяция программ, кон-курирующих в точности выражения исходной зависимости. Из популяции выделяются растущие, постепенно усложняющиеся генетические линии. Для контроля ста-тистической значимости применяется рандомизированное тестирование.

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

Метод классификации, основанный на двух рассмотренных модулях, предназначен для построения моде-лей на базе логических полей и для прогнозирования этих полей. Характерная задача модуля классификации -построение стратегии игры: продавать ли ценную бумагу или, напротив, придержать до лучших времен? Пусть анализируемое правило есть выражение, найденное модулем анализа функциональных зависимостей или многопараметрической линейной регрессии. Тогда классификационное правило суть просто условное выражение, принимающее одно из двух значений в зависимости от того, превосходит ли результат применения правила пороговое значение.

Еще одна задача, решаемая PolyAnalyst, -кластеризация, определение: однородны ли исходные данные или они каким-либо образом группируются (и если группируются, то по каким признакам).

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

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

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

По сути, PolyAnalyst не накладывает особых ограничений на анализируемые данные: скорее всего, вас будут сдерживать не ограничения программы, а возможности компьютера - его память и производительность. Всего PolyAnalyst позволяет одновременно исследовать до 1000 полей и до 100000 записей.

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

Все механизмы PolyAnayst "спрятаны" внутри системы и не видимы для пользователя, который взаи-модействует со специальным модулем трансляции и представления полученных данных. PolyAnalyst предоставляет пользователю объектно-ориентированную рабочую среду для написания сценария и проведения исследования. Вся информация представляется в виде объектов нескольких классов. Все логические объекты, возникающие в процессе анализа данных (подмножества данных, правила, за-висимости, функциональные преобразования данных, графики, отчеты, текущие процессы в работе программы) представляются на экране монитора в виде графических объектов, с которыми могут производиться интуитивно понятные операции с помощью мыши или клавиатуры.

Базовая версия, функционирует на платформе Windows NT, однако существует и версия программы для OS/2 Warp. PolyAnalyst может работать как на отдельном пер-сональном компьютере, так и в сети с использованием технологии клиент-сервер. В последнем варианте PolyAnalyst может выполнять несколько задач анализа данных, запу-щенных с разных рабочих мест локальной сети, клиенты могут функционировать и под Windows 95. Принципиальным для работы аналитического блока является использование параллельных процессов с выделением каждому процессу одного и того же кванта времени. Анализ можно значительно ускорить, если ваш компьютер/сервер использует многопроцессорную плату.