Эволюционное программирование
Сегодня это самая молодая и наиболее перспективная ветвь data mining, реализованная, в частности, в системе PolyAnalyst. Суть метода в том, что гипотезы о виде зависимости целевой переменной от других переменных формулируются системой в виде программ на некотором внутреннем языке программирования. Если это универсальный язык, то теоретически на нем можно выразить зависимость любого вида. Процесс построения этих программ строится как эволюция в мире программ (этим метод немного похож на генетические алгоритмы). Когда система находит программу, достаточно точно выражающую искомую зависимость, она начинает вносить в нее небольшие модификации и отбирает среди построенных таким образом дочерних программ те, которые повышают точность. Таким образом система "выращивает" несколько генетических линий программ, которые конкурируют между собой в точности выражения искомой зависимости. Специальный транслирующий модуль системы PolyAnalyst переводит найденные зависимости с внутреннего языка системы на понятный пользователю язык (математические формулы, таблицы и пр.), делая их легкодоступными. Для того чтобы сделать полученные результаты еще понятнее для пользователя-нематематика, имеется богатый арсенал разнообразных средств визуализации обнаруживаемых зависимостей. Для контроля статистической значимости выводимых зависимостей применяется набор современных методов, например рандомизированное тестирование. Все эти меры приводят к тому, что PolyAnalyst показывает в задачах анализа российских финансовых рынков весьма высокие показатели.
В таблице 1 приведена оценка упомянутых методов и систем по трем предложенным критериям.
Таблица 1.
тех. анализ |
стат. пакеты |
нейросети |
CBR |
деревья решений |
GeneHunter |
МГУА (NeuroShell) |
PolyAnalyst |
|
значимость |
нет |
++ |
- |
+ |
- |
- |
- |
++ |
интерпретируемость |
нет |
+- |
- |
- |
++ |
+- |
+ |
+ |
автоматизм |
++ |
- |
+ |
+ |
+ |
- |
+ |
+ |