close

Вход

Забыли?

вход по аккаунту

?

Blum 0623B121B1

код для вставкиСкачать
МИНИСТЕРСТВО ОБРАЗОВАНИЯ И НАУКИ РОССИЙСКОЙ ФЕДЕРАЦИИ
Федеральное государственное автономное
образовательное учреждение высшего образования
САНКТ-ПЕТЕРБУРГСКИЙ ГОСУДАРСТВЕННЫЙ УНИВЕРСИТЕТ
АЭРОКОСМИЧЕСКОГО ПРИБОРОСТРОЕНИЯ
В. С. Блюм
МЕТОДЫ ИНТЕЛЛЕКТУАЛЬНОГО
АНАЛИЗА ДАННЫХ
(пакет программ Rapid Miner)
Учебное пособие
УДК 004.5
ББК 32.973
Б71
Рецензенты:
доктор педагогических наук, профессор А. Г. Степанов;
кандидат технических наук, доцент В. П. Иванов
Утверждено
редакционно-издательским советом университета
в качестве учебного пособия
Блюм В. С.
Б71 Методы интеллектуального анализа данных (пакет программ
Rapid Miner): учеб. пособие. – СПб.: ГУАП, 2018. – 205 с.
ISBN 978-5-8088-1304-5
Содержит обзор методов статистического и интеллектуального
анализа данных, а также описание языка прикладного пакета программ для автоматизированной обработки больших данных. Предназначено для студентов бакалавриата, обучающихся по направлениям 09.03.03 «Прикладная информатика» и 38.03.05 «Бизнес-информатика», а также магистрантов, обучающихся по направлению
09.04.03 «Прикладная информатика».
УДК 004.5
ББК 32.973
ISBN 978-5-8088-1304-5
© Санкт-Петербургский государственный
университет аэрокосмического
приборостроения, 2018
ВВЕДЕНИЕ
Интеллектуальный анализ данных – одно из новых направлений искусственного интеллекта.
Этот термин является кратким и весьма неточным переводом с
английского языка терминов DataMining и Knowledge Discovery in
Databases (DM&KDD). Более точный перевод – «добыча данных» и
«выявление знаний в базах данных».
Data Mining – это процесс обнаружения в сырых данных (row
data) раннее неизвестных, нетривиальных, практически полезных,
доступных интерпретации знаний (закономерностей), необходимых
для принятия решений в различных сферах человеческой деятельности (Г. Пятецкий-Шапиро).
Появление технологий DM&KDD обусловлено накоплением
огромных объемов информации в компьютерных базах данных,
которые стало невыгодно хранить и которыми стало трудно пользоваться традиционными способами. Последнее обстоятельство связано со стремительным развитием вычислительной техники и программных средств для представления и обработки данных. Большие
объемы накопленных данных постоянно приходится модифицировать из-за быстрой смены аппаратного и программного обеспечения
баз данных, при этом неизбежны потери и искажение информации.
Одним из средств, для преодоления подобных трудностей, является создание информационных хранилищ данных, доступ к которым не будет сильно зависеть от изменения данных во времени и от
используемого программного обеспечения.
Другой подход ориентирован на сжатие больших объемов данных путем нахождения некоторых общих закономерностей (знаний) в накопленной информации. Оба направления актуальны с
практической точки зрения. Второй подход более интересен для
специалистов в области искусственного интеллекта, так как связан
с решением проблемы приобретения новых знаний.
Следует заметить, что наиболее плодотворным является сочетание обоих направлений.
Наличие хранилища данных – необходимое условие для успешного проведения всего процесса KDD. Хранилищем данных называют предметно-ориентированное, интегрированное, привязанное ко
времени, неизменяемое собрание данных, используемых для поддержки процесса принятия управленческих решений.
Предметная ориентация означает, что данные объединены в категории и хранятся в соответствии с теми областями, которые они
3
описывают, а не в соответствии с приложениями, которые их используют. Такой принцип хранения гарантирует, что отчеты, сгенерированные различными аналитиками, будут опираться на одну
и ту же совокупность данных.
Привязанность ко времени означает, что хранилище можно рассматривать как собрание исторических данных, т. е. конкретные
значения данных однозначно связаны с определенными моментами
времени. Атрибут времени всегда явно присутствует в структурах
хранилищ данных.
Данные, занесенные в хранилище, уже не изменяются в отличие от оперативных систем, где присутствуют только последние, постоянно изменяемые версии данных. Для хранилищ данных характерны операции добавления, а не модификации данных. Современные средства администрирования хранилищ данных обеспечивают
эффективное взаимодействие с программным инструментарием DM
и KDD. В качестве примера можно привести разработки компании
SAS Institute: SAS Warehouse Administrator и SAS Enterprise Miner.
Интеллектуальные средства извлечения информации позволяют
почерпнуть из БД более глубокие сведения, чем традиционные системы оперативной обработки транзакций (OLTP – On-Line Transaction
Processing) и оперативной аналитической обработки (OLAP). Выведенные из данных закономерности и правила можно применять для
описания существующих отношений и закономерностей, а также
для принятия решений и прогнозирования их последствий.
Извлечение знаний из БД является одной из разновидностей
машинного обучения, специфика которой заключается в том, что
реальные БД, как правило, проектируются без учета потребностей
извлечения знаний и содержат ошибки.
В технологиях DM&KDD используются различные математические методы и алгоритмы: классификация, кластеризация, регрессия, прогнозирование временных рядов, ассоциация, последовательность.
Классификация – инструмент обобщения. Она позволяет перейти от рассмотрения единичных объектов к обобщенным понятиям,
которые характеризуют некоторые совокупности объектов и являются достаточными для распознавания объектов, принадлежащих
этим совокупностям (классам). Суть процесса формирования понятий заключается в нахождении закономерностей, свойственных
классам. Для описания объектов используются множества различных признаков (атрибутов), Проблема формирования понятий по
признаковым описаниям была сформулирована М. М. Бонгартом.
4
Ее решение базируется на применении двух основных процедур:
обучения и проверки. В процедурах обучения строится классифицирующее правило на основе обработки обучающего множества
объектов. Процедура проверки (экзамена) состоит в использовании
полученного классифицирующего правила для распознавания объектов из новой (экзаменационной) выборки. Если результаты проверки признаны удовлетворительными, то процесс обучения заканчивается, в противном случае классифицирующее правило уточняется в процессе повторного обучения.
Кластеризация – это распределение информации (записей) из
БД по группам (кластерам) или сегментам с одновременным определением этих групп. В отличие от классификации здесь для проведения анализа не требуется предварительного задания классов.
Регрессионный анализ используется в том случае, если отношения между атрибутами объектов в БД выражены количественными
оценками. Построенные уравнения регрессии позволяют вычислять значения зависимых атрибутов по заданным значениям независимых признаков.
Прогнозирование временных рядов является инструментом
для определения тенденций изменения атрибутов рассматриваемых
объектов с течением времени. Анализ поведения временных рядов
позволяет прогнозировать значения исследуемых характеристик.
Ассоциация позволяет выделить устойчивые группы объектов,
между которыми существуют неявно заданные связи. Частота появления отдельного предмета или группы предметов, выраженная
в процентах, называется распространенностью. Низкий уровень
распространенности (менее одной тысячной процента) говорит о
том, что такая ассоциация не существенна. Ассоциации записываются в виде правил: A → B, где А – посылка, B – следствие. Для
определения важности каждого полученного ассоциативного правила необходимо вычислить величину, которую называют доверительность А к В (или взаимосвязь А и В). Доверительность δ ( A / B ) показывает, как часто при появлении А появляется В, и рассчитыε ( A ∩ B ) / ε ( A ), где ε ( A ∩ B ) – распространенвается как δ ( A / B ) =
ность совместного появления А и В; ε ( A ) – распространенность А.
 A
Например, если δ   =
20%, то это значит, что при покупке товара
B
А в каждом пятом случае приобретается и товар В. Необходимо отметить, что если ε ( A ) ≠ ε ( B ), то δ ( A / B ) ≠ δ ( B / A ). В самом деле,
покупка компьютера влечет за собой покупку дисков, но покупка
дисков не ведет к покупке компьютера. Важной характеристикой
5
ассоциации является мощность, которая рассчитывается по форδ ( A / B ) / ε(B). Чем больше мощность, тем сильнее
муле M ( A / B ) =
влияние, которое наличие А оказывает на появление В.
Типичным примером применения ассоциации является анализ
структуры покупок. Например, при проведении исследования в супермаркете можно установить, что 65 % купивших картофельные
чипсы берут также и «кока-колу», а при наличии скидки за такой
комплект «колу» приобретают в 85 % случаев. Подобные результаты представляют ценность при формировании маркетинговых стратегий.
Последовательность – это метод выявления ассоциаций во времени. В данном случае определяются правила, которые описывают
последовательное появление определенных групп событий. Такие
правила необходимы для построения сценариев. Кроме того, их
можно использовать, например, для формирования типичного набора предшествующих продаж, которые могут повлечь за собой последующие продажи конкретного товара.
К интеллектуальным средствам DM&KDD относятся:
– нейронные сети,
– деревья решений,
– индуктивные выводы,
– методы рассуждения по аналогии,
– нечеткие логические выводы,
– генетические алгоритмы,
– алгоритмы определения ассоциаций и последовательностей,
– анализ с избирательным действием,
– логическая регрессия,
– эволюционное программирование,
– визуализация данных.
Иногда перечисленные методы применяются в различных комбинациях.
Нейронные сети относятся к классу нелинейных адаптивных
систем с архитектурой, условно имитирующей нервную ткань, состоящую из нейронов. Математическая модель нейрона представляет собой некий универсальный нелинейный элемент, допускающий возможность изменения и настройки его характеристик. Подробнее вопросы построения моделей нейронных сетей рассмотрены
в главе 5. Нейронные сети широко применяются для решения задач классификации. Построенную сеть сначала нужно «обучить»
на примерах, для которых известны значения исходных данных и
результаты. Процесс «обучения» сети заключается в подборе весов
6
межнейронных связей и модификации внутренних параметров активационной функции нейронов. «Обученная» сеть способна классифицировать новые объекты (или решать другие примеры), однако
правила классификации остаются не известными пользователю.
Деревья решений – метод структурирования задачи в виде древовидного графа, вершины которого соответствуют продукционным
правилам, позволяющим классифицировать данные или осуществлять анализ последствий решений. Этот метод дает наглядное представление о системе классифицирующих правил, если их не очень
много. Простые задачи решаются с помощью этого метода гораздо
быстрее, чем с использованием нейронных сетей. Для сложных проблем и для некоторых типов данных деревья решений могут оказаться неприемлемыми. Кроме того, для этого метода характерна проблема значимости. Одним из последствий иерархической кластеризации
данных является то, что для многих частных случаев отсутствует достаточное число обучающих примеров, в связи с чем классификацию
нельзя считать надежной. Методы деревьев решений реализованы во
многих программных средствах, а именно: С5.0 (RuleQuest, Австралия), Clementine (Integral Solutions, Великобритания), SIPINA (University of Lyon, Франция), IDIS (Information Discovery, США).
Индуктивные выводы позволяют получить обобщения фактов,
хранящихся в БД. В процессе индуктивного обучения может участвовать специалист, поставляющий гипотезы. Такой способ называют обучением с учителем. Поиск правил обобщения может осуществляться без учителя путем автоматической генерации гипотез.
В современных программных средствах, как правило, сочетаются
оба способа, а для проверки гипотез используются статистические
методы. Примером системы с применением индуктивных выводов
является XpertRule Miner, разработанная фирмой Attar Software
Ltd. (Великобритания).
Рассуждения на основе аналогичных случаев (Case-based reasoning – CBR) основаны на поиске в БД ситуаций, описания которых сходны по ряду признаков с заданной ситуацией. Принцип аналогии позволяет предполагать, что результаты похожих ситуаций
также будут близки между собой. Недостаток этого подхода заключается в том, что здесь не создается каких-либо моделей или правил, обобщающих предыдущий опыт. Кроме того, надежность выводимых результатов зависит от полноты описания ситуаций, как
и в процессах индуктивного вывода. Примерами систем, использующих CBR, являются: KATE Tools (Acknosoft, Франция), Pattern
Recognition Workbench (Unica, США).
7
Нечеткая логика применяется для обработки данных с размытыми значениями истинности, которые могут быть представлены
разнообразными лингвистическими переменными. Нечеткое представление знаний широко применяется в системах с логическими
выводами (дедуктивными, индуктивными, абдуктивными) для решения задач классификации и прогнозирования, например в системе XpertRule Miner (Attar Software Ltd., Великобритания), а также
в AIS и NeuFuz и др.
Генетические алгоритмы входят в инструментарий DM&KDD
как мощное средство решения комбинаторных и оптимизационных
задач. Они часто применяются в сочетании с нейронными сетями. В
задачах извлечения знаний применение генетических алгоритмов
сопряжено со сложностью оценки статистической значимости полученных решений и с трудностями построения критериев отбора
удачных решений. Представителем пакетов из этой категории является GeneHunter фирмы Ward Systems Group. Генетические алгоритмы используются также в пакете XpertRule Miner и др.
Логическая (логистическая) регрессия используется для предсказания вероятности появления того или иного значения дискретной целевой переменной. Дискретная зависимая (целевая) переменная не может быть смоделирована методами обычной многофакторной линейной регрессии. Тем не менее, вероятность результата
может быть представлена как функция входных переменных, что
позволяет получить количественные оценки влияния этих параметров на зависимую переменную. Полученные вероятности могут использоваться и для оценки шансов. Логическая регрессия – это, с
одной стороны, инструмент классификации, который используется
для предсказания значений категориальных переменных, с другой
стороны – регрессионный инструмент, позволяющий оценить степень влияния входных факторов на результат.
Эволюционное программирование – самая новая и наиболее
перспективная ветвь DM&KDD. Суть метода заключается в том, что
гипотезы о форме зависимости целевой переменной от других переменных формулируются компьютерной системой в виде программ
на определенном внутреннем языке программирования. Если это
универсальный язык, то теоретически он способен выразить зависимости произвольной формы. Процесс построения таких программ
организован как эволюция в мире программ. Когда система находит
программу, достаточно точно выражающую искомую зависимость,
она начинает вносить в нее небольшие модификации и отбирает среди построенных дочерних программ те, которые являются наиболее
8
точными. Затем найденные зависимости переводятся с внутреннего
языка системы на понятный пользователю язык (математические
формулы, таблицы и т. п.). При этом активно используются средства визуализации. Методы эволюционного программирования реализованы в системе PolyAnalyst (Unica, США).
RapidMiner – инструмент, созданный для Data Mining, с основной идеей, что майнер (аналитик) не должен программировать при
выполнении своей работы. При этом, как известно, для майнинга
нужны данные, поэтому его снабдили достаточно хорошим набором
операторов решающих большой спектр задач получения и обработки информации из разнообразных источников (базы данных, файлы и т. п.) [1].
RapidMiner – одна из лучших на сегодняшний день комплексных систем для DataMining (Интеллектуальный Анализ Данных,
ИАД) и статистического анализа. Прямой конкурент таким коммерческим системам как, например, SAS Enterprise.
Этот программный комплекс, написанный на Java, предлагает
продвинутые возможности анализа данных, реализованные в виде
основанного на шаблонах фреймвока. При этом пользователю вообще не требуется писать код.
RapidMiner предлагается скорее в виде сервиса, а не отдельной
программы.
Обладает очень серьезным набором алгоритмов для обработки и
анализа, включая обработку больших массивов данных. Очень красивая визуализация. Пакет обладает достаточно оригинальной концепцией. Работа с любым набором данных представляет собой процесс древовидного типа, в который можно, как в конструкторе, добавлять различные операторы ввода/вывода, обработки, визуализации, анализа и т. п. Дерево процесса представляет собой xml-файл.
9
1. ОБЗОР МЕТОДОВ
СТАТИСТИЧЕСКОГО АНАЛИЗА ДАННЫХ
В основе современных методов интеллектуального анализа данных лежат статистические методы анализа данных.
Объектом исследования в прикладной статистике являются статистические данные, полученные в результате наблюдений или экспериментов. Статистические данные – это совокупность объектов
(наблюдений, случаев) и признаков (переменных), их характеризующих. Например, объекты исследования: страны мира и признаки,
географические и экономические показатели, которые характеризуют: континент; высоту местности над уровнем моря; среднегодовую температуру; место страны в списке по качеству жизни, долю
валового вну треннего проду кта (ВВП) на душу населения; расходы
общества на здравоохранение, образование, армию; среднюю продолжительность жизни; долю безработицы, долю безграмотных;
индекс качества жизни и т. д.
Переменные – это величины, которые в результате измерения
могут принимать различные значения.
Независимые переменные – это переменные, значения которых в
процессе экcперимента можно изменять, а зависимые переменные –
это переменные, значения которых можно только измерять.
Переменные могут быть измерены в различных шкалах. Различие шкал определяется их информативностью. Рассматривают
следующие типы шкал, представленные в порядке возрастания их
информативности: номинальная, порядковая, интервальная, шкала отношений, абсолютная. Эти шкалы отличаются друг от друга
также и количеством допустимых математических действий. Самая «бедная» шкала – номинальная, так как не определена ни одна
арифметическая операция, самая «богатая» – абсолютная.
Измерение в номинальной (классификационной) шкале означает определение принадлежности объекта (наблюдения) к тому или
иному классу. Например: пол, род войск, профессия, континент и
т. д. В этой шкале можно лишь посчитать количество объектов в
классах – частоту и относительную частоту.
Измерение в порядковой (ранговой) шкале, помимо определения класса принадлежности, позволяет упорядочить наблюдения,
сравнив их между собой в каком-то отношении. Однако эта шкала
не определяет дистанцию между классами, а только то, какое из
двух наблюдений предпочтительнее. Поэтому порядковые экспериментальные данные, даже если они изображены цифрами, нельзя
10
рассматривать как числа и выполнять над ними арифметические
операции. В этой шкале дополнительно к подсчету частоты объекта можно вычислить ранг объекта. Примеры переменных, измеренных в порядковой шкале: бальные оценки учащихся, призовые
места на соревнованиях, воинские звания, место страны в списке
по качеству жизни и т. д. Иногда номинальные и порядковые переменные называют категориальными, или группирующими, так как
они позволяют произвести разделение объектов исследования на
подгруппы.
При измерении в интервальной шкале упорядочивание наблюдений можно выполнить настолько точно, что известны расстояния
между любыми двумя их них. Шкала интервалов единственна с точy ax + b ). Это означает, что
ностью до линейных преобразований (=
шкала имеет произвольную точку отсчета – условный нуль. Примеры переменных, измеренных в интервальной шкале: температура, время, высота местности над уровнем моря. Над переменными в
данной шкале можно выполнять операцию определения расстояния
между наблюдениями. Расстояния являются полноправными числами и над ними можно выполнять любые арифметические операции.
Шкала отношений похожа на интервальную шкалу, но она единственна с точностью до преобразования вида y = ax. Это означает, что шкала имеет фиксированную точку отсчета – абсолютный
нуль, но произвольный масштаб измерения. Примеры переменных,
измеренных в шкале отношений: длина, вес, сила тока, количество денег, расходы общества на здравоохранение, образование, армию, средняя продолжительность жизни и т. д. Измерения в этой
шкале – полноправные числа и над ними можно выполнять любые
арифметические действия.
Абсолютная шкала имеет и абсолютный нуль, и абсолютную единицу измерения (масштаб). Примером абсолютной шкалы является
числовая прямая. Эта шкала безразмерна, поэтому измерения в ней
могут быть использованы в качестве показателя степени или основания логарифма. Примеры измерений в абсолютной шкале: доля безработицы; доля безграмотных, индекс качества жизни и т. д.
Большинство статистических методов относятся к методам параметрической статистики, в основе которых лежит предположение,
что случайный вектор переменных образует некоторое многомерное распределение, как правило, нормальное или преобразуется к
нормальному распределению. Если это предположение не находит
подтверждения, следует воспользоваться непараметрическими методами математической статистики.
11
1.1. Корреляционный анализ
Между переменными (случайными величинами) может существовать функциональная связь, проявляющаяся в том, что одна из
них определяется как функция от другой. Но между переменными
может существовать и связь другого рода, проявляющаяся в том,
что одна из них реагирует на изменение другой изменением своего
закона распределения. Такую связь называют стохастической. Она
появляется в том случае, когда имеются общие случайные факторы,
влияющие на обе переменные. В качестве меры зависимости между
переменными используется коэффициент корреляции (r), который
изменяется в пределах от –1 до +1. Если коэффициент корреляции
отрицательный, это означает, что с увеличением значений одной переменной значения другой убывают. Если переменные независимы,
то коэффициент корреляции равен 0 (обратное утверждение верно
только для переменных, имеющих нормальное распределение). Но
если коэффициент корреляции не равен 0 (переменные называются
некоррелированными), то это значит, что между переменными существует зависимость. Чем ближе значение r к 1, тем зависимость
сильнее. Коэффициент корреляции достигает своих предельных
значений +1 или –1, тогда и только тогда, когда зависимость между
переменными линейная.
Пусть есть массив из n точек {x1,i, x2,i }.
Рассчитываются средние значения для каждого параметра:
x1 =
r=
∑ x1,i
n
, x2 =
(
)(
∑ x2,i
n
,
∑ x1,i − x1 ° x2,i − x2
(
∑ x1,i − x1
)
2
(
)
° ∑ x2,i − x2
)
2
.
И коэффициент корреляции:
r изменяется в пределах от –1 до 1. В данном случае это линейный коэффициент корреляции, он показывает линейную взаимосвязь между x1 и x2, r равен 1 (или –1), если связь линейна.
Коэффициент r является случайной величиной, поскольку вычисляется из случайных величин. Для него можно выдвигать и проверять следующие гипотезы:
1. Коэффициент корреляции значимо отличается от нуля (т. е.
есть взаимосвязь между величинами):
12
Тестовая статистика вычисляется по формуле:


r
1+ r 
=
ε  0,5°1n 
 n − 3,
−
 1 − r  2 ( n − 1) 

и сравнивается с табличным значением коэффициента Стьюдента
t ( p =0,95, f =∞ ) =1,96.
Если тестовая статистика больше табличного значения, то коэффициент значимо отличается от нуля. По формуле видно, что чем
больше измерений n, тем лучше (больше тестовая статистика, вероятнее, что коэффициент значимо отличается от нуля).
2. Отличие между двумя коэффициентами корреляции значимо:
Тестовая статистика:
 (1 + r1 )(1 − r2 ) 
=
ε 0,5°1n 
 °
 (1 − r1 )(1 + r2 ) 
1
1
1
+
n1 − 3 n2 − 3
Также сравнивается с табличным значением t ( p, ∞ ).
Корреляционный анализ позволяет установить силу и направление стохастической взаимосвязи между переменными (случайными величинами) [1]. Если переменные измерены, как минимум, в
интервальной шкале и имеют нормальное распределение, то корреляционный анализ осуществляется посредством вычисления коэффициента корреляции Пирсона, в противном случае используются
корреляции Спирмена, тау Кендала, или Гамма.
1.2. Регрессионный анализ
В регрессионном анализе моделируется взаимосвязь одной случайной переменной от одной или нескольких других случайных переменных [2]. При этом, первая переменная называется зависимой,
а остальные – независимыми. Выбор или назначение зависимой и
независимых переменных является произвольным (условным) и
осуществляется исследователем в зависимости от решаемой им задачи. Независимые переменные называются факторами, регрессорами или предикторами, а зависимая переменная – результативным признаком, или откликом.
Если число предикторов равно 1, регрессию называют простой,
или однофакторной, если число предикторов больше 1 – множе13
ственной или многофакторной. В общем случае регрессионную модель можно записать следующим образом:
=
y f ( x1, x2 ,…, xn ),
где y – зависимая переменная (отклик), xi ( i= 1,…,n ) – предикторы
(факторы), n – число предикторов.
Посредством регрессионного анализа можно решать ряд важных
для исследуемой проблемы задач:
1. Уменьшение размерности пространства анализируемых переменных (факторного пространства), за счет замены части факторов
одной переменной – откликом. Более полно такая задача решается
факторным анализом.
2. Количественное измерение эффекта каждого фактора, т. е.
множественная регрессия, позволяет исследователю задать вопрос
(и, вероятно, получить ответ) о том, «что является лучшим предиктором для...». При этом, становится более ясным воздействие отдельных факторов на отклик, и исследователь лучше понимает природу изучаемого явления.
3. Вычисление прогнозных значений отклика при определенных
значениях факторов, т. е. регрессионный анализ, создает базу для
вычислительного эксперимента с целью получения ответов на вопросы типа «Что будет, если…».
4. В регрессионном анализе в более явной форме выступает причинно-следственный механизм. Прогноз при этом лучше поддается
содержательной интерпретации.
1.3. Канонический анализ
Канонический анализ предназначен для анализа зависимостей
между двумя списками признаков (независимых переменных), характеризующих объекты [3]. Например, можно изучить зависимость между различными неблагоприятными факторами и появлением определенной группы симптомов заболевания, или взаимосвязь между двумя группами клинико-лабораторных показателей
(синдромов) больного. Канонический анализ является обобщением
множественной корреляции как меры связи между одной переменной и множеством других переменных. Как известно, множественная корреляция есть максимальная корреляция между одной переменной и линейной функцией других переменных. Эта концепция
была обобщена на случай связи между множествами переменных –
признаков, характеризующих объекты. При этом достаточно огра14
ничиться рассмотрением небольшого числа наиболее коррелированных линейных комбинаций из каждого множества.
Пусть, например, первое множество переменных состоит из
признаков {y1,...y p }, второе множество состоит из {x1,…, xg },
тогда взаимосвязь между данными множествами можно оценить как корреляцию между линейными комбинациями
a1y1 + a2 y2 +…+ a p y p , b1x1 + b2 x2 +…+ bg xg , которая называется канонической корреляцией. Задача канонического анализа в нахождении весовых коэффициентов таким образом, чтобы каноническая
корреляция была максимальной.
1.4. Методы сравнения средних
В прикладных исследованиях часто встречаются случаи, когда
средний результат некоторого признака одной серии экспериментов
отличается от среднего результата другой серии. Так как средние
это результаты измерений, то, как правило, они всегда различаются, вопрос в том, можно ли объяснить обнаруженное расхождение
средних неизбежными случайными ошибками эксперимента или
оно вызвано определенными причинами. Если идет речь о сравнении двух средних, то можно применять критерий Стьюдента
(t-критерий). Это параметрический критерий, так как предполагается, что признак имеет нормальное распределение в каждой серии
экспериментов. В настоящее время модным стало применение непараметрических критериев сравнения средних.
Сравнение средних результата один из способов выявления зависимостей между переменными признаками, характеризующими исследуемую совокупность объектов (наблюдений) [4]. Если при разбиении
объектов исследования на подгруппы при помощи категориальной
независимой переменной (предиктора) верна гипотеза о неравенстве
средних некоторой зависимой переменной в подгруппах, то это означает, что существует стохастическая взаимосвязь между этой зависимой переменной и категориальным предиктором. Так, например, если
установлено, что неверна гипотеза о равенстве средних показателей
физического и интеллектуального развития детей в группах матерей,
куривших и не куривших в период беременности, то это означает, что
существует зависимость между курением матери ребенка в период беременности и его интеллектуальным и физическим развитием.
Наиболее общий метод сравнения средних дисперсионный анализ. В терминологии дисперсионного анализа категориальный предиктор называется фактором.
15
1.5. Дисперсионный анализ
Дисперсионный анализ можно определить как параметрический, статистический метод, предназначенный для оценки влияния
различных факторов на результат эксперимента, а также для последующего планирования экспериментов. Поэтому в дисперсионном
анализе можно исследовать зависимость количественного признака
от одного или нескольких качественных признаков факторов. Если
рассматривается один фактор, то применяют однофакторный дисперсионный анализ, в противном случае используют многофакторный дисперсионный анализ.
В основе дисперсионного анализа лежит предположение о том,
что одни переменные могут рассматриваться как причины (факторы, независимые переменные): {f1,…fk }, а другие как следствия (зависимые переменные). Независимые переменные называют иногда
регулируемыми факторами именно потому, что в эксперименте исследователь имеет возможность варьировать ими и анализировать
получающийся результат [5].
Основной целью дисперсионного анализа (Analysis Of Variance –
ANOVA) является исследование значимости различия между средними с помощью сравнения (анализа) дисперсий. Разделение общей
дисперсии на несколько источников, позволяет сравнить дисперсию, вызванную различием между группами, с дисперсией, вызванной внутригрупповой изменчивостью. При истинности нулевой
гипотезы (о равенстве средних в нескольких группах наблюдений,
выбранных из генеральной совокупности), оценка дисперсии, связанной с внутригрупповой изменчивостью, должна быть близкой к
оценке межгрупповой дисперсии. Если вы просто сравниваете средние в двух выборках, дисперсионный анализ даст тот же результат,
что и обычный t-критерий для независимых выборок (если сравниваются две независимые группы объектов или наблюдений) или
t-критерий для зависимых выборок (если сравниваются две переменные на одном и том же множестве объектов или наблюдений).
Сущность дисперсионного анализа заключается в расчленении
общей дисперсии изучаемого признака на отдельные компоненты,
обусловленные влиянием конкретных факторов, и проверке гипотез о значимости влияния этих факторов на исследуемый признак.
Сравнивая компоненты дисперсии друг с другом посредством критерия Фишера, можно определить, какая доля общей вариативности результативного признака обусловлена действием регулируемых факторов.
16
Исходным материалом для дисперсионного анализа служат данные исследования трех и более выборок: {x1,…xn }, которые могут
быть как равными, так и неравными по численности, как связными, так и несвязными. По количеству выявляемых регулируемых
факторов дисперсионный анализ может быть однофакторным (при
этом изучается влияние одного фактора на результаты эксперимента), двухфакторным (при изучении влияния двух факторов) и
многофакторным (позволяет оценить не только влияние каждого
из факторов в отдельности, но и их взаимодействие).
Дисперсионный анализ относится к группе параметрических методов и поэтому его следует применять только тогда, когда доказано, что распределение является нормальным.
Дисперсионный анализ используют, если зависимая переменная
измеряется в шкале отношений, интервалов или порядка, а влияющие переменные имеют нечисловую природу (шкала наименований).
1.6. Частотный анализ
Таблицы частот, или как еще их называют одновходовые таблицы, представляют собой простейший метод анализа категориальных переменных. Таблицы частот могут быть с успехом использованы также для исследования количественных переменных, хотя при
этом могут возникнуть трудности с интерпретацией результатов.
Данный вид статистического исследования часто используют как
одну из процедур разведочного анализа, чтобы посмотреть, каким
образом различные группы наблюдений распределены в выборке,
или как распределено значение признака на интервале от минимального до максимального значения. Как правило, таблицы частот графически иллюстрируются при помощи гистограмм [6].
Частотный анализ, частотный криптоанализ – один из методов
криптоанализа, основывающийся на предположении о существовании нетривиального статистического распределения отдельных
символов и их последовательностей как в открытом тексте, так и в
шифротексте, которое, с точностью до замены символов, будет сохраняться в процессе шифрования и дешифрования.
Упрощённо, частотный анализ предполагает, что частота появления заданной буквы алфавита в достаточно длинных текстах
одна и та же для разных текстов одного языка. При этом, в случае
моноалфавитного шифрования, если в шифротексте будет символ
с аналогичной вероятностью появления, то можно предположить,
что он и является указанной зашифрованной буквой. Аналогич17
ные рассуждения применяются к биграммам (двубуквенным последовательностям), триграммам и т. д. в случае полиалфавитных
шифров.
Метод частотного криптоанализа известен с IX века (работы АлКинди), хотя наиболее известным случаем его применения в реальной жизни, возможно, является дешифровка египетских иероглифов Ж.-Ф. Шампольоном в 1822 году. В художественной литературе
наиболее известными упоминаниями являются рассказы «Золотой
жук» Эдгара По, «Пляшущие человечки» Конан Дойля, а также роман «Дети капитана Гранта» Жюль Верна.
Важными характеристиками текста являются повторяемость
букв (количество различных букв в каждом языке ограничено),
пар букв, то есть m (m-грамм), сочетаемость букв друг с другом,
чередование гласных и согласных и некоторые другие особенности. Примечательно, что эти характеристики являются достаточно устойчивыми.
Идея состоит в подсчёте чисел вхождений каждой nm возможных m-грамм в достаточно длинных открытых текстах =
T t1t2 …tl
составленных из букв алфавита {a1, a2 ,…an }. При этом просматриваются подряд идущие m-граммы текста:
t1t2 …tm ,t2t3 …tm +1,…,ti −m +1tl−m +2 …tl
Если L ( ai1ai2 …aim ) – число появлений m-граммы ai1ai2 …aim в
тексте T, а L – общее число подсчитанных m-грамм, то при достаточно больших L частоты L ( ai1ai2 …aim ) / L, для данной m-граммы
мало отличаются друг от друга.
В силу этого, относительную частоту считают приближением вероятности P ( ai1ai2 …aim ) появления данной m-граммы в случайно
выбранном месте текста (такой подход принят при статистическом
определении вероятности).
В общем случае частоту букв в процентном выражении можно
определить следующим образом: подсчитывается, сколько раз она
встречается в шифротексте, затем полученное число делится на
общее число символов шифротекста; для выражения в процентах,
полученный результат умножается на 100.
Частотность существенно зависит, однако, не только от длины текста, но и от его характера. Например, в техническом тексте
обычно редкая буква Ф может появляться гораздо чаще. Поэтому для надёжного определения средней частоты букв желательно
иметь набор различных текстов.
18
1.7. Кросстабуляция
Кросстабуляция (сопряжение) – процесс объединения двух (или
нескольких) таблиц частот так, что каждая ячейка в построенной
таблице представляется единственной комбинацией значений или
уровней табулированных переменных. Кросстабуляция позволяет совместить частоты появления наблюдений на разных уровнях
рассматриваемых факторов. Исследуя эти частоты, можно выявить
связи между табулированными переменными и исследовать структуру этой связи. Обычно табулируются категориальные или количественные переменные с относительно небольшим числом значений.
Если надо табулировать непрерывную переменную (предположим,
уровень сахара в крови), то вначале ее следует перекодировать, разбив диапазон изменения на небольшое число интервалов (например,
уровень: низкий, средний, высокий).
Практически каждый исследовательский проект начинается с
построения таблиц частот. Например, в социологических опросах
таблицы частот могут отображать число мужчин и женщин, выразивших симпатию тому или иному политическому деятелю, число
респондентов из определенной этнических групп, голосовавших за
того или иного кандидата и т. д. Ответы, измеренные в определенной шкале (например, в шкале: интерес к футболу) также можно
прекрасно свести в таблицу частот. В медицинских исследованиях
табулируют пациентов с определенными симптомами. В маркетинговых исследованиях – покупательский спрос на товары разного
типа у разных категорий населения. В промышленности – частоту
выхода из строя элементов устройства, приведших к авариям или
отказам всего устройства при испытаниях на прочность (например,
для определения того, какие детали телевизора действительно надежны после эксплуатации в аварийном режиме при большой температуре, а какие нет). Обычно, если в данных имеются группирующие переменные, то для них всегда вычисляются таблицы частот.
1.8. Анализ соответствий
Анализ соответствий по сравнению с частотным анализом содержит более мощные описательные и разведочные методы анализа
двухвходовых и многовходовых таблиц. Метод, так же, как и таблицы сопряженности, позволяет исследовать структуру и взаимосвязь
группирующих переменных, включенных в таблицу. В классическом анализе соответствий частоты в таблице сопряженности стандартизуются (нормируются) таким образом, чтобы сумма элементов
19
во всех ячейках была равна 1. Одна из целей анализа соответствий –
представление содержимого таблицы относительных частот в виде
расстояний между отдельными строками и/или столбцами таблицы в пространстве более низкой размерности [7].
Необходимо отметить, что анализ соответствий является разведочным методом. Данный метод был разработан на базе методологии, рассматривающей построение моделей с точки зрения их соответствия данным, а не наоборот («второй принцип» Benzerci постулирует так: «Модель должна удовлетворять имеющимся данным, а
не наоборот»; см. Greenacre, 1984, стр. 10). Следовательно, не существует статистических тестов, которые могли бы быть использованы для проверки результатов анализа соответствий. Главной целью
анализа соответствий является представление в упрощенном виде
(пространстве меньшей размерности) информации, содержащейся в
больших частотных таблицах (или таблицах с аналогичными мерами соответствия).
1.9. Кластерный анализ
Кластерный анализ – это метод классификационного анализа; его основное назначение – разбиение множества исследуемых
объектов и признаков на однородные в некотором смысле группы,
или кластеры [8]. Это многомерный статистический метод, поэтому предполагается, что исходные данные могут быть значительного объема, т. е. существенно большим может быть как количество
объектов исследования (наблюдений), так и признаков, характеризующих эти объекты. Большое достоинство кластерного анализа в
том, что он дает возможность производить разбиение объектов не
по одному признаку, а по ряду признаков. Кроме того, кластерный
анализ в отличие от большинства математико-статистических методов не накладывает никаких ограничений на вид рассматриваемых объектов и позволяет исследовать множество исходных данных практически произвольной природы. Так как кластеры – это
группы однородности, то задача кластерного анализа заключается
в том, чтобы на основании признаков объектов разбить их множество на m (m – целое) кластеров так, чтобы каждый объект принадлежал только одной группе разбиения. При этом объекты, принадлежащие одному кластеру, должны быть однородными (сходными),
а объекты, принадлежащие разным кластерам, – разнородными.
Если объекты кластеризации представить как точки в n-мерном
пространстве признаков (n – количество признаков, характеризу20
ющих объекты), то сходство между объектами определяется через
понятие расстояния между точками, так как интуитивно понятно,
что чем меньше расстояние между объектами, тем они более схожи.
1.10. Дискриминантный анализ
Дискриминантный анализ включает статистические методы
классификации многомерных наблюдений в ситуации, когда исследователь обладает так называемыми обучающими выборками
[9]. Этот вид анализа является многомерным, так как использует
несколько признаков объекта, число которых может быть сколь
угодно большим. Цель дискриминантного анализ состоит в том,
чтобы на основе измерения различных характеристик (признаков)
объекта классифицировать его, т. е. отнести к одной из нескольких
заданных групп (классов) некоторым оптимальным способом. При
этом предполагается, что исходные данные наряду с признаками
объектов содержат категориальную (группирующую) переменную,
которая определяет принадлежность объекта к той или иной группе. Поэтому в дискриминантном анализе предусмотрена проверка
непротиворечивости классификации, проведенной методом, с исходной эмпирической классификацией. Под оптимальным способом понимается либо минимум математического ожидания потерь,
либо минимум вероятности ложной классификации. В общем случае задача различения (дискриминации) формулируется следующим образом. Пусть результатом наблюдения над объектом явля=
X ( X1, X2 ,…, XK ),
ется построение k-мерного случайного вектора
где X1, X2 ,…, XK – признаки объекта. Требуется установить правило, согласно которому по значениям координат вектора X объект
относят к одной из возможных совокупностей=
i 1,2,…,n Методы
дискриминации можно условно разделить на параметрические и
непараметрические. В параметрических известно, что распределение векторов признаков в каждой совокупности нормально, но
нет информации о параметрах этих распределений. Непараметрические методы дискриминации не требуют знаний о точном функциональном виде распределений и позволяют решать задачи дискриминации на основе незначительной априорной информации о
совокупностях, что особенно ценно для практических применений.
Если выполняются условия применимости дискриминантного анализа – независимые переменные-признаки (их еще называют предикторами) должны быть измерены как минимум в интервальной
шкале, их распределение должно соответствовать нормальному
21
закону, необходимо воспользоваться классическим дискриминантным анализом, в противном случае – методом общие модели дискриминантного анализа.
1.11. Факторный анализ
Факторный анализ – один из наиболее популярных многомерных статистических методов [10]. Если кластерный и дискриминантный методы классифицируют наблюдения, разделяя их на
группы однородности, то факторный анализ классифицирует признаки (переменные), описывающие наблюдения. Поэтому главная
цель факторного анализа – сокращение числа переменных на основе классификация переменных и определения структуры взаимосвязей между ними. Сокращение достигается путем выделения
скрытых (латентных) общих факторов, объясняющих связи между
наблюдаемыми признаками объекта, т. е. вместо исходного набора
переменных появится возможность анализировать данные по выделенным факторам, число которых значительно меньше исходного
числа взаимосвязанных переменных.
1.12. Деревья классификации
Деревья классификации – это метод классификационного анализа, позволяющий предсказывать принадлежность объектов к
тому или иному классу в зависимости от соответствующих значений признаков, характеризующих объекты. Признаки называются
независимыми переменными, а переменная, указывающая на принадлежность объектов к классам, называется зависимой. В отличие
от классического дискриминантного анализа, деревья классификации способны выполнять одномерное ветвление по переменными
различных типов категориальным, порядковым, интервальным. Не
накладываются какие-либо ограничения на закон распределения
количественных переменных. По аналогии с дискриминантным
анализом метод дает возможность анализировать вклады отдельных переменных в процедуру классификации. Деревья классификации могут быть, а иногда и бывают, очень сложными. Однако использование специальных графических процедур позволяет упростить интерпретацию результатов даже для очень сложных деревьев. Возможность графического представления результатов и простота интерпретации во многом объясняют большую популярность
деревьев классификации в прикладных областях, однако, наиболее
22
важные отличительные свойства деревьев классификации – их иерархичность и широкая применимость. Структура метода такова,
что пользователь имеет возможность по управляемым параметрам
строить деревья произвольной сложности, добиваясь минимальных
ошибок классификации. Но по сложному дереву, из-за большой совокупности решающих правил, затруднительно классифицировать
новый объект. Поэтому при построении дерева классификации
пользователь должен найти разумный компромисс между сложностью дерева и трудоемкостью процедуры классификации. Широкая
сфера применимости деревьев классификации делает их весьма
привлекательным инструментом анализа данных, но не следует полагать, что его рекомендуется использовать вместо традиционных
методов классификационного анализа. Напротив, если выполнены
более строгие теоретические предположения, налагаемые традиционными методами, и выборочное распределение обладает некоторыми специальными свойствами (например, соответствие распределения переменных нормальному закону), то более результативным
будет использование именно традиционных методов. Однако как
метод разведочного анализа или как последнее средство, когда отказывают все традиционные методы, Деревья классификации, по
мнению многих исследователей, не знают себе равных.
1.13. Анализ главных компонент и классификация
На практике часто возникает задача анализа данных большой
размерности. Метод анализ главных компонент и классификация
позволяет решить эту задачу и служит для достижения двух целей:
– уменьшение общего числа переменных (редукция данных) для
того, чтобы получить «главные» и «некоррелирующие» переменные;
– классификация переменных и наблюдений, при помощи строящегося факторного пространства.
Метод имеет сходство с факторным анализом в постановочной
части решаемых задач, но имеет ряд существенных отличий:
– при анализе главных компонент не используются итеративные
методы для извлечения факторов;
– наряду с активными переменными и наблюдениями, используемыми для извлечения главных компонент, можно задать вспомогательные переменные и/или наблюдения; затем вспомогательные
переменные и наблюдения проектируются на факторное пространство, вычисленное на основе активных переменных и наблюдений;
23
– перечисленные возможности позволяют использовать метод
как мощное средство для классификации одновременно переменных и наблюдений.
Решение основной задачи метода достигается созданием векторного пространства латентных (скрытых) переменных (факторов) с
размерностью меньше исходной. Исходная размерность определяется числом переменных для анализа в исходных данных.
1.14. Многомерное шкалирование
Метод многомерного шкалирования можно рассматривать как
альтернативу факторному анализу, в котором достигается сокращение числа переменных, путем выделения латентных (непосредственно не наблюдаемых) факторов, объясняющих связи между
наблюдаемыми переменными. Цель многомерного шкалирования –
поиск и интерпретация латентных переменных, дающих возможность пользователю объяснить сходства между объектами, заданными точками в исходном пространстве признаков. Показателями
сходства объектов на практике могут быть расстояния или степени
связи между ними. В факторном анализе сходства между переменными выражаются с помощью матрицы коэффициентов корреляций. В многомерном шкалировании в качестве исходных данных
можно использовать произвольный тип матрицы сходства объектов: расстояния, корреляции и т. д. Несмотря на то, что имеется
много сходства в характере исследуемых вопросов, методы многомерное шкалирование и факторный анализ имеют ряд существенных отличий. Так, факторный анализ требует, чтобы исследуемые
данные подчинялись многомерному нормальному распределению, а
зависимости были линейными. Многомерное шкалирование не накладывает таких ограничений, оно может быть применимо, если
задана матрица попарных сходств объектов. В терминах различий
получаемых результатов факторный анализ стремится извлечь
больше факторов – латентных переменных по сравнению с многомерным шкалированием. Поэтому многомерное шкалирование часто приводит к проще интерпретируемым решениям. Однако более
существенно то, что метод многомерное шкалирование можно применять к любым типам расстояний или сходств, в то время как факторный анализ требует, чтобы в качестве исходных данных была
использована корреляционная матрица переменных или по файлу
исходных данных сначала была вычислена матрица корреляций.
Основное предположение многомерного шкалирования заключает24
ся в том, что существует некоторое метрическое пространство существенных базовых характеристик, которые неявно и послужили
основой для полученных эмпирических данных о близости между
парами объектов. Следовательно, объекты можно представить как
точки в этом пространстве. Предполагают также, что более близким
(по исходной матрице) объектам соответствуют меньшие расстояния в пространстве базовых характеристик. Поэтому, многомерное
шкалирование – это совокупность методов анализа эмпирических
данных о близости объектов, с помощью которых определяется размерность пространства существенных для данной содержательной
задачи характеристик измеряемых объектов и конструируется конфигурация точек (объектов) в этом пространстве. Это пространство
(«многомерная шкала») аналогично обычно используемым шкалам
в том смысле, что значениям существенных характеристик измеряемых объектов соответствуют определенные позиции на осях
пространства. Логику многомерного шкалирования можно проиллюстрировать на следующем простом примере. Предположим, что
имеется матрица попарных расстояний (т. е. сходства некоторых
признаков) между некоторыми городами. Анализируя матрицу,
надо расположить точки с координатами городов в двумерном пространстве (на плоскости), максимально сохранив реальные расстояния между ними. Полученное размещение точек на плоскости впоследствии можно использовать в качестве приближенной географической карты. В общем случае многомерное шкалирование позволяет таким образом расположить объекты (города в нашем примере) в
пространстве некоторой небольшой размерности (в данном случае
она равна двум), чтобы достаточно адекватно воспроизвести наблюдаемые расстояния между ними. В результате можно измерить эти
расстояния в терминах найденных латентных переменных. Так, в
нашем примере можно объяснить расстояния в терминах пары географических координат Север/Юг и Восток/Запад.
1.15. Моделирование структурными уравнениями
Наметившийся в последнее время прогресс в области многомерного статистического анализа и анализа корреляционных структур,
объединенный с новейшими вычислительными алгоритмами, послужил отправной точкой для создания новой, но уже получившей
признание техники моделирования структурными уравнениями
(SEPATH) [12] (причинное моделирование). Эта необычайно мощная
техника многомерного анализа включает методы из различных об25
ластей статистики, множественная регрессия и факторный анализ
получили здесь естественное развитие и объединение.
Объектом моделирования структурными уравнениями являются сложные системы, внутренняя структура которых не известна («черный ящик»). Наблюдая параметры системы при помощи
SEPATH, можно исследовать ее структуру, установить причинноследственные взаимосвязи между элементами системы.
Постановка задачи структурного моделирования выглядит следующим образом. Пусть имеются переменные, для которых известны статистические моменты, например, матрица выборочных
коэффициентов корреляции или ковариации. Такие переменные
называются явными. Они могут быть характеристиками сложной
системы. Реальные связи между наблюдаемыми явными переменными могут быть достаточно сложными, однако предполагаем, что
имеется некоторое число скрытых переменных, которые с известной степенью точности объясняют структуру этих связей. Таким
образом, с помощью латентных переменных строится модель связей
между явными и неявными переменными. В некоторых задачах латентные переменные можно рассматривать как причины, а явные
– как следствия, поэтому, такие модели называются причинными.
Допускается, что скрытые переменные, в свою очередь, могут быть
связаны между собой. Структура связей допускается достаточно
сложной, однако тип ее постулируется – это связи, описываемые
линейными уравнениями. Какие-то параметры линейных моделей
известны, какие-то нет, и являются свободными параметрами.
Основная идея моделирования структурными уравнениями состоит в том, что можно проверить, связаны ли переменные Y и X линейной зависимостью Y = aX, анализируя их дисперсии и ковариации. Эта идея основана на простом свойстве среднего и дисперсии:
если умножить каждое число на некоторую константу k, среднее
значение также умножится на k, при этом стандартное отклонение
умножится на модуль k. Например, рассмотрим набор из трех чисел
1, 2, 3. Эти числа имеют среднее, равное 2, и стандартное отклонение, равное 1. Если умножить все три числа на 4, то легко посчитать, что среднее значение будет равно 8, стандартное отклонение –
4, а дисперсия – 16. Таким образом, если есть наборы чисел X и Y,
связанные зависимостью Y = 4X, то дисперсия Y должна быть в 16
раз больше, чем дисперсия X. Поэтому можно проверить гипотезу
о том, что Y и X связаны уравнением Y = 4X, сравнением дисперсий переменных Y и X. Эта идея может быть различными способами обобщена на несколько переменных, связанных системой линей26
ных уравнений. При этом правила преобразований становятся более громоздкими, вычисления более сложными, но основной смысл
остается прежним – можно проверить, связаны ли переменные линейной зависимостью, изучая их дисперсии и ковариации.
1.16. Методы анализа выживаемости
Методы анализа выживаемости первоначально были развиты
в медицинских, биологических исследованиях и страховании, но
затем стали широко применяться в социальных и экономических
науках, а также в промышленности в инженерных задачах (анализ надежности и времен отказов) [13]. Представьте, что изучается
эффективность нового метода лечения или лекарственного препарата. Очевидно, наиболее важной и объективной характеристикой
является средняя продолжительность жизни пациентов с момента
поступления в клинику или средняя продолжительность ремиссии
заболевания. Для описания средних времен жизни или ремиссии
можно было бы использовать стандартные параметрические и непараметрические методы. Однако в анализируемых данных есть
существенная особенность – могут найтись пациенты, которые в
течение всего периода наблюдения выжили, а у некоторых из них
заболевание все еще находится в стадии ремиссии. Также может
образоваться группа больных, контакт с которыми был потерян до
завершения эксперимента (например, их перевели в другие клиники). При использовании стандартных методов оценки среднего эту
группу пациентов пришлось бы исключить, тем самым, потеряв с
трудом собранную важную информацию. К тому же большинство
этих пациентов являются выжившими (выздоровевшими) в течение
того времени, которое их наблюдали, что свидетельствует в пользу
нового метода лечения (лекарственного препарата). Такого рода информация, когда нет данных о наступлении интересующего нас события, называется неполной. Если есть данные о наступлении интересующего нас события, то информация называется полной. Наблюдения, которые содержат неполную информацию, называются
цензурированными наблюдениями. Цензурированные наблюдения
типичны, когда наблюдаемая величина представляет время до наступления некоторого критического события, а продолжительность
наблюдения ограничена по времени. Использование цензурированных наблюдений составляет специфику рассматриваемого метода –
анализа выживаемости. В данном методе исследуются вероятностные характеристики интервалов времени между последовательным
27
возникновением критических событий. Такого рода исследования
называются анализом длительностей до момента прекращения, которые можно определить как интервалы времени между началом
наблюдения за объектом и моментом прекращения, при котором
объект перестает отвечать заданным для наблюдения свойствам.
Цель исследований – определение условных вероятностей, связанных с длительностями до момента прекращения. Построение
таблиц времен жизни, подгонка распределения выживаемости,
оценивание функции выживания с помощью процедуры Каплана –
Мейера относятся к описательным методам исследования цензурированных данных. Некоторые из предложенных методов позволяют
сравнивать выживаемость в двух и более группах. Наконец, анализ
выживаемости содержит регрессионные модели для оценивания зависимостей между многомерными непрерывными переменными со
значениями, аналогичными временам жизни.
Общие модели дискриминантного анализа. Если не выполняются
условия применимости дискриминантного анализа (ДА) – независимые переменные (предикторы) должны быть измерены как минимум
в интервальной шкале, их распределение должно соответствовать
нормальному закону, необходимо воспользоваться методом общие
модели дискриминантного анализа (ОДА). Метод имеет такое название, потому что в нем для анализа дискриминантных функций
используется общая линейная модель (GLM). В этом модуле анализ
дискриминантных функций рассматривается как общая многомерная линейная модель, в которой категориальная зависимая переменная (отклик) представляется векторами с кодами, обозначающими
различные группы для каждого наблюдения. Метод ОДА имеет ряд
существенных преимуществ перед классическим дискриминантным
анализом. Например, не устанавливается никаких ограничений на
тип используемого предиктора (категориальный или непрерывный)
или на тип определяемой модели, возможен пошаговый выбор предикторов и выбор наилучшего подмножества предикторов, в случае
наличия в файле данных кросс-проверочной выборки выбор наилучшего подмножества предикторов можно провести на основе долей
ошибочной классификации для кросс-проверочной выборки и т. д.
1.17. Временные ряды
Временные ряды – это наиболее интенсивно развивающееся, перспективное направление математической статистики. Под временным (динамическим) рядом подразумевается последовательность
28
наблюдений некоторого признака X (случайной величины) в последовательные равноотстоящие моменты t. Отдельные наблюдения называются уровнями ряда и обозначаются xt ,t= 1,…n. При исследовании временного ряда выделяются несколько составляющих:
xt =ut + yt + ct + et , t =1,…,n,
где ut – тренд, плавно меняющаяся компонента, описывающая чистое влияние долговременных факторов (убыль населения, уменьшение доходов и т. д.); yt – сезонная компонента, отражающая повторяемость процессов в течение не очень длительного периода (дня,
недели, месяца и т. д.); ct – циклическая компонента, отражающая
повторяемость процессов в течение длительных периодов времени
свыше одного года; et – случайная компонента, отражающая влияние не поддающихся учету и регистрации случайных факторов.
Первые три компоненты представляют собой детерминированные
составляющие. Случайная составляющая образована в результате суперпозиции большого числа внешних факторов, оказывающих каждый в отдельности незначительное влияние на изменение значений
признака X. Анализ и исследование временного ряда позволяют строить модели для прогнозирования значений признака X на будущее
время, если известна последовательность наблюдений в прошлом.
Выводы
Статистические методы анализа данных применяются практически во всех областях деятельности человека. Их используют всегда, когда необходимо получить и обосновать какие-либо суждения о
группе (объектов или субъектов) с некоторой внутренней неоднородностью. Целесообразно выделить три вида научной и прикладной
деятельности в области статистических методов анализа данных (по
степени специфичности методов, сопряженной с погруженностью в
конкретные проблемы):
а) разработка и исследование методов общего назначения, без
учета специфики области применения;
б) разработка и исследование статистических моделей реальных
явлений и процессов в соответствии с потребностями той или иной
области деятельности;
в) применение статистических методов и моделей для статистического анализа конкретных данных.
Особенностью методов статистического анализа является их
комплексность, обусловленная многообразием форм статистических закономерностей, а также сложностью процесса статистических исследований.
29
2. ОБЗОР МЕТОДОВ DATA MINING
2.1. История развития методов
интеллектуального анализа данных
Область Data Mining началась с семинара (англ. workshop), проведённого Григорием Пятецким-Шапиро в 1989 году.
Ранее, работая в компании GTE Labs, Григорий Пятецкий-Шапиро заинтересовался вопросом: можно ли автоматически находить
определённые правила, чтобы ускорить некоторые запросы к крупным базам данных. Тогда же было предложено два термина – Data
Mining («добыча данных») и Knowledge Discovery In Data (который
следует переводить как «открытие знаний в базах данных»).
В 1993 году вышла первая рассылка «Knowledge Discovery Nuggets», а в 1994 году был создан один из первых сайтов по Data Mining.
Термин Data Mining получил свое название из двух понятий:
поиска ценной информации в большой базе данных (data) и добычи горной руды (mining). Оба процесса требуют или просеивания
огромного количества сырого материала, или разумного исследования и поиска искомых ценностей.
Понятие Data Mining, появившееся в 1978 году, приобрело высокую популярность в современной трактовке примерно с первой половины 1990-х годов. До этого времени обработка и анализ данных
осуществлялся в рамках прикладной статистики, при этом в основном решались задачи обработки небольших баз данных.
Развитие технологии баз данных
1960-е гг.
В 1968 году была введена в эксплуатацию первая промышленная
СУБД система IMS фирмы IBM.
1970-е гг.
В 1975 году появился первый стандарт ассоциации по языкам
систем обработки данных – Conference on Data System Languages
(CODASYL), определивший ряд фундаментальных понятий в теории
систем баз данных, которые до сих пор являются основополагающими
для сетевой модели данных. В дальнейшее развитие теории баз данных большой вклад был сделан американским математиком Э. Ф. Коддом, который является создателем реляционной модели данных.
1980-е гг.
В течение этого периода многие исследователи экспериментировали с новым подходом в направлениях структуризации баз данных и
обеспечения к ним доступа. Целью этих поисков было получение реля30
ционных прототипов для более простого моделирования данных. В результате, в 1985 году был создан язык, названный SQL. На сегодняшний день практически все СУБД обеспечивают данный интерфейс.
1990-е гг.
Появились специфичные типы данных – «графический образ»,
«документ», «звук», «карта». Типы данных для времени, интервалов времени, символьных строк с двухбайтовым представлением символов были добавлены в язык SQL. Появились технологии
DataMining, хранилища данных, мультимедийные базы данных и
web-базы данных.
Возникновение и развитие Data Mining обусловлено различными факторами, основными среди которых являются следующие:
– совершенствование аппаратного и программного обеспечения;
– совершенствование технологий хранения и записи данных;
– накопление большого количества ретроспективных данных;
– совершенствование алгоритмов обработки информации.
2.2. Постановка задачи Data Mining
Первоначально задача ставится следующим образом:
– имеется достаточно крупная база данных;
– предполагается, что в базе данных находятся некие «скрытые
знания».
Необходимо разработать методы обнаружения знаний, скрытых
в больших объёмах исходных «сырых» данных. В текущих условиях глобальной конкуренции именно найденные закономерности
(знания) могут быть источником дополнительного конкурентного
преимущества.
Что означает «скрытые знания»?
Это должны быть обязательно знания:
– ранее неизвестные – то есть такие знания, которые должны
быть новыми (а не подтверждающими какие-то ранее полученные
сведения);
– нетривиальные – то есть такие, которые нельзя просто так увидеть (при непосредственном визуальном анализе данных или при
вычислении простых статистических характеристик);
– практически полезные – то есть такие знания, которые представляют ценность для исследователя или потребителя;
– доступные для интерпретации – то есть такие знания, которые
легко представить в наглядной для пользователя форме и легко объяснить в терминах предметной области.
31
Эти требования во многом определяют суть методов Data mining
и то, в каком виде и в каком соотношении в технологии Data mining
используются системы управления базами данных, статистические
методы анализа и методы искусственного интеллекта.
2.3. Интеллектуальный анализ данных
Data Mining – это сочетание широкого математического инструментария (от классического статистического анализа до новых кибернетических методов) и последних достижений в сфере информационных технологий. В технологии Data Mining гармонично объединились строго формализованные методы и методы неформального анализа, т. е. количественный и качественный анализ данных.
Data Mining (добыча данных, интеллектуальный анализ данных, глубинный анализ данных) – собирательное название, используемое для обозначения совокупности методов обнаружения в данных ранее неизвестных, нетривиальных, практически полезных и
доступных интерпретации знаний, необходимых для принятия решений в различных сферах человеческой деятельности.
Основу методов Data Mining составляют всевозможные методы
классификации, моделирования и прогнозирования. К методам Data
Mining нередко относят статистические методы (дескриптивный анализ, корреляционный и регрессионный анализ, факторный анализ,
дисперсионный анализ, компонентный анализ, дискриминантный
анализ, анализ временных рядов). Такие методы, однако, предполагают некоторые априорные представления об анализируемых данных,
что несколько расходится с целями Data Mining (обнаружение ранее
неизвестных, нетривиальных и практически полезных знаний).
Одно из важнейших назначений методов Data Mining состоит в
наглядном представлении результатов вычислений, что позволяет
использовать инструментарий Data Mining людьми, не имеющих
специальной математической подготовки. В то же время, применение статистических методов анализа данных требует хорошего владения теорией вероятностей и математической статистикой.
Знания, добываемые методами Data mining, принято представлять в виде моделей.
Модели представления знаний Data Mining:
– ассоциативные правила,
– деревья принятия решений,
– кластеры,
– математические функции.
32
Методы построения таких моделей принято относить к области
искусственного интеллекта.
2.3.1. Модели ассоциативных правил
Впервые задача поиска ассоциативных правил (association rule
mining) была предложена для нахождения типичных шаблонов покупок, совершаемых в супермаркетах, поэтому иногда ее еще называют анализом рыночной корзины (market basket analysis).
Рыночная корзина – это набор товаров, приобретенных покупателем в рамках одной отдельно взятой транзакции.
Транзакции являются достаточно характерными операциями,
ими, например, могут описываться результаты посещений различных магазинов.
Транзакция – это множество событий, которые произошли одновременно.
Регистрируя все бизнес-операции в течение всего времени своей
деятельности, торговые компании накапливают огромные собрания транзакций. Каждая такая транзакция представляет собой
набор товаров, купленных покупателем за один визит.
Полученные в результате анализа шаблоны включают перечень
товаров и число транзакций, которые содержат данные наборы.
Транзакционная или операционная база данных (Transaction
database) представляет собой двумерную таблицу, которая состоит
из номера транзакции (TID) и перечня покупок, приобретенных во
время этой транзакции.
TID – уникальный идентификатор, определяющий каждую
сделку или транзакцию.
Пример транзакционной базы данных, состоящей из покупательских транзакций, приведен в табл. 2.1. В таблице первая колонка (TID) определяет номер транзакции, во второй колонке табТаблица 2.1
Транзакционная база данных
TID
Приобретенные покупки
100
200
300
400
500
хлеб, молоко, печенье
Молоко, сметана
Молоко, хлеб, сметана, печенье
Колбаса, сметана
Хлеб, молоко, печенье, сметана
33
лицы приведены товары, приобретенные во время определенной
транзакции.
На основе имеющейся базы данных нам нужно найти закономерности между событиями, то есть покупками.
2.3.2. Модели деревьев принятия решений
Деревья принятия решений являются удобным инструментом в
тех случаях, когда требуется не просто классифицировать данные,
но ещё и объяснить почему тот или иной объект отнесён к какомулибо классу.
Согласно наиболее общему определению, дерево принятия решений – это средство поддержки принятия решений при прогнозировании. Эти модели широко применяются в статистике и анализе
данных.
Прежде чем перейти к рассмотрению деревьев решений для анализа больших данных, рассмотрим важнейшие понятия, связанные
с методом в целом.
Дерево решений, подобно его «прототипу» из живой природы, состоит из «ветвей» и «листьев». Ветви (ребра графа) хранят в себе значения атрибутов, от которых зависит целевая функция; на листьях
же записывается значение целевой функции. Существуют также и
другие узлы – родительские и потомки – по которым происходит
разветвление, и можно различить случаи (рис. 2.1).
Цель всего процесса построения дерева принятия решений – создать модель, по которой можно было бы классифицировать случаи и
Корневой узел
Узел
Лист
Родительский узел
(предок)
Узел
Лист
Дочерние узлы
(потомки)
Узел
Лист
Лист
Лист
Рис. 2.1. Общий вид дерева принятия решений
34
решать, какие значения может принимать целевая функция, имея
на входе несколько переменных.
Как пример, представим случай, когда необходимо принять решение о выдаче кредита (целевая функция может принимать значения «да» и «нет») на основе информации о клиенте (несколько переменных: возраст, семейное положение, уровень дохода и так далее).
К примеру, переменная «возраст» с атрибутом «менее двадцати одного одного года = да» сразу приведет от корневого узла дерева к его
листу, причем целевая функция «выдача кредита» примет значение
«нет». Если возраст составляет более двадцати одного года, то ветвь
приведет нас к очередному узлу, который, к примеру, «спросит» нас
об уровне дохода клиента. Таким образом, классификация каждого
нового случая происходит при движении вниз до листа, который и
укажет нам значение целевой функции в каждом конкретном случае.
2.3.3. Модели кластеров
Кластеризация – объединение в группы схожих объектов – является одной из фундаментальных задач в области анализа данных
и Data Mining. Список прикладных областей, где она применяется, широк: сегментация изображений, маркетинг, борьба с мошенничеством, прогнозирование, анализ текстов и многие другие. На
современном этапе кластеризация часто выступает первым шагом
при анализе данных. После выделения схожих групп применяются
другие методы, для каждой группы строится отдельная модель.
Задачу кластеризации в том или ином виде формулировали в
таких научных направлениях, как статистика, распознавание образов, оптимизация, машинное обучение. Отсюда многообразие синонимов понятию кластер – класс, таксон, сгущение.
На сегодняшний момент число методов разбиения групп объектов на кластеры довольно велико – несколько десятков алгоритмов
и еще больше их модификаций. Однако нас интересуют алгоритмы
кластеризации с точки зрения их применения в Data Mining.
Кластеризация в Data Mining приобретает ценность тогда, когда
она выступает одним из этапов анализа данных, построения законченного аналитического решения. Аналитику часто легче выделить
группы схожих объектов, изучить их особенности и построить для
каждой группы отдельную модель, чем создавать одну общую модель для всех данных. Таким приемом пользуются в маркетинге,
выделяя группы клиентов, покупателей, товаров и разрабатывая
для каждой их них отдельную стратегию.
35
Данные, с которыми сталкивается технология Data Mining, имеют следующие важные особенности:
– высокая размерность (тысячи полей) и большой объем (сотни
тысяч и миллионы записей) таблиц баз данных и хранилищ данных
(сверхбольшие базы данных);
– наборы данных содержат большое количество числовых и категорийных атрибутов.
Все атрибуты, или признаки объектов делятся на числовые (numerical) и категорийные (categorical). Числовые атрибуты – это
такие, которые могут быть упорядочены в пространстве, соответственно категорийные – которое не могут быть упорядочены. Например, атрибут «возраст» – числовой, а «цвет» – категорийный.
Приписывание атрибутам значений происходит во время измерений выбранным типом шкалы, а это, вообще говоря, представляет
собой отдельную задачу.
2.4. Обзор существующих методов
интеллектуального анализа данных
К методам и алгоритмам Data Mining относятся:
1. Искусственные нейронные сети.
2. Деревья решений, символьные правила.
3. Методы ближайшего соседа и k-ближайшего соседа.
4. Метод опорных векторов.
5. Байесовские сети.
6. Методы поиска ассоциативных правил, в том числе алгоритм
Apriori.
7. Метод ограниченного перебора.
8. Эволюционное программирование и генетические алгоритмы.
9. Разнообразные методы визуализации данных и множество
других методов.
Большинство аналитических методов, используемые в технологии Data Mining – это известные математические алгоритмы и методы. Новым в их применении является возможность их использования при решении тех или иных конкретных проблем, обусловленная появившимися возможностями технических и программных
средств. Следует отметить, что большинство методов Data Mining
были разработаны в рамках теории искусственного интеллекта.
Метод представляет собой норму или правило, определенный
путь, способ, прием решений задачи теоретического, практического, познавательного, управленческого характера.
36
2.4.1. Методы искусственных нейронных сетей
Иску сственная нейро нная се ть (ИНС) – математическая модель,
а также её программное или аппаратное воплощение, построенная
по принципу организации и функционирования биологических
нейронных сетей – сетей нервных клеток живого организма. Это понятие возникло при изучении процессов, протекающих в мозге, и
при попытке смоделировать эти процессы. Первой такой попыткой
были нейронные сети У. Маккалока и У. Питтса [14]. После разработки алгоритмов обучения, получаемые модели стали использовать в практических целях: в задачах прогнозирования, распознавания образов, в задачах управления и др.
ИНС представляет собой систему соединённых и взаимодействующих между собой простых процессоров (искусственных нейронов).
Такие процессоры обычно довольно просты (особенно в сравнении
с процессорами, используемыми в персональных компьютерах).
Каждый процессор подобной сети имеет дело только с сигналами,
которые он периодически получает, и сигналами, которые он периодически посылает другим процессорам. И, тем не менее, будучи соединёнными в достаточно большую сеть с управляемым взаимодействием, такие по отдельности простые процессоры вместе способны
выполнять довольно сложные задачи.
С точки зрения машинного обучения, нейронная сеть представляет собой частный случай методов распознавания образов, дискриминантного анализа, методов кластеризации и т. п.
С математической точки зрения, обучение нейронных сетей – это
многопараметрическая задача нелинейной оптимизации.
С точки зрения кибернетики, нейронная сеть используется в задачах адаптивного управления и как алгоритмы для робототехники.
С точки зрения развития вычислительной техники и программирования, нейронная сеть – способ решения проблемы эффективного параллелизма [15].
А с точки зрения искусственного интеллекта, ИНС является основой философского течения коннективизма и основным направлением в структурном подходе по изучению возможности построения
(моделирования) естественного интеллекта с помощью компьютерных алгоритмов.
Нейронные сети не программируются в привычном смысле этого слова, они обучаются. Возможность обучения – одно из главных
преимуществ нейронных сетей перед традиционными алгоритмами.
Технически обучение заключается в нахождении коэффициентов
37
связей между нейронами. В процессе обучения нейронная сеть способна выявлять сложные зависимости между входными данными и
выходными, а также выполнять обобщение. Это значит, что в случае
успешного обучения сеть сможет вернуть верный результат на основании данных, которые отсутствовали в обучающей выборке, а также неполных и/или «зашумленных», частично искажённых данных.
Этапы решения задач методами ИНС:
– сбор данных для обучения;
– подготовка и нормализация данных;
– выбор топологии сети;
– экспериментальный подбор характеристик сети;
– экспериментальный подбор параметров обучения;
– собственно обучение;
– проверка адекватности обучения;
– корректировка параметров, окончательное обучение;
– вербализация сети [16] с целью дальнейшего использования.
 Сбор данных для обучения
Выбор данных для обучения сети и их обработка является самым сложным этапом решения задачи. Набор данных для обучения
должен удовлетворять нескольким критериям:
– Репрезентативность – данные должны иллюстрировать истинное положение вещей в предметной области;
– Непротиворечивость – противоречивые данные в обучающей
выборке приведут к плохому качеству обучения сети.
Исходные данные преобразуются к виду, в котором их можно подать на входы сети. Каждая запись в файле данных называется обучающей парой или обучающим вектором. Обучающий вектор содержит по одному значению на каждый вход сети и, в зависимости от
типа обучения (с учителем или без), по одному значению для каждого выхода сети. Обучение сети на «сыром» наборе, как правило, не
даёт качественных результатов. Существует ряд способов улучшить
«восприятие» сети.
– Нормировка выполняется, когда на различные входы подаются
данные разной размерности. Например, на первый вход сети подаются величины со значениями от нуля до единицы, а на второй – от
ста до тысячи. При отсутствии нормировки значения на втором входе будут всегда оказывать существенно большее влияние на выход
сети, чем значения на первом входе. При нормировке размерности
всех входных и выходных данных сводятся воедино;
– Квантование выполняется над непрерывными величинами,
для которых выделяется конечный набор дискретных значений.
38
Например, квантование используют для задания частот звуковых
сигналов при распознавании речи;
– Фильтрация выполняется для «зашумленных» данных.
Кроме того, большую роль играет само представление как входных, так и выходных данных. Предположим, сеть обучается распознаванию букв на изображениях и имеет один числовой выход – номер
буквы в алфавите. В этом случае сеть получит ложное представление
о том, что буквы с номерами 1 и 2 более похожи, чем буквы с номерами 1 и 3, что, в общем, неверно. Для того, чтобы избежать такой
ситуации, используют топологию сети с большим числом выходов,
когда каждый выход имеет свой смысл. Чем больше выходов в сети,
тем большее расстояние между классами и тем сложнее их спутать.
 Выбор топологии сети
Выбирать тип сети следует, исходя из постановки задачи и имеющихся данных для обучения. Для обучения с учителем требуется
наличие для каждого элемента выборки «экспертной» оценки. Иногда получение такой оценки для большого массива данных просто
невозможно. В этих случаях естественным выбором является сеть,
обучающаяся без учителя (например, самоорганизующаяся карта Кохонена или нейронная сеть Хопфилда). При решении других
задач (таких, как прогнозирование временных рядов) экспертная
оценка уже содержится в исходных данных и может быть выделена
при их обработке. В этом случае можно использовать многослойный
перцептрон или сеть Ворда.
 Экспериментальный подбор характеристик сети
После выбора общей структуры нужно экспериментально подобрать параметры сети. Для сетей, подобных перцептрону, это будет
число слоев, число блоков в скрытых слоях (для сетей Ворда), наличие или отсутствие обходных соединений, передаточные функции
нейронов. При выборе количества слоев и нейронов в них следует
исходить из того, что способности сети к обобщению тем выше, чем
больше суммарное число связей между нейронами. С другой стороны, число связей ограничено сверху количеством записей в обучающих данных.
 Экспериментальный подбор параметров обучения
После выбора конкретной топологии необходимо выбрать параметры обучения нейронной сети. Этот этап особенно важен для сетей, обучающихся с учителем. От правильного выбора параметров
зависит не только то, насколько быстро ответы сети будут сходиться
к правильным ответам. Например, выбор низкой скорости обучения увеличит время схождения, однако иногда позволяет избежать
39
паралича сети. Увеличение времени обучения может привести как
к увеличению, так и к уменьшению времени сходимости, в зависимости от формы поверхности ошибки. Исходя из такого противоречивого влияния параметров, можно сделать вывод, что их значения
нужно выбирать экспериментально, руководствуясь при этом критерием завершения обучения (например, минимизация ошибки или
ограничение по времени обучения).
 Обучение сети
В процессе обучения сеть в определенном порядке просматривает обучающую выборку. Порядок просмотра может быть последовательным, случайным и т. д. Некоторые сети, обучающиеся без
учителя (например, сети Хопфилда), просматривают выборку только один раз. Другие (например, сети Кохонена), а также сети, обучающиеся с учителем, просматривают выборку множество раз, при
этом один полный проход по выборке называется эпохой обучения.
При обучении с учителем набор исходных данных делят на две части – собственно обучающую выборку и тестовые данные; принцип
разделения может быть произвольным. Обучающие данные подаются сети для обучения, а проверочные используются для расчета
ошибки сети (проверочные данные никогда для обучения сети не
применяются). Таким образом, если на проверочных данных ошибка уменьшается, то сеть действительно выполняет обобщение. Если
ошибка на обучающих данных продолжает уменьшаться, а ошибка
на тестовых данных увеличивается, значит, сеть перестала выполнять обобщение и просто «запоминает» обучающие данные. Это явление называется переобучением сети или оверфиттингом. В таких
случаях обучение обычно прекращают. В процессе обучения могут
проявиться другие проблемы, такие как паралич или попадание
сети в локальный минимум поверхности ошибок. Невозможно заранее предсказать проявление той или иной проблемы, равно как и
дать однозначные рекомендации к их разрешению.
Все выше сказанное относится только к итерационным алгоритмам поиска нейросетевых решений. Для них действительно нельзя
ничего гарантировать и нельзя полностью автоматизировать обучение нейронных сетей. Однако, наряду с итерационными алгоритмами обучения, существуют не итерационные алгоритмы, обладающие очень высокой устойчивостью и позволяющие полностью автоматизировать процесс обучения.
 Проверка адекватности обучения
Даже в случае успешного, на первый взгляд, обучения сеть не
всегда обучается именно тому, чего от неё хотел создатель. Известен
40
случай, когда сеть обучалась распознаванию изображений танков
по фотографиям, однако позднее выяснилось, что все танки были
сфотографированы на одном и том же фоне. В результате сеть «научилась» распознавать этот тип ландшафта, вместо того, чтобы «научиться» распознавать танки. Таким образом, сеть «понимает» не
то, что от неё требовалось, а то, что проще всего обобщить.
Тестирование качества обучения нейросети необходимо проводить на примерах, которые не участвовали в её обучении. При этом
число тестовых примеров должно быть тем больше, чем выше качество обучения. Если ошибки нейронной сети имеют вероятность
близкую к одной миллиардной, то и для подтверждения этой вероятности нужен миллиард тестовых примеров. Получается, что тестирование хорошо обученных нейронных сетей становится очень
трудной задачей.
 Известные типы сетей
Известны следующие типы сетей:
– Перцептрон Розенблатта;
– Многослойный перцептрон Розенблатта;
– Многослойный перцептрон Румельхарта;
– Сеть Джордана;
– Сеть Элмана;
– Сеть Хэмминга;
– Сеть Ворда;
– Сеть Хопфилда;
– Сеть Кохонена;
– Нейронный газ[23];
– Когнитрон;
– Неокогнитрон;
– Осцилляторная нейронная сеть;
– Сеть радиально-базисных функций (RBF-сеть);
– Сети адаптивного резонанса;
– Свёрточная нейронная сеть (англ. convolutional neural network);
– Импульсная нейронная сеть.
 Перцептрон
Перцептро н, или персептрон (англ. Perceptron от лат. Perceptio –
восприятие; нем. Perzeptron) – математическая или компьютерная
модель восприятия информации мозгом (кибернетическая модель
мозга), предложенная Фрэнком Розенблаттом в 1957 году и впервые
реализованная в виде электронной машины «Марк-1» в 1960 году.
Перцептрон стал одной из первых моделей нейросетей, а «Марк-1» –
первым в мире нейрокомпьютером [17].
41
Перцептрон состоит из трёх типов элементов, а именно: поступающие от датчиков сигналы передаются ассоциативным элементам,
а затем реагирующим элементам. Таким образом, перцептроны позволяют создать набор «ассоциаций» между входными стимулами
и необходимой реакцией на выходе. В биологическом плане это соответствует преобразованию, например, зрительной информации в
физиологический ответ от двигательных нейронов.
Согласно современной терминологии, перцептроны могут быть
классифицированы как искусственные нейронные сети:
 Многослойный перцептрон Розенблатта
Многослойный перцептрон Розенблатта – перцептрон с дополнительными слоями А – элементов, расположенными между S и R
элементами. Определение Розенблатта отличается от многослойного перцептрона Румельхарта и является более общим случаем по отношению к нему. Так как элементарный перцептрон уже обладал
двумя слоями связей и тремя слоями элементов (нейронов), то такой
перцептрон не считался многослойным, и многослойность подразумевалась только при наличии минимум четырёх слоёв элементов.
Другое важное отличие состояло в том, что у Розенблатта необязательно все связи были обучаемые, часть из них могла быть случайно
выбрана и фиксирована. Румельхарт же предполагал, что все связи
многослойного перцептрона обучаемы. Поэтому полным эквивалентом многослойного перцептрона Румельхартау Розенблатта является перцептрон с переменными S-A связями.
 Многослойный перцептрон Румельхарта
Многослойный перцептрон Румельхарта – частный случай перцептрона Розенблатта, в котором один алгоритм обратного распространения ошибки обучает все слои. Название по историческим
причинам не отражает особенности данного вида перцептрона, то
есть не связано с тем, что в нём имеется несколько слоёв (так как
несколько слоёв было и у перцептрона Розенблатта). Особенностью
является наличие более чем одного обучаемого слоя (как правило – два или три). Необходимость в большом количестве обучаемых
слоёв отпадает, так как теоретически единственного скрытого слоя
достаточно, чтобы перекодировать входное представление таким
образом, чтобы получить линейную разделимость для выходного
представления. Существует предположение, что, используя большее число слоёв, можно уменьшить число элементов в них, то есть
суммарное число элементов в слоях будет меньше, чем если использовать один скрытый слой. Это предположение успешно используется в технологиях глубокого обучения и имеет обоснование [18].
42
 Сеть Джордана
Сеть Джордана – вид нейронных сетей, который получается из
многослойного перцептрона, если на его вход подать, помимо входного вектора, выходной с задержкой на один или несколько тактов.
В первых рекуррентных сетях главной идеей было дать сети видеть свой выходной образ на предыдущем шаге. У такой сети только часть рецепторов принимает сигналы из окружающего мира, на
другие рецепторы приходит выходной образ из предыдущего момента времени. Рассмотрим прохождение последовательности сигналов
через сеть. Сигнал поступает на группу рецепторов соединенных
с внешним миром (INPUT) и проходит в скрытый слой (HIDDEN).
Преобразованный скрытым слоем сигнал пойдет на выходной слой
(OUTPUT) и выйдет из сети, а его копия попадет на задержку. Далее
в сеть, на рецепторы, воспринимающие внешние сигналы, поступает второй образ, а на контекстную группу рецепторов (CONTEXT) –
выходной образ с предыдущего шага из задержки. Далее со всех
рецепторов сигнал пойдет в скрытый слой, затем на выходной [19].
 Осцилляторные нейронные сети
Осцилляторные нейронные сети (ОНС) – нейронные сети, основными структурными единицами которых являются осцилляторы.
Функционируют ОНС за счет колебаний отдельных элементов или
групп элементов и их взаимодействия. ОНС представляют научный
интерес, так как существенную роль в мыслительных процессах человека играют колебания [20].
 Нейронная сеть Элмана
Нейронная сеть Элмана – один из видов рекуррентной сети, которая так же как и сеть Джордана получается из многослойного перцептрона введением обратных связей, только связи идут не от выхода сети, а от выходов внутренних нейронов. Это позволяет учесть
предысторию наблюдаемых процессов и накопить информацию для
выработки правильной стратегии управления. Эти сети могут применяться в системах управления движущимися объектами, так
как их главной особенностью является запоминание последовательностей [21].
 Нейронная сеть Хэмминга
Нейро нная сеть Хэ мминга (Хемминга) – вид нейронной сети,
использующийся для классификации бинарных векторов, основным критерием в которой является расстояние Хэмминга. Является развитием нейронной сети Хопфилда.
Сеть используется для того, чтобы соотнести бинарный вектор,
где, с одним из эталонных образов (каждому классу соответствует
43
свой образ), или же решить, что вектор не соответствует ни одному
из эталонов. В отличие от сети Хопфилда, выдаёт не сам образец, а
его номер.
Сеть предложена Ричардом Липпманном в 1987 году. Она позиционировалась как специализированное гетероассоциативное запоминающее устройство [22].
 Нейронная сеть Ворда
Нейронная сеть Ворда – искусственная нейронная сеть, топология которой характеризуется тем, что внутренние (скрытые) слои
нейронов разбиты на блоки.
Разбиение скрытых слоев на блоки позволяет использовать различные передаточные функции для различных блоков скрытого
слоя. Таким образом, одни и те же сигналы, полученные от входного слоя, взвешиваются и обрабатываются параллельно с использованием нескольких способов, а полученный результат затем обрабатывается нейронами выходного слоя. Применение различных
методов обработки для одного и того же набора данных позволяет сказать, что нейронная сеть анализирует данные с различных
аспектов. Практика показывает, что сеть показывает очень хорошие результаты при решении задач прогнозирования и распознавания образов. Для нейронов входного слоя, как правило, устанавливается линейная функция активации. Функция активации для
нейронов из блоков скрытого и выходного слоя определяется экспериментально.
 Нейронная сеть Хопфилда
Нейро нная сеть Хо пфилда (англ. Hopfield network) – полносвязная нейронная сеть с симметричной матрицей связей. В процессе
работы динамика таких сетей сходится (конвергирует) к одному из
положений равновесия. Эти положения равновесия определяются
заранее в процессе обучения, они являются локальными минимумами – функционала, называемого энергией сети (в простейшем
случае – локальными минимумами отрицательно определённой
квадратичной формы на n-мерном кубе). Такая сеть может быть использована как автоассоциативная память, как фильтр, а также
для решения некоторых задач оптимизации. В отличие от многих
нейронных сетей, работающих до получения ответа через определённое количество тактов, сети Хопфилда работают до достижения
равновесия, когда следующее состояние сети в точности равно предыдущему: начальное состояние является входным образом, а при
равновесии получают выходной образ [23].
Ее вариацией является Нейронная сеть Хэмминга.
44
 Нейронные сети Кохонена
Нейронные сети Кохонена – класс нейронных сетей, основным
элементом которых является слой Кохонена. Слой Кохонена состоит из адаптивных линейных сумматоров («линейных формальных
нейронов»). Как правило, выходные сигналы слоя Кохонена обрабатываются по правилу «Победитель получает всё»: наибольший
сигнал превращается в единичный, остальные обращаются в ноль.
По способам настройки входных весов сумматоров и по решаемым задачам различают много разновидностей сетей Кохонена [24].
Наиболее известные из них:
– сети векторного квантования сигналов [25], тесно связанные с
простейшим базовым алгоритмом кластерного анализа (метод динамических ядер или K-средних);
– самоорганизующиеся карты Кохонена (англ. self-organising
maps, SOM) [26];
– сети векторного квантования, обучаемые с учителем (англ.
learning vector quantization) [27].
 Расширяющийся нейронный газ
Расширяющийся нейронный газ – это алгоритм, позволяющий
осуществлять адаптивную кластеризацию входных данных, то есть не
только разделить пространство на кластеры, но и определить необходимое их количество исходя из особенностей самих данных. Это новый
класс вычислительных механизмов. Количество и расположение искусственных нейронов в пространстве признаков не задается заранее,
а вычисляется в процессе обучения моделей в соответствии с особенностями входных данных, самостоятельно подстраиваясь под них [28].
 Когнитрон
Когнитро н – искусственная нейронная сеть на основе принципа
самоорганизации. Своей архитектурой когнитрон похож на строение зрительной коры, имеет иерархическую многослойную организацию, в которой нейроны между слоями связаны только локально.
Обучается конкурентным обучением (без учителя). Каждый слой
мозга реализует различные уровни обобщения; входной слой чувствителен к простым образам, таким, как линии, и их ориентации
в определенных областях визуальной области, в то время как реакция других слоев является более сложной, абстрактной и независимой от позиции образа. Аналогичные функции реализованы в
когнитроне путём моделирования организации зрительной коры.
Неокогнитрон является дальнейшим развитием идеи когнитрона и более точно отражает строение зрительной системы, позволяет
распознавать образы независимо от их преобразований, вращений,
45
искажений и изменений масштаба. Неокогнитрон может как самообучаться, так и обучаться с учителем. Неокогнитрон получает на
входе двумерные образы, аналогичные изображениям на сетчатке
глаза, и обрабатывает их в последующих слоях аналогично тому,
как это было обнаружено в зрительной коре человека. Конечно, в
неокогнитроне нет ничего, ограничивающего его использование
только для обработки визуальных данных, он достаточно универсален и может найти широкое применение как обобщенная система
распознавания образов [29].
 Неокогнитрон
Неокогнитрон (англ. Neocognitron) – иерархическая многослойная
искусственная нейронная сеть, сверточного типа, производная от когнитрона и предложенная Кунихикой Фукусимой (1980 г.), способная
к робастному распознаванию образов, обычно обучаемая по принципу «обучение без учителя». Сеть данного вида также часто применяется для распознавания рукописного текста и OCR, образов с сильно
искажённой или зашумлённой структурой. Прообраз сети был позаимствован из модели, предложенной Хьюбеломи Визелем (1959 г.),
согласно которой, существует два вида клеток в первичной рительной коре: простая и сложная клетка, расположенные каскадно. Неокогнитрон также состоит из каскадно соединённых нейронов S-типа
(простой, англ. simple) и C-типа (сложный, англ. complex). В процессе
работы сети, локальные признаки образа извлекаются при помощи
клеток S-типа, а искажения признаков, такие как, например, сдвиг, –
компенсируются клетками C-типа. Локальные признаки на входе
обобщаются поэтапно, и окончательная классификация выполняется
в оконечных слоях. Подобная идея обобщения локальных признаков
также применяется в сетях «LeNet» и «SIFT» [30].
 Сеть радиально-базисных функций
Сеть радиально-базисных функций – искусственная нейронная
сеть, которая использует радиальные базисные функции как функции активации.
Выходом сети является линейная комбинация радиальных базисных функций входов и параметров нейрона. Сети радиальных
базисных функций имеют множество применений, в том числе
функции приближения, прогнозирования временных рядов, классификации и системы управления [31].
Впервые сформулированы в 1988 Брумхедом и Лоу.
 Сети адаптивного резонанса
– разновидность искусственных нейронных сетей, основанная на
теории адаптивного резонанса Стивена Гроссберга и Гейла Карпен46
тера. Включает в себя модели обучения с учителем и без учителя,
которые используются при решении задач распознавания образов и
предсказания [32].
 Свёрточная нейронная сеть
Свёрточная нейронная сеть (англ. convolutional neural network,
CNN) – специальная архитектура искусственных нейронных сетей,
предложенная Яном Лекуном в 1988 году [33] и нацеленная на эффективное распознавание изображений[34], входит в состав технологий
глубокого обучения (англ. deep learning). Использует некоторые особенности зрительной коры [35], в которой были открыты так называемые
простые клетки, реагирующие на прямые линии под разными углами, и сложные клетки, реакция которых связана с активацией определённого набора простых клеток. Таким образом, идея свёрточных
нейронных сетей заключается в чередовании свёрточных слоев (англ.
convolution layers) и субдискретизирующих слоев (англ. subsampling
layers или англ. pooling layers, слоёв подвыборки). Структура сети –
однонаправленная (без обратных связей), принципиально многослойная. Для обучения используются стандартные методы, чаще всего метод обратного распространения ошибки. Функция активации нейронов (передаточная функция) – любая, по выбору исследователя.
Название архитектура сети получила из-за наличия операции
свёртки, суть которой в том, что каждый фрагмент изображения
умножается на матрицу (ядро) свёртки поэлементно, а результат
суммируется и записывается в аналогичную позицию выходного
изображения.
 Импульсная нейронная сеть
Импульсная нейронная сеть (ИмНС, англ. Pulsed neural networks, PNN) или Спайковая нейронная сеть (СНН, англ. Spiking
neural network, SNN) – третье поколение искусственных нейронных
сетей (ИНС) [1], которое отличается от бинарных (первое поколение)
и частотных/скоростных (второе поколение) ИНС тем, что в немнейроны обмениваются короткими (у биологических нейронов – около
1–2 мс) импульсами одинаковой амплитуды (у биологических нейронов – около 100 мВ). Является самой реалистичной, с точки зрения физиологии, моделью ИНС [36–39].
2.4.2. Методы деревьев решений, символьные правила
Алгоритм построения дерева принятия решений можно описать
следующим образом:
s0 = вычисляем энтропию исходного множества
47
Если s0 == 0 значит:
Все объекты исходного набора, принадлежат к одному классу
Сохраняем этот класс в качестве листа дерева
Если s0 != 0 значит:
Ищем предикат, который разбивает исходное множество таким
образом, чтобы уменьшилось среднее значение энтропии
Найденный предикат является частью дерева принятия решений, сохраняем его
Разбиваем исходное множество на подмножества, согласно предикату
Повторяем данную процедуру рекурсивно для каждого подмножества
Что значит «ищем предикат»?
Как вариант, можно считать, что на основе каждого элемента исходного множества можно построить предикат, который разбивает
множество на две части. Следовательно, алгоритм можно переформулировать:
s0 = вычисляем энтропию исходного множества
Если s0 == 0 значит:
Все объекты исходного набора, принадлежат к одному классу
Сохраняем этот класс в качестве листа дерева
Если s0 != 0 значит:
Перебираем все элементы исходного множества:
На основе каждого элемента генерируем предикат, который разбивает исходное множество на два подмножества
Рассчитываем среднее значение энтропии
Вычисляем ∆S
Нас интересует предикат, с наибольшим значением ∆S
Найденный предикат является частью дерева принятия решений, сохраняем его
Разбиваем исходное множество на подмножества, согласно предикату
Повторяем данную процедуру рекурсивно для каждого подмножества
Как можно «на основе каждого элемента множества генерировать предикат»? В самом простом случае, можно использовать
предикаты, которые относятся только к значению какого-нибудь
атрибута (например «x ≥ 12», или «цвет == жёлтый» и т. п.). Следовательно, алгоритм примет вид:
s0 = вычисляем энтропию исходного множества
Если s0 == 0 значит:
48
Все объекты исходного набора, принадлежат к одному классу
Сохраняем этот класс в качестве листа дерева
Если s0! = 0 значит:
Перебираем все элементы исходного множества:
Для каждого элемента перебираем все его атрибуты:
На основе каждого атрибута генерируем предикат, который разбивает исходное множество на два подмножества
Рассчитываем среднее значение энтропии
Вычисляем ∆S
Нас интересует предикат, с наибольшим значением ∆S
Найденный предикат является частью дерева принятия решений, сохраняем его
Разбиваем исходное множество на подмножества, согласно предикату
Повторяем данную процедуру рекурсивно для каждого подмножества
На самом деле, если рассматривать классифицируемые объекты как точки в многомерном пространстве, то можно увидеть, что
предикаты, разделяющие множество данных на подмножества, являются гиперплоскостями, а процедура обучения классификатора
является поиском ограничивающих объёмов (в общем, как и для
любого другого вида классификаторов).
Главным достоинством является, получаемая в результате, древовидная структура предикатов, которая позволяет интерпретировать результаты классификации (хотя в силу своей «жадности»,
описанный алгоритм, не всегда позволяет обеспечить оптимальность дерева в целом).
Одним из краеугольных камней описанного алгоритма является критерий остановки при построении дерева. В описанных выше
псевдокодах, я прекращал построение дерева только при достижении множества, в котором все элементы принадлежат к одному
классу (энтропия == 0). Такой подход позволяет полностью подогнать дерево принятия решений под обучающую выборку данных,
но это не всегда эффективно с практической точки зрения (полученное дерево является переобученным).
Одним из возможных критериев остановки может быть небольшое значение ∆S. Но при таком подходе, всё же, невозможно дать
универсальный совет: при каких значениях ∆S следует прекращать
построение дерева.
Основная проблема, очевидно, кроется в первом шаге – на каком
основании выбирается каждый следующий атрибут Q? На этот вопрос
49
существует несколько ответов в виде частных алгоритмов принятия решений – главными из которых являются алгоритмы ID3, C4.5 и CART.
Алгоритм ID3
В основе этого алгоритма лежит понятие информационной энтропии – то есть, меры неопределенности информации (обратной мере
информационной полезности величины). Для того чтобы определить
следующий атрибут, необходимо подсчитать энтропию всех неиспользованных признаков относительно тестовых образцов и выбрать
тот, для которого энтропия минимальна. Этот атрибут и будет считаться наиболее целесообразным признаком классификации.
Идея алгоритма заключается в последовательном дроблении выборки на две части до тех пор, пока в каждой части не окажутся объекты только одного класса. Проще всего записать этот алгоритм в виде
рекурсивной процедуры LearnID3, которая строит дерево по заданной
подвыборке S. Для построения полного дерева она применяется ко
всей выборке и возвращает указатель на корень построенного дерева:
( )
v0 := LearnID3 X l
На шаге 6 алгоритма выбирается предикат β, задающий максимально информативное ветвление дерева – разбиение выборки на
две части S = S0US1. На практике применяются различные критерии ветвления.
1. Критерий, ориентированный на скорейшее отделение одного
из классов
=
I ( β, S ) maxc∈Y Ic ( β, S )
2. Критерий, ориентированный на задачи с большим числом
классов. Фактически, это обобщение статистического определения
информативности.
g
I ( β, S ) =
−1n
g
CG0 …CGld −1
0
g
CG0 +…+
ld −1
gld −1
,
0 +…+ Gld −1
где GC – число объектов класса C в выборке S, из них gc объектов покрываются правилом β.
3. D-критерий – число пар объектов из разных классов, на которых предикат принимает разные значения. В случае двух классов
он имеет вид
I ( β, S ) = g ( β ) ( B − b ( β ) ) + b ( β ) ( G − g ( β ) ).
50
Трудоёмкость алгоритма ID3 составляет O(|B|Vo), где V0 – число
внутренних вершин дерева.
Алгоритм: Рекурсивный алгоритм построения решающего дерева ID3
Вход:
S – обучающая выборка;
В – множество базовых предикатов.
Выход:
Возвращает корневую вершину дерева, построенного по выборке S;
1: ПРОЦЕДУРА LearnID3 (S);
2: если все объекты из S лежат в одном классе c ∈ Y то
3: создать новый лист v;
4: cv:=c;
5: вернуть (v);
6: найти предикат с максимальной информативностью:
I β,S
=
β : arg max β∈ B ( ) ;
7: разбить выборку на две части =
S S0 ∪ S1 по предикату
β : S0 := {x ∈ S : β ( x ) =
0}
S1 := {x ∈ S : β ( x ) =
1}
8: если S0 = ⊗ или S1 = ⊗ то
9: создать новый лист v;
10: cv:= класс, в котором находится большинство объектов из S;
11: вернуть (v);
12: иначе
13: создать новую внутреннюю вершину v;
14: βv =β ;
15: Lv:= LearnID3 (So); (построить левое поддерево)
16: Rv:= LearnID3 (S1); (построить правое поддерево)
17: вернуть (v);
Преимущества алгоритмаID3
Простота и интерпретируемость классификации. Алгоритм способен не только классифицировать объект, но и выдать объяснение
классификации в терминах предметной области. Для этого достаточно записать последовательность условий, пройденных объектом
от корня дерева до листа.
Алгоритм синтеза решающего дерева имеет сложность, линейную по длине выборки.
51
Если множество предикатов В настолько богато, что на шаге 6
всегда находится предикат, разбивающий выборку S на непустые
подмножества S0 и S1, то алгоритм строит бинарное решающее дерево, безошибочно классифицирующее выборку Xl.
Алгоритм очень прост для реализации и легко поддаётся различным усовершенствованиям. Можно использовать различные критерии ветвления и критерии останова, вводить редукцию, и т. д.
Недостатки алгоритмаID3
Локально оптимальный выбор предиката βv не является глобально оптимальным. В случае выбора неоптимального предиката
алгоритм не способен вернуться на уровень вверх и заменить неудачный предикат.
Чем дальше вершина v расположена от корня дерева, тем меньше
длина подвыборки S, по которой приходится принимать решение о
ветвлении в вершине v. Тем менее статистически надёжным является выбор предиката βv .
Алгоритм склонен к переобучению – как правило, он переусложняет структуру дерева. Обобщающая способность алгоритма (качество классификации новых объектов) относительно невысока.
Основная причина недостатков – неоптимальность жадной стратегии наращивания дерева. Перечисленные недостатки в большей
или меньшей степени свойственны большинству алгоритмов синтеза решающих деревьев. Для их устранения применяют различные
эвристические приемы: редукцию, элементы глобальной оптимизации, «заглядывание вперёд.
Алгоритм C4.5
Этот алгоритм – усовершенствование предыдущего метода, позволяющее, в частности, «усекать» ветви дерева, если оно слишком
сильно «разрастается», а также работать не только с атрибутамикатегориями, но и с числовыми. В общем-то, сам алгоритм выполняется по тому же принципу, что и его предшественник; отличие
состоит в возможности разбиения области значений независимой
числовой переменной на несколько интервалов, каждый из которых будет являться атрибутом. В соответствии с этим исходное
множество делится на подмножества. В конечном итоге, если дерево получается слишком большим, возможна обратная группировка – нескольких узлов в один лист. При этом, поскольку перед
построением дерева ошибка классификации уже учтена, она не
увеличивается.
Прежде чем приступить к описанию алгоритма построения дерева решений, определим обязательные требования к структуре дан52
ных и непосредственно к самим данным, при выполнении которых
алгоритм C4.5 будет работоспособен:
Описание атрибутов. Данные, необходимые для работы алгоритма, должны быть представлены в виде плоской таблицы. Вся информация об объектах (далее примеры) из предметной области должна
описываться в виде конечного набора признаков (далее атрибуты).
Каждый атрибут должен иметь дискретное или числовое значение.
Сами атрибуты не должны меняться от примера к примеру, и количество атрибутов должно быть фиксированным для всех примеров.
Определенные классы. Каждый пример должен быть ассоциирован с конкретным классом, т. е. один из атрибутов должен быть
выбран в качестве метки класса.
Дискретные классы. Классы должны быть дискретными, т. е.
иметь конечное число значений. Каждый пример должен однозначно
относиться к конкретному классу. Случаи, когда примеры принадлежат к классу с вероятностными оценками, исключаются. Количество классов должно быть значительно меньше количества примеров.
Пусть нам задано множество примеров T, где каждый элемент
этого множества описывается m атрибутами. Количество примеров
в множестве T будем называть мощностью этого множества и будем
обозначать | T | .
Пусть метка класса принимает следующие значения C1, C2 …Ck .
Наша задача будет заключаться в построении иерархической
классификационной модели в виде дерева из множества примеров
T. Процесс построения дерева будет происходить сверху вниз. Сначала создается корень дерева, затем потомки корня и т. д. На первом
шаге мы имеем пустое дерево (имеется только корень) и исходное
множество T (ассоциированное с корнем). Требуется разбить исходное множество на подмножества. Это можно сделать, выбрав один
из атрибутов в качестве проверки. Тогда в результате разбиения получаются n (по числу значений атрибута) подмножеств и, соответственно, создаются n потомков корня, каждому из которых поставлено в соответствие свое подмножество, полученное при разбиении
множества T. Затем эта процедура рекурсивно применяется ко всем
подмножествам (потомкам корня) и т. д.
Рассмотрим подробнее критерий выбора атрибута, по которому
должно пойти ветвление. Очевидно, что в нашем распоряжении m
(по числу атрибутов) возможных вариантов, из которых мы должны выбрать самый подходящий. Некоторые алгоритмы исключают
повторное использование атрибута при построении дерева, но в нашем случае мы таких ограничений накладывать не будем. Любой
53
из атрибутов можно использовать неограниченное количество раз
при построении дерева.
Пусть мы имеем проверку X (в качестве проверки может быть выбран любой атрибут), которая принимает n значений A1, A2 ,... An .
Тогда разбиение T по проверке X даст нам подмножества T1,T2 ,...,Tn
и X равном соответственно A1, A2 ,... An . Единственная доступная
нам информация – то, каким образом классы распределены в множестве T и его подмножествах, получаемых при разбиении по Х.
Именно этим мы и воспользуемся при определении критерия.
Пусть freq(Cj S) – количество примеров из некоторого множества S, относящихся к одному и тому же классу Cj. Тогда вероятность того, что случайно выбранный пример из множества S будет
принадлежать к классу Cj
P=
(
freq Cj,S
S
).
Согласно теории информации, количество содержащейся в сообщении информации, зависит от ее вероятности
1
log2  . P
(2.1)
Поскольку мы используем логарифм с двоичным основанием, то
выражение (2.1) дает количественную оценку в битах.
Выражение
k
Info (T ) = −∑ j =1
freg(Cj ,T)
T
 freg(Cj ,T 
* log2 
 T


(2.2)
дает оценку среднего количества информации, необходимого для
определения класса примера из множества T. В терминологии теории
информации выражение (2.2) называется энтропией множества T.
Ту же оценку, но только уже после разбиения множества T по X,
дает следующее выражение:
n T
Infox (T ) = ∑ i =1 i * Info(Ti ) T
(2.3)
Тогда критерием для выбора атрибута будет являться следующая формула:
Gain
=
(2.4)
( X ) Info (T ) − InfoX (T ) 54
Критерий (2.4) считается для всех атрибутов. Выбирается атрибут, максимизирующий данное выражение. Этот атрибут будет являться проверкой в текущем узле дерева, а затем по этому атрибуту
производится дальнейшее построение дерева. То есть в узле будет
проверяться значение по этому атрибуту и дальнейшее движение по
дереву будет производиться в зависимости от полученного ответа.
Такие же рассуждения можно применить к полученным подмножествам T1,T2 ,...Tn и продолжить рекурсивно процесс построения
дерева, до тех пор, пока в узле не окажутся примеры из одного класса.
Одно важное замечание: если в процессе работы алгоритма получен узел, ассоциированный с пустым множеством (т. е. ни один пример не попал в данный узел), то он помечается как лист, и в качестве
решения листа выбирается наиболее часто встречающийся класс у
непосредственного предка данного листа.
Здесь следует пояснить почему критерий (2.4) должен максимизироваться. Из свойств энтропии нам известно, что максимально
возможное значение энтропии достигается в том случае, когда все
его сообщения равновероятны. В нашем случае, энтропия (2.3) достигает своего максимума когда частота появления классов в примерах множества T равновероятна. Нам же необходимо выбрать
такой атрибут, чтобы при разбиении по нему один из классов имел
наибольшую вероятность появления. Это возможно в том случае,
когда энтропия (3) будет иметь минимальное значение и, соответственно, критерий (4) достигнет своего максимума.
Как быть в случае с числовыми атрибутами? Понятно, что следует выбрать некий порог, с которым должны сравниваться все значения атрибута. Пусть числовой атрибут имеет конечное число значе vn }. Предварительно отсортируем все
ний. Обозначим их {v1, v2 …
значения. Тогда любое значение, лежащее между vi и vi+1, делит все
примеры на два множества: те, которые лежат слева от этого значе vn }. В качестве порония {v1, v2 …
vi }, и те, что справа {vi +1, vi +2 …
га можно выбрать среднее между значениями vi и vi+1
vi +vi +1
THi =
.
2
Таким образом, мы существенно упростили задачу нахождения
порога, и привели к рассмотрению всего n − 1 потенциальных пороговых значений TH1,TH2 ,…,THn −1. Формулы (2.2), (2.3) и (2.4)
последовательно применяются ко всем потенциальным пороговым
значениям и среди них выбирается то, которое дает максимальное
значение по критерию (2.4). Далее это значение сравнивается со зна55
чениями критерия (2.4), подсчитанными для остальных атрибутов.
Если выяснится, что среди всех атрибутов данный числовой атрибут имеет максимальное значение по критерию (2.4), то в качестве
проверки выбирается именно он.
Следует отметить, что все числовые тесты являются бинарными,
т. е. делят узел дерева на две ветви.
Итак, мы имеем дерево решений и хотим использовать его для
распознавания нового объекта. Обход дерева решений начинается с
корня дерева. На каждом внутреннем узле проверяется значение объекта Y по атрибуту, который соответствует проверке в данном узле,
и, в зависимости от полученного ответа, находится соответствующее
ветвление, и по этой дуге двигаемся к узлу, находящему на уровень
ниже и т. д. Обход дерева заканчивается как только встретится узел
решения, который и дает название класса объекта Y.
 Алгоритм CART
Алгоритм разработан в целях построения так называемых бинарных деревьев решений – то есть тех деревьев, каждый узел которых при разбиении «дает» только двух потомков. Грубо говоря,
алгоритм действует путем разделения на каждом шаге множества
примеров ровно напополам – по одной ветви идут те примеры, в которых правило выполняется (правый потомок), по другой – те, в которых правило не выполняется (левый потомок). Таким образом, в
процессе «роста» на каждом узле дерева алгоритм проводит перебор
всех атрибутов, и выбирает для следующего разбиения тот, который
максимизирует значение показателя, вычисляемого по математической формуле и зависящего от отношений числа примеров в правом
и левом потомке к общему числу примеров.
CART, сокращение от Classification And Regression Tree, переводится как Дерево Классификации и Регрессии – алгоритм бинарного дерева решений, впервые опубликованный Бриманом и др. в
1984 году. Алгоритм предназначен для решения задач классификации и регрессии. Существует также несколько модифицированных версий – алгоритмы IndCART и DB-CART. Алгоритм IndCART,
является частью пакета Ind и отличается от CART использованием
иного способа обработки пропущенных значений, не осуществляет
регрессионную часть алгоритма CART и имеет иные параметры отсечения. Алгоритм DB-CART базируется на следующей идее: вместо того чтобы использовать обучающий набор данных для определения разбиений, используем его для оценки распределения входных и выходных значений и затем используем эту оценку, чтобы
определить разбиения. DB, соответственно означает – distribution
56
based. Утверждается, что эта идея дает значительное уменьшение
ошибки классификации, по сравнению со стандартными методами
построения дерева. Основными отличиями алгоритма CART от алгоритмов семейства ID3 являются:
– бинарное представление дерева решений;
– функция оценки качества разбиения;
– механизм отсечения дерева;
– алгоритм обработки пропущенных значений;
– построение деревьев регрессии.
В алгоритме CART каждый узел дерева решений имеет двух потомков. На каждом шаге построения дерева правило, формируемое
в узле, делит заданное множество примеров (обучающую выборку)
на две части – часть, в которой выполняется правило (потомок –
right) и часть, в которой правило не выполняется (потомок – left).
Для выбора оптимального правила используется функция оценки
качества разбиения.
Обучение дерева решений относится к классу обучения с учителем, то есть обучающая и тестовая выборки содержат классифицированный набор примеров. Оценочная функция, используемая
алгоритмом CART, базируется на интуитивной идее уменьшения
нечистоты (неопределённости) в узле. Рассмотрим задачу с двумя
классами и узлом, имеющим по 50 примеров одного класса. Узел
имеет максимальную «нечистоту». Если будет найдено разбиение,
которое разбивает данные на две подгруппы 40:5 примеров в одной
и 10:45 в другой, то интуитивно «нечистота» уменьшится. Она полностью исчезнет, когда будет найдено разбиение, которое создаст
подгруппы 50:0 и 0:50. В алгоритме CART идея «нечистоты» формализована в индексе Gini. Если набор данных Tсодержит данные n
классов, тогда индекс Gini определяется как:
n
Gini (T )= 1 − ∑ pi2 ,
i =1
где pi – вероятность (относительная частота) класса i в Т.
Если набор Т разбивается на две части Т1 и Т2 с числом примеров
в каждом N1 и N2 соответственно, тогда показатель качества разбиения будет равен:
N
N
Ginisplit (T ) = 1 ⋅ Gini (T1 ) + 2 ⋅ Gini (T2 ).
N
N
Наилучшим считается то разбиение, для которого Ginisplit (T)
минимально.
57
Обозначим N – число примеров в узле–предке. L,R – число примеров соответственно в левом и правом потомке, li и ri– число экземпляров i-го класса в левом/правом потомке. Тогда качество разбиения оценивается по следующей формуле:
2
2
n
n
L 
l   R 
r  
⋅  1 − ∑  l   + ⋅  1 − ∑  l   → min.
N  i 1=
 L   N  i 1 R  
=
Ginisplit =
Чтобы уменьшить объем вычислений формулу можно преобразовать:


1  
1 n 
1 n
Ginisplit =
⋅  L  1 − 2 ⋅ ∑ ll2  + R ⋅  1 − 2 ⋅ ∑ rl2   → min.



N  
L i 1=
R i 1  
=


Так как умножение на константу не играет роли при минимизации:
1 n
1 n
Ginisplit = L − ⋅ ∑ ll2 + R − ⋅ ∑ rl2 → min.
L i 1=
R i 1
=
1 n

1 n
Ginisplit = N −  ⋅ ∑ ll2 + ⋅ ∑ rl2  → min.
L
R i 1 
=
 i 1=
1 n 2 1 n 2
⋅ ∑ ll + ⋅ ∑ rl → max.
L i 1=
R i 1
=
Ginisplit =
В итоге, лучшим будет то разбиение, для которого величина Gsplit
максимальна. Реже в алгоритме CART используются другие критерии разбиения Twoing, Symmetric Gini и др.
Вектор предикторных переменных, подаваемый на вход дерева
может содержать как числовые (порядковые) так и категориальные
переменные. В любом случае в каждом узле разбиение идет только по одной переменной. Если переменная числового типа, то в узле
формируется правило вида xi <= c. Где c – некоторый порог, который чаще всего выбирается как среднее арифметическое двух соседних упорядоченных значений переменной xi обучающей выборки. Если переменная категориального типа, то в узле формируется
правило xi ∈ V ( xi ) , где V ( xi ) – некоторое непустое подмножество
множества значений переменной xi в обучающей выборке. Следовательно, для n значений числового атрибута алгоритм сравнивает n–1 разбиений, а для категориального (2n−1 – 1). На каждом
58
шаге построения дерева алгоритм последовательно сравнивает все
возможные разбиения для всех атрибутов и выбирает наилучший
атрибут и наилучшее разбиение для него.
Механизм отсечения дерева, оригинальное название minimal
cost-complexity tree pruning, – наиболее серьезное отличие алгоритма CART от других алгоритмов построения дерева. CART рассматривает отсечение как получение компромисса между двумя
проблемами: получение дерева оптимального размера и получение
точной оценки вероятности ошибочной классификации.
Основная проблема отсечения – большое количество всех возможных отсеченных поддеревьев для одного дерева. Более точно, если бинарное дерево имеет T – 1 листов, тогда существует
~[1.5028369|T|] отсечённых поддеревьев. И если дерево имеет хотя
бы 1000 листов, тогда число отсечённых поддеревьев становится
просто огромным.
Базовая идея метода – не рассматривать все возможные поддеревья, ограничившись только «лучшими представителями» согласно
приведённой ниже оценке.
Обозначим T – число листов дерева, R (T ) – ошибка классификации дерева, равная отношению числа неправильно классифицированных примеров к числу примеров в обучающей выборке. Определим Cα (T ) – полную стоимость (оценку/показатель затраты –
сложность) дерева T как:
Cα=
(T ) R (T ) + α * T ,
где T – число листов (терминальных узлов) дерева, α – некоторый
параметр, изменяющийся от 0 до + ∞. Полная стоимость дерева состоит из двух компонент – ошибки классификации дерева и штрафа
за его сложность. Если ошибка классификации дерева неизменна,
тогда с увеличением α полная стоимость дерева будет увеличиваться. Тогда в зависимости от α менее ветвистое дерево, дающее большую ошибку классификации может стоить меньше, чем дающее
меньшую ошибку, но более ветвистое.
Определим Tmax – максимальное по размеру дерево, которое
предстоит обрезать. Если мы зафиксируем значение α, тогда существует наименьшее минимизируемое поддерево α, которое выполняет следующие условия:
C
=
α (T ( α ) ) minT <=Tmax Cα (T ),
if ⋅ Cα (T )= Cα (T ( α ) ) ⋅ then ⋅ T ( α ) <= T.
59
Первое условие говорит, что не существует такого поддерева
дерева Tmax, которое имело бы меньшую стоимость, чем T ( α ) при
этом значении α. Второе условие говорит, что если существует более одного поддерева, имеющего данную полную стоимость, тогда
мы выбираем наименьшее дерево.
Можно показать, что для любого значения α существует такое
наименьшее минимизируемое поддерево. Но эта задача не тривиальна. Что она говорит – что не может быть такого, когда два дерева
достигают минимума полной стоимости и они несравнимы, т. е. ни
одно из них не является поддеревом другого. Мы не будем доказывать этот результат.
Хотя α имеет бесконечное число значений, существует конечное
число поддеревьев дерева Tmax. Можно построить последовательность уменьшающихся поддеревьев дерева Tmax:
T1 > T2 > T3 > … > {t1},
(где t1 – корневой узел дерева) такую, что Tk – наименьшее минимизируемое поддерево для α ∈ [ α k , α k+1 ). Это важный результат, так как
это означает, что мы можем получить следующее дерево в последовательности, применив отсечение к текущему дереву. Это позволяет
разработать эффективный алгоритм поиска наименьшего минимизируемого поддерева при различных значениях α. Первое дерево в этой
последовательности – наименьшее поддерево дерева Tmax, имеющее
такую же ошибку классификации, как и Tmax, т. е. T1= T ( α= 0 ). Пояснение: если разбиение идет до тех пор, пока в каждом узле останется только один класс, то T1 = Tmax , но так как часто применяются
методы ранней остановки (prepruning), тогда может существовать
поддерево дерева Tmax имеющее такую же ошибку классификации.
Как мы получаем следующее дерево в последовательности и соответствующее значение α. Обозначим T1 – ветвь дерева T с корневым
узлом t. При каких значениях α дерево T − Tt будет лучше, чем T.
Если мы отсечём в узле t, тогда его вклад в полную стоимость дереt} ) R ( t ) + α, =
ва T − Tt станет Cα ({=
где R ( t ) r=
( t ) * p ( t ) r ( t ), r ( t ) –
это ошибка классификации узла t и p(t) – пропорция случаев, которые «прошли» через узел t. Альтернативный вариант: R ( t ) = m / n,
где m – число примеров классифицированных некорректно, а n –
общее число классифицируемых примеров для всего дерева.
Вклад Tt в полную стоимость дерева T составит
Cα=
(Tt ) R (Tt ) + α | Tt |,
где
60
R (Tt ) = ∑ t∈T R ( t ).
t
Cα (Tt ), потоДерево T − Tt будет лучше, чем T, когда Cα ({t} ) =
му что при этой величине α они имеют одинаковую стоимость, но
Cα(Tt ) мы получаем:
T − Tt наименьшее из двух. Когда Cα ({t} ) =
R (Tt ) + α=
Tt R ( t ) + α,
решая для α, получаем:
α=
R ( t ) − R (Tt )
Tt − 1
.
Так для любого узла t в T1, если мы увеличиваем α, тогда когда
α=
R ( t ) − R (T1,t )
T1,t − 1
,
дерево, полученное отсечением в узле t, будет лучше, чем T1.
Основная идея состоит в следующем: вычислим это значение α
для каждого узла в дереве T1, и затем выберем «слабые связи» (их
может быть больше чем одна), т. е. узлы для которых величина
g (t ) =
R ( t ) − R (T1,t )
T1,t − 1
,
является наименьшей. Мы отсекаем T1 в этих узлах, чтобы получить T2 – следующее дерево в последовательности. Затем мы продолжаем этот процесс для полученного дерева и так пока мы не получим корневой узел (дерево в котором только один узел).
 Преимущества деревьев решений
Интуитивность деревьев решений. Классификационная модель,
представленная в виде дерева решений, является интуитивной и
упрощает понимание решаемой задачи. Результат работы алгоритмов конструирования деревьев решений, в отличие, например, от
нейронных сетей, представляющих собой «черные ящики», легко
интерпретируется пользователем. Это свойство деревьев решений
не только важно при отнесении к определенному классу нового объекта, но и полезно при интерпретации модели классификации в
целом. Дерево решений позволяет понять и объяснить, почему конкретный объект относится к тому или иному классу.
61
Деревья решений дают возможность извлекать правила из базы
данных на естественном языке. Пример правила: Если Возраст > 35
и Доход > 200, то выдать кредит.
Деревья решений позволяют создавать классификационные модели в тех областях, где аналитику достаточно сложно формализовать знания.
Алгоритм конструирования дерева решений не требует от пользователя выбора входных атрибутов (независимых переменных).
На вход алгоритма можно подавать все существующие атрибуты,
алгоритм сам выберет наиболее значимые среди них, и только они
будут использованы для построения дерева. В сравнении, например, с нейронными сетями, это значительно облегчает пользователю работу, поскольку в нейронных сетях выбор количества входных атрибутов существенно влияет на время обучения.
Точность моделей, созданных при помощи деревьев решений,
сопоставима с другими методами построения классификационных
моделей (статистические методы, нейронные сети).
Разработан ряд масштабируемых алгоритмов, которые могут
быть использованы для построения деревьев решения на сверхбольших базах данных; масштабируемость здесь означает, что с ростом
числа примеров или записей базы данных время, затрачиваемое на
обучение, т. е. построение деревьев решений, растет линейно. Примеры таких алгоритмов: SLIQ, SPRINT.
 Быстрый процесс обучения
На построение классификационных моделей при помощи алгоритмов конструирования деревьев решений требуется значительно
меньше времени, чем, например, на обучение нейронных сетей.
Большинство алгоритмов конструирования деревьев решений
имеют возможность специальной обработки пропущенных значений.
2.4.3. Методы ближайшего соседа и k-ближайших соседей
Метод ближайших соседей – это простейший метрический классификатор (similarity-based classifier), основанный на оценивании
сходства объектов. Классифицируемый объект относится к тому
классу, к которому принадлежат ближайшие к нему объекты обучающей выборки.
Метод ближайшего соседа является, пожалуй, самым простым
алгоритмом классификации. Классифицируемый объект x относится к тому классу yr, которому принадлежит ближайший объект обучающей выборки xY.
62
Метод k ближайших соседей. Для повышения надёжности классификации объект относится к тому классу, которому принадлежит
большинство из его соседей – k ближайших к нему объектов обучающей выборки xY. В задачах с двумя классами число соседей берут
нечётным, чтобы не возникало ситуаций неоднозначности, когда
одинаковое число соседей принадлежат разным классам.
 Гипотеза компактности
Все перечисленные методы неявно опираются на одно важное
предположение, называемое гипотезой компактности: если мера
сходства объектов введена достаточно удачно, то схожие объекты гораздо чаще лежат в одном классе, чем в разных классах.
В этом случае граница между классами имеет достаточно простую
форму, а классы образуют компактно локализованные области в
пространстве объектов. Заметим, что в математическом анализе
компактными называются ограниченные замкнутые множества.
Гипотеза компактности не имеет ничего общего с этим понятием, и должна пониматься скорее в «бытовом» смысле этого слова.)
Пусть задана обучающая выборка пар «объект – ответ»
=
Xm
{( x1, y1 ),…,( xm , ym )}.
Пусть на множестве объектов задана функция расстояния
p ( x, x′ ). Эта функция должна быть достаточно адекватной моделью
сходства объектов. Чем больше значение этой функции, тем менее
схожими являются два объекта x, x′.
Для произвольного объекта u расположим объекты обучающей
выборки xi в порядке возрастания расстояний до u:
p ( u, x1;u ) ≤ p ( u, x2;u ) ≤ … ≤ p ( u, xm;u ),
где через xi,u обозначается тот объект обучающей выборки, который
является i-м соседом объекта u. Аналогичное обозначение введём и
для ответа на i-м соседе: yi,u. Таким образом, произвольный объект
u порождает свою перенумерацию выборки. В наиболее общем видеалгоритм ближайших соседей есть
m
α ( u ) =argmax ∑  xi;u =y  ω( i;u ),
i −1
где ω( i,u ) – заданная весовая функция, которая оценивает степень
важности i-го соседа для классификации объекта u. Естественно полагать, что эта функция неотрицательна и не возрастает по i.
63
По-разному задавая весовую функцию, можно получать различные варианты метода ближайших соседей.
–  ω( i,u ) ==
[i 1] – простейший метод ближайшего соседа;
–  ω( i,u ) =≤
[i k] – метод k ближайших соседей;
–  ω( i,u ) =≤
[i k] g i – метод k экспоненциально взвешенных бли-
жайших соседей, где предполагается g < 1 ;
 p ( u, xi,u ) 
 – метод парзеновского окна фиксированK
–  ω( i,u ) =


h


ной ширины h;
 p ( u, xi,u ) 
 метод парзеновского окна переменной
K
–  ω( i,u ) =
 p ( u, xk+1:u ) 


ширины (Метод парзеновского окна – метод байесовской классификации, основанный на непараметрическом восстановлении плотности по имеющейся выборке.);
 p ( u, xi,u ) 
 – метод потенциальных функций, в коK
–  ω( i,u ) =
 h ( xi;u ) 


тором ширина окна h ( xi ) зависит не от классифицируемого объекта, а от обучающего объекта xi (Метод потенциальных функций –
метрический классификатор, частный случай метода ближайших
соседей. Позволяет с помощью простого алгоритма оценивать вес
(«важность») объектов обучающей выборки при решении задачи
классификации).
Здесь K(r) – заданная неотрицательная монотонно невозрастающая функция на [0, +∞), ядро сглаживания.
 Выбор числа соседей k
При k = 1 алгоритм ближайшего соседа неустойчив к шумовым
выбросам: он даёт ошибочные классификации не только на самих
объектах-выбросах, но и на ближайших к ним объектах других
классов. При k = m, наоборот, алгоритм чрезмерно устойчив и вырождается в константу. Таким образом, крайние значения k нежелательны. На практике оптимальное значение параметра k определяют по критерию скользящего контроля, чаще всего – методом исключения объектов по одному (leave-one-out cross-validation).
 Отсев шума (выбросов)
Обычно объекты обучения не являются равноценными. Среди
них могут находиться типичные представители классов – эталоны.
64
Если классифицируемый объект близок к эталону, то, скорее всего,
он принадлежит тому же классу. Ещё одна категория объектов – неинформативные или периферийные. Они плотно окружены другими объектами того же класса. Если их удалить из выборки, это
практически не отразится на качестве классификации. Наконец, в
выборку может попасть некоторое количество шумовых выбросов –
объектов, находящихся «в гуще» чужого класса. Как правило, их
удаление только улучшает качество классификации.
Исключение из выборки шумовых и неинформативных объектов
даёт несколько преимуществ одновременно: повышается качество
классификации, сокращается объём хранимых данных и уменьшается время классификации, затрачиваемое на поиск ближайших
эталонов.
Идея отбора эталонов реализована в алгоритме STOLP, описанном в книге Н. Г. Загоруйко.
 Сверхбольшие выборки
Метод ближайших соседей основан на явном хранении всех обучающих объектов. Сверхбольшие выборки m  103 создают несколько чисто технических проблем: необходимо не только хранить
большой объём данных, но и уметь быстро находить среди них k
ближайших соседей произвольного объекта u.
Проблема решается двумя способами:
– Выборка прореживается путём выбрасывания неинформативных объектов (см. выше);
– применяются специальные индексы и эффективные структуры данных для быстрого поиска ближайших соседей (например, –
деревья).
 Проблема выбора метрики
Это наиболее сложная из всех проблем. В практических задачах классификации редко встречаются такие «идеальные случаи»,
когда заранее известна хорошая функция расстояния p ( x, x′ ). Если
объекты описываются числовыми векторами, часто берут евклидову метрику. Этот выбор, как правило, ничем не обоснован – просто
это первое, что приходит в голову. При этом необходимо помнить,
что все признаки должны быть измерены «в одном масштабе», а
лучше всего – отнормированы. В противном случае признак с наибольшими числовыми значениями будет доминировать в метрике,
остальные признаки, фактически, учитываться не будут.
Однако и нормировка является весьма сомнительной эвристикой, так как остаётся вопрос: «неужели все признаки одинаково
значимы и должны учитываться примерно с одинаковым весом?»
(
)
65
Если признаков слишком много, а расстояние вычисляется как
сумма отклонений по отдельным признакам, то возникает проблема
проклятия размерности. Суммы большого числа отклонений с большой вероятностью имеют очень близкие значения (согласно закону
больших чисел). Получается, что в пространстве высокой размерности все объекты примерно одинаково далеки друг от друга; выбор k
ближайших соседей становится практически произвольным.
Проблема решается путём отбора относительно небольшого числа информативных признаков (features selection). В алгоритмах вычисления оценок строится множество различных наборов признаков (т.н. опорных множеств), для каждого строится своя функция
близости, затем по всем функциям близости производится голосование.
 Области применения алгоритма k-ближайших соседей
Алгоритм k-ближайших соседей (KNN) имеет широкое применение. Например:
1. Обнаружение мошенничества. Новые случаи мошенничества
могут быть похожи на те, которые происходили когда-то в прошлом.
Алгоритм KNN может распознать их для дальнейшего рассмотрения.
2. Предсказание отклика клиентов. Можно определить отклик
новых клиентов по данным из прошлого.
3. Медицина. Алгоритм может классифицировать пациентов по
разным показателям, основываясь на данных прошедших периодов.
4. Прочие задачи, требующие классификацию.
 Достоинства алгоритма KNN
1. Алгоритм устойчив к аномальным выбросам, так как вероятность попадания такой записи в число k-ближайших соседей мала.
Если же это произошло, то влияние на голосование (особенно взвешенное) (при k>2) также, скорее всего, будет незначительным, и,
следовательно, малым будет и влияние на итог классификации.
2. Программная реализация алгоритма относительно проста.
3. Результат работы алгоритма легко поддаётся интерпретации.
Экспертам в различных областях вполне понятна логика работы алгоритма, основанная на нахождении схожих объектов.
4. Возможность модификации алгоритма, путём использования
наиболее подходящих функций сочетания и метрик позволяет подстроить алгоритм под конкретную задачу.
 Недостатки алгоритма KNN
Алгоритм KNN обладает и рядом недостатков. Во-первых, набор данных, используемый для алгоритма, должен быть репрезентативным. Во-вторых, модель нельзя «отделить» от данных: для
66
классификации нового примера нужно использовать все примеры.
Эта особенность сильно ограничивает использование алгоритма
k-ближайших соседей.
2.4.4. Метод опорных векторов
Метод опорных векторов (англ. SVM, support vector machine) –
набор схожих алгоритмов обучения с учителем, использующихся
для задач классификации и регрессионного анализа. Принадлежит
семейству линейных классификаторов и может также рассматриваться как специальный случай регуляризации по Тихонову (алгоритм, позволяющий находить приближённое решение некорректно
поставленных операторных задач). Особым свойством метода опорных векторов является непрерывное уменьшение эмпирической
ошибки классификации и увеличение зазора, поэтому метод также
известен как метод классификатора с максимальным зазором.
Основная идея метода – перевод исходных векторов в пространство
более высокой размерности и поиск разделяющей гиперплоскости с
максимальным зазором в этом пространстве. Две параллельных гиперплоскости строятся по обеим сторонам гиперплоскости, разделяющей классы. Разделяющей гиперплоскостью будет гиперплоскость,
максимизирующая расстояние до двух параллельных гиперплоскостей. Алгоритм работает в предположении, что чем больше разница
или расстояние между этими параллельными гиперплоскостями,
тем меньше будет средняя ошибка классификатора.
Часто в алгоритмах машинного обучения возникает необходимость классифицировать данные. Каждый объект данных представляется как вектор (точка) в p-мерном пространстве (упорядоченный
набор p чисел). Каждая из этих точек принадлежит только одному
из двух классов. Вопрос состоит в том, можно ли разделить точки
гиперплоскостью размерности (p–1). Это – типичный случай линейной разделимости. Искомых гиперплоскостей может быть много,
поэтому полагают, что максимизация зазора между классами способствует более уверенной классификации. То есть, можно ли найти такую гиперплоскость, чтобы расстояние от неё до ближайшей
точки было максимальным. Это эквивалентно [40] тому, что сумма
расстояний до гиперплоскости от двух ближайших к ней точек, лежащих по разные стороны от нее, максимально. Если такая гиперплоскость существует, она называется оптимальной разделяющей
гиперплоскостью, а соответствующий ей линейный классификатор называется оптимально разделяющим классификатором.
67
 Линейный SVM
Решение задачи бинарной классификации при помощи метода
опорных векторов заключается в поиске некоторой линейной функции, которая правильно разделяет набор данных на два класса. Рассмотрим задачу классификации, где число классов равно двум.
Задачу можно сформулировать как поиск функции f(x), принимающей значения меньше нуля для векторов одного класса и
больше нуля – для векторов другого класса. В качестве исходных
данных для решения поставленной задачи, т. е. поиска классифицирующей функции f(x), дан тренировочный набор векторов пространства, для которых известна их принадлежность к одному из
классов. Семейство классифицирующих функций можно описать
через функцию f(x). Гиперплоскость определена вектором a и значением b, т. е. f ( x=
) ax + b. Решение данной задачи проиллюстрировано на рис. 2.2.
В результате решения задачи, т. е. построения SVM-модели, найдена функция, принимающая значения меньше нуля для векторов
одного класса и больше нуля – для векторов другого класса. Для
каждого нового объекта отрицательное или положительное значение определяет принадлежность объекта к одному из классов.
Наилучшей функцией классификации является функция, для
которой ожидаемый риск минимален. Понятие ожидаемого риска
в данном случае означает ожидаемый уровень ошибки классификации.
Напрямую оценить ожидаемый уровень ошибки построенной
модели невозможно, это можно сделать при помощи понятия эмпирического риска. Однако следует учитывать, что минимизация последнего не всегда приводит к минимизации ожидаемого риска. Это
Рис. 2.2. Линейный SVM
68
обстоятельство следует помнить при работе с относительно небольшими наборами тренировочных данных.
Эмпирический риск – уровень ошибки классификации на тренировочном наборе.
Таким образом, в результате решения задачи методом опорных
векторов для линейно разделяемых данных мы получаем функцию
классификации, которая минимизирует верхнюю оценку ожидаемого риска.
Одной из проблем, связанных с решением задач классификации
рассматриваемым методом, является то обстоятельство, что не всегда можно легко найти линейную границу между двумя классами.
В таких случаях один из вариантов – увеличение размерности,
т. е. перенос данных из плоскости в трехмерное пространство, где
возможно построить такую плоскость, которая идеально разделит
множество образцов на два класса. Опорными векторами в этом
случае будут служить объекты из обоих классов, являющиеся экстремальными.
Таким образом, при помощи добавления так называемого оператора ядра и дополнительных размерностей, находятся границы
между классами в виде гиперплоскостей.
Однако следует помнить: сложность построения SVM-модели заключается в том, что чем выше размерность пространства, тем сложнее с ним работать. Один из вариантов работы с данными высокой
размерности – это предварительное применение какого-либо метода
понижения размерности данных для выявления наиболее существенных компонент, а затем использование метода опорных векторов.
Как и любой другой метод, метод SVM имеет свои сильные и слабые стороны, которые следует учитывать при выборе данного метода.
Недостаток метода состоит в том, что для классификации используется не все множество образцов, а лишь их небольшая часть,
которая находится на границах.
Достоинство метода состоит в том, что для классификации методом опорных векторов, в отличие от большинства других методов,
достаточно небольшого набора данных. При правильной работе модели, построенной на тестовом множестве, вполне возможно применение данного метода на реальных данных.
Метод опорных векторов позволяет [41]:
– получить функцию классификации с минимальной верхней
оценкой ожидаемого риска (уровня ошибки классификации);
– использовать линейный классификатор для работы с нелинейно разделяемыми данными, сочетая простоту с эффективностью.
69
2.4.5. Метод байесовских сетей
Байесовская сеть (или байесова сеть, байесовская сеть доверия,
англ. Bayesian network, belief network) – графическая вероятностная модель, представляющая собой множество переменных и их вероятностных зависимостей.
Математический аппарат байесовых сетей создан американским
ученым Джудой Перлом, лауреатом Премии Тьюринга (2011 г.).
Формально, байесовская сеть – это направленный ациклический
граф, каждой вершине которого соответствует случайная переменная, а дуги графа кодируют отношения условной независимости
между этими переменными. Вершины могут представлять переменные любых типов, быть взвешенными параметрами, скрытыми
переменными или гипотезами.
В силу того, что байесовская сеть – это полная модель для переменных и их отношений, она может быть использована для того,
чтобы давать ответы на вероятностные вопросы. Это процесс вычисления апостериорного распределения переменных по переменным-свидетельствам называют вероятностным выводом. Это
следствие дает универсальную оценку для приложений, где нужно
выбрать значения подмножества переменных, которое минимизирует функцию потерь, например, вероятность ошибочного решения [42].
Байесовская сеть позволяет получить ответы на следующие
типы вероятностных запросов:
– нахождение вероятности свидетельства;
– определение априорных маргинальных вероятностей;
– определение апостериорных маргинальных вероятностей,
включая:
– прогнозирование, или прямой вывод, – определение вероятности события при наблюдаемых причинах,
– диагностирование, или обратный вывод (абдукция), – определение вероятности причины при наблюдаемых следствиях,
– межпричинный (смешанный) вывод (intercausal inference) или
трансдукция, – определение вероятности одной из причин наступившего события при условии наступления одной или нескольких
других причин этого события.
– вычисление наиболее вероятного объяснения наблюдаемого события (Most probable explanation, MPE);
– вычисление апостериорного максимума (Maximum a-posteriori,
MAP).
70
В основе байесовских сетей лежит теорема Байеса (формула перерасчета гипотез) теории вероятностей для определения апостериорных вероятностей попарно несовместных событий Bi по их априорным вероятностям:
 A
P   P ( Bi )
B 
 Bi 
P i  =
.
 A
 A
n
∑ i=1P  B  P ( Bi )
 i
Вероятности гипотезы называется апостериорной вероятностью
события после наблюдения A, тогда как – априорная вероятность.
Разрабатывая концептуальную модель предметной области, инженер может увидеть, что предметная область хорошо описывается в терминах событий, вероятностей событий, а также причинноследственных взаимосвязей между ними.
Например, в этих терминах может быть описана задача поиска причин неисправностей. Так – событие A может быть следствием каких-то
событий H. В терминах продукционной модели можно записать:
Если H, то A, т. е. если происходит событие H, то произойдет и
событие A.
Есть два события H, которые составляют полную группу событий и несовместны. Формула полной вероятности события A имеет
следующий вид:
A
 A 
=
P ( A ) P ( H ) P   + P ( ¬H ) P 
P ( ¬H ) 1,
, P ( H ) +=
H
 
 ¬H 
где P(H), P() – априорная вероятность событий H и соответственно; P( A / H), P ( A / ) – условные вероятности того, что в результате
H произойдет A или в результате произойдет A.
В задаче диагностики A уже произошло, и ищется причина –
произошло A по вине H или по какой-то иной причине.
Формула Байеса позволяет оценить апостериорные вероятности
причин, в рассматриваемом случае Н.
Если P ( H ) > P(), то более вероятной причиной считается событие H, в противном случае не H.
В конкретных задачах для экспертной системы можно определить больше причин, чем две. Формула Байеса для случая, когда
предполагается n несовместных событий, составляющих полную
группу:
71
 A 
P
 P ( Hi )
H 
 Hi 
.
P i  =
 A 
 A 
∑P  H  P ( Hi )
 i
В диагностической системе взаимосвязь между разными событиями может быть более сложная – многоуровневая (рис. 2.3).
Связи на рис. 2.3 означают, что событие есть результат возможных причин – E1 и E2, т. е.:
H 
H 
=
P ( H1 ) P ( E1 ) P  1  + P ( E2 ) P  1 .
E
 1
 E2 
Тогда диагностика причин происходит последовательно. Сначала вычисляются апостериорные вероятности причин события A:
 A 
P ( H1 ) P 

H 
H   E 
 H1 
P 1  =
 P  1  P  2 .
A




A
A


 A   H1 
P
 + P ( H2 ) P 

 H1 
 H2 
Обозначим P – далее по формуле Байеса находятся вероятности
и. В данном случае однозначной уверенности в возникновении нет,
т. е. событие-причина произошло с вероятностью р. Отсюда и вероятность того, что или стали причинами для A, вычисляется с учетом P:
 E  E 
 E1 
 E2 
 E2 
=
P  1  P  1  P=

 p, P 
 p.
 P
 A 
 H1   A 
 H1 
 H1 
Таким образом, вычисляя все вероятности событий – вершин на
графе и доходя до нижнего уровня, рассчитываются вероятности
всех возможных причин [43].
Существенным недостатком способа представления знаний на
основе формулы Байеса является то, что необходимо заложить в систему много информации об априорных и условных вероятностях.
Это трудоемко тем больше, чем более сложной является задача.
В этом случае еще более разнообразен граф связей в БЗ (см. рис. 2.3),
который может расти как за счет уровней, так и за счет числа событий на верхних уровнях.
72
A
H1
E1
H2
E2
F1
F2
Рис. 2.3. Граф связей между событием и его причинами
Значения априорных и условных вероятностей могут вычисляться на основе статистических сведений, или это могут быть экспертные оценки вероятностей. В последнем случае говорят о субъективной вероятности событий.
Помимо метода грубой силы (полного перебора) существует несколько подходов к построению алгоритмов. Наиболее значимые
можно условно разделить на три категории:
1. Упрощение модели. Эти методы пытаются упростить оригинальную модель. Тогда точные алгоритмы могут применяться эффективно в упрощенной сети для получения приближенного решения исходной задачи. Одни действия включают сокращение ребер
первоначальной сети, соответствующие слабой зависимости в модели. Другие упрощения включают снижение мощности узлов или
кликов. Также может быть включена установка параметров для
простой логистической функции, используя вариационные методы.
2. Основанные на поиске. Пытаются найти наиболее вероятные
частичные назначения с большой вероятностью совместного распределения вероятностей. Эти методы могут получить хорошую оценку сети практически при всех крайних условных вероятностях, т. е.
когда вероятность в узле очень близка к нулю или единице. Трудно
получить обоснованную точность при общей сети, которая не удовлетворяет этому условию.
3. Стохастической выборки (Монте-Карло алгоритмы). Они порождают случайно выбранные назначения сети в соответствии с вероятностями в модели, а затем вычисляют частоту назначений для
наблюдения, как приближение для задачи вывода. Выделяют сле73
дующие алгоритмы: алгоритмы формирования выборок с исключением, метод оценки выборок с учетом правдоподобия, алгоритм
МСМС (англ. Markov chain Monte Carlo) и др.
Остальные алгоритмы ориентированы на Байесовские сети доверия специфического вида, что серьёзно ограничивает область их
применения [44].
2.5. Свойства методов Data Mining
Различные методы Data Mining характеризуются определенными свойствами, которые могут быть определяющими при выборе
метода анализа данных. Методы можно сравнивать между собой,
оценивая характеристики их свойств.
Основные свойства и характеристики методов Data Mining: точность, масштабируемость, интерпретируемость, проверяемость, трудоемкость, гибкость, быстрота и популярность.
Масштабируемость – свойство вычислительной системы, которое обеспечивает предсказуемый рост системных характеристик,
например, быстроты реакции, общей производительности и пр.,
при добавлении к ней вычислительных ресурсов.
Таблица 2.2
Сравнительная характеристика методов Data Mining
Алгоритм
свойство
точность
масштабируемость
интерпретируемость
Методы
визуализации
Деревья
решений
высокая
высокая
низкая
низкая
низкая
низкая
высокая
низкая
низкая
высокая
высокая
пригоднизкая
ность к исп.
трудонейтральёмкость
ная
разнонизкая
сторонность
быстрота
низкая
популярность
74
k-ближайшего Линейная
соседа
регрессия
Нейронные сети
низкая
высокая
высокая
низкая
низкая
высокая/
нейтральная
нейтральная
высокая
высокая/
высокая/
нейтральная нейтральная
нейтраль- нейтральная высокая
ная
высокая нейтральная нейтральная
высокая
низкая
нейтральная
нейтральвысокая
высокая
ная
высокая
низкая
низкая
В табл. 2.2 приведена сравнительная характеристика некоторых
распространенных методов. Оценка каждой из характеристик проведена следующими категориями, в порядке возрастания: чрезвычайно низкая, очень низкая, низкая/нейтральная, нейтральная/низкая,
нейтральная, нейтральная/высокая, высокая, очень высокая.
Как видно из рассмотренной таблицы, каждый из методов имеет свои сильные и слабые стороны. Но, ни один метод, какой бы не
была его оценка с точки зрения присущих ему характеристик, не
может обеспечить решение всего спектра задач Data Mining.
2.6. Классификация методов Data Mining
2.6.1. Работа с данными
Все методы Data Mining можно разделить на две большие группы по принципу работы с исходными обучающими данными. В этой
классификации верхний уровень определяется на основании того,
сохраняются ли данные после Data Mining, либо они дистиллируются для последующего использования.
Непосредственное использование данных, или сохранение данных. В этом случае исходные данные хранятся в явном детализированном виде и непосредственно используются на стадиях прогностического моделирования и/или анализа исключений. Проблема
этой группы методов – при их использовании могут возникнуть
сложности анализа сверхбольших баз данных.
Методы группы:
– Кластерный анализ.
– Метод ближайшего соседа.
– Метод k-ближайшего соседа.
– Рассуждение по аналогии.
Выявление и использование формализованных закономерностей, или дистилляция шаблонов.
При технологии дистилляции шаблонов один образец (шаблон)
информации извлекается из исходных данных и преобразуется в
некие формальные конструкции, вид которых зависит от используемого метода Data Mining. Этот процесс выполняется на стадии свободного поиска, у первой же группы методов данная стадия в принципе отсутствует. На стадиях прогностического моделирования и
анализа исключений используются результаты стадии свободного
поиска, они значительно компактнее самих баз данных. Конструкции этих моделей могут быть трактуемыми аналитиком либо не
трактуемыми («черными ящиками»).
75
Методы группы:
– логические методы;
– нечёткие запросы и анализы;
– символьные правила;
– деревья решений;
– генетические алгоритмы;
– методы визуализации;
– методы кросс-табуляции;
– методы, основанные на уровнениях.
Логические методы, или методы логической индукции, включают: нечеткие запросы и анализы; символьные правила; деревья
решений; генетические алгоритмы.
Методы этой группы являются, пожалуй, наиболее интерпретируемыми – они оформляют найденные закономерности, в большинстве случаев, в достаточно прозрачном виде с точки зрения пользователя. Полученные правила могут включать непрерывные и дискретные переменные. Следует заметить, что деревья решений могут
быть легко преобразованы в наборы символьных правил путем генерации одного правила по пути от корня дерева до его терминальной
вершины. Деревья решений и правила фактически являются разными способами решения одной задачи и отличаются лишь по своим возможностям. Кроме того, реализация правил осуществляется
более медленными алгоритмами, чем индукция деревьев решений.
Методы кросс-табуляции: агенты, байесовские (доверительные)
сети, кросс-табличная визуализация.
Последний метод не совсем отвечает одному из свойств Data Mining – самостоятельному поиску закономерностей аналитической
системой. Однако предоставление информации в виде кросс-таблиц
обеспечивает реализацию основной задачи Data Mining – поиск шаблонов, поэтому этот метод можно также считать одним из методов
Data Mining.
Методы на основе уравнений. Методы этой группы выражают
выявленные закономерности в виде математических выражений –
уравнений. Следовательно, они могут работать лишь с численными
переменными, и переменные других типов должны быть закодированы соответствующим образом. Это несколько ограничивает применение методов данной группы, тем не менее, они широко используются при решении различных задач, особенно задач прогнозирования. Данная классификация разделяет все многообразие методов
Data Mining на две группы: статистические и кибернетические методы.
76
2.6.2. Подход к обучению математических моделей
Следует отметить, что существует два подхода отнесения статистических методов к Data Mining. Первый из них противопоставляет статистические методы и Data Mining, его сторонники считают
классические статистические методы отдельным направлением
анализа данных. Согласно второму подходу, статистические методы
анализа являются частью математического инструментария Data
Mining. Большинство авторитетных источников придерживается
второго подхода.
В этой классификации различают две группы методов:
1. Статистические методы, основанные на использовании усредненного накопленного опыта, который отражен в ретроспективных
данных,
2. Кибернетические методы, включающие множество разнородных математических подходов.
Недостаток такой классификации: и статистические, и кибернетические алгоритмы тем или иным образом опираются на сопоставление статистического опыта с результатами мониторинга текущей
ситуации. Преимуществом такой классификации является её удобство для интерпретации – она используется при описании математических средств современного подхода к извлечению знаний из
массивов исходных наблюдений (оперативных и ретроспективных),
т. е. в задачах Data Mining.
2.7. Статистические методы Data Mining
В эти методы представляют собой четыре взаимосвязанных раздела:
– предварительный анализ природы статистических данных
(проверка гипотез стационарности, нормальности, независимости,
однородности, оценка вида функции распределения, ее параметров
и т. п.);
– выявление связей и закономерностей (линейный и нелинейный
регрессионный анализ, корреляционный анализ и др.);
– многомерный статистический анализ (линейный и нелинейный дискриминантный анализ, кластерный анализ, компонентный
анализ, факторный анализ и др.);
– динамические модели и прогноз на основе временных рядов.
Арсенал статистических методов Data Mining классифицирован
на четыре группы методов:
– Дескриптивный анализ и описание исходных данных.
77
– Анализ связей (корреляционный и регрессионный анализ,
факторный анализ, дисперсионный анализ).
– Многомерный статистический анализ (компонентный анализ,
дискриминантный анализ, многомерный регрессионный анализ,
канонические корреляции и др.).
– Анализ временных рядов (динамические модели и прогнозирование).
2.8. Кибернетические методы Data Mining
Второе направление Data Mining – это множество подходов, объединенных идеей компьютерной математики и использования теории искусственного интеллекта.
Классификация методов Data Mining
Далее мы рассмотрим несколько известных классификаций методов Data Mining по различным признакам.
Классификация технологических методов Data Mining
Все методы Data Mining подразделяются на две большие группы по принципу работы с исходными обучающими данными. В этой
классификации верхний уровень определяется на основании того,
сохраняются ли данные после Data Mining, либо они дистиллируются для последующего использования.
1. Непосредственное использование данных, или сохранение
данных.
В этом случае исходные данные хранятся в явном детализированном виде и непосредственно используются на стадиях прогностического моделирования и/или анализа исключений.
Проблема этой группы методов – при их использовании могут
возникнуть сложности анализа сверхбольших баз данных.
Методы этой группы:
– кластерный анализ;
– метод ближайшего соседа;
– метод k-ближайшего соседа;
– рассуждение по аналогии.
2. Выявление и использование формализованных закономерностей, или дистилляция шаблонов.
Методы этой группы:
– логические методы;
– методы визуализации;
– методы кросс-табуляции;
– методы, основанные на уравнениях.
78
Логические методы, или методы логической индукции, включают:
– нечеткие запросы и анализы;
– символьные правила;
– деревья решений;
– генетические алгоритмы.
Методы этой группы являются, пожалуй, наиболее интерпретируемыми – они оформляют найденные закономерности, в большинстве случаев, в достаточно прозрачном виде с точки зрения пользователя. Полученные правила могут включать непрерывные и дискретные переменные.
Следует заметить, что деревья решений могут быть легко преобразованы в наборы символьных правил путем генерации одного
правила по пути от корня дерева до его терминальной вершины.
Деревья решений и правила фактически являются разными способами решения одной задачи и отличаются лишь по своим возможностям. Кроме того, реализация правил осуществляется более медленными алгоритмами, чем индукция деревьев решений.
Методы кросс-табуляции:
– агенты,
– баесовские (доверительные) сети,
– кросс-табличная визуализация.
Последний метод не совсем отвечает одному из свойств Data
Mining – самостоятельному поиску закономерностей аналитической системой. Однако, предоставление информации в виде кросстаблиц обеспечивает реализацию основной задачи Data Mining –
поиск шаблонов, поэтому этот метод можно также считать одним
из методов Data Mining [45].
Методы на основе уравнений.
Методы этой группы выражают выявленные закономерности
в виде математических выражений – уравнений. Следовательно,
они могут работать лишь с численными переменными, и переменные других типов должны быть закодированы соответствующим
образом. Это несколько ограничивает применение методов данной
группы, тем не менее они широко используются при решении различных задач, особенно задач прогнозирования.
Основные методы данной группы:
– статистические методы,
– нейронные сети.
Статистические методы наиболее часто применяются для решения задач прогнозирования. Существует множество методов стати79
стического анализа данных, среди них, например, корреляционнорегрессионный анализ, корреляция рядов динамики, выявление
тенденций динамических рядов, гармонический анализ.
2.9. Свойства методов Data Mining
Различные методы Data Mining характеризуются определенными свойствами, которые могут быть определяющими при выборе
метода анализа данных. Методы можно сравнивать между собой,
оценивая характеристики их свойств.
Среди основных свойств и характеристик методов Data Mining
рассмотрим следующие: точность, масштабируемость, интерпретируемость, проверяемость, трудоемкость, гибкость, быстрота и популярность.
Масштабируемость – свойство вычислительной системы, которое обеспечивает предсказуемый рост системных характеристик,
например, быстроты реакции, общей производительности и пр.,
при добавлении к ней вычислительных ресурсов.
В табл. 2.3 приведена сравнительная характеристика некоторых
распространенных методов [42]. Оценка каждой из характеристик
проведена следующими категориями, в порядке возрастания: чрезвычайно низкая, очень низкая, низкая/нейтральная, нейтральная/низкая, нейтральная, нейтральная/высокая, высокая, очень
высокая.
Как видно из рассмотренной таблицы, каждый из методов имеет свои сильные и слабые стороны. Но ни один метод, какой бы не
была его оценка с точки зрения присущих ему характеристик, не
может обеспечить решение всего спектра задач Data Mining.
Большинство инструментов Data Mining, предлагаемых сейчас
на рынке программного обеспечения, реализуют сразу несколько
методов, например, деревья решений, индукцию правил и визуализацию, или же нейронные сети, самоорганизующиеся карты Кохонена и визуализацию.
В универсальных прикладных статистических пакетах (например, SPSS, SAS, STATGRAPHICS, Statistica, др.) реализуется широкий спектр разнообразнейших методов (как статистических, так
и кибернетических). Следует учитывать, что для возможности их
использования, а также для интерпретации результатов работы статистических методов (корреляционного, регрессионного, факторного, дисперсионного анализа и др.) требуются специальные знания
в области статистики.
80
81
Точность
высокая
низкая
низкая
Пригодность
к использованию
высокая/
нейтральная
Интерпретируемость
Быстрота
нейтральная
низкая
нейтральная нейтраль- высокая
ная
Трудоемкость
Разносторонность
низкая
Популярность, широта использования
очень
низкая
низкая
высокая
высокая
очень
низкая
чрезвывысокая /
высокая
чайно нейтральная
низкая
деревья
низкая высокая высокая
высокая /
высокая
высокая высокая / высокая /
решений
нейтральная
нейтраль- нейтральная
ная
полиномиаль- высокая нейтраль- низкая
высокая / нейтральная / нейтраль- низкая / нейтральная
ные нейронная
нейтральная
низкая
ная
нейтральные сети
ная
k-ближайшего низкая
очень
высокая / нейтральная нейтральная / низкая Высокая
низкая
соседа
низкая нейтральнизкая
ная
Классические
нейвысокая
методы
тральная
(линейная
регрессия)
нейронные
высокая низкая
сети
методы
высокая
очень
визуализации
низкая
Алгоритм
Масштабируемость
Сравнительная характеристика методов Data Mining
Таблица 2.3
Универсальность того или иного инструмента часто накладывает определенные ограничения на его возможности. Преимуществом использования таких универсальных пакетов является возможность относительно легко сравнивать результаты построенных
моделей, полученные различными методами. Такая возможность
реализована, например, в пакете Statistica, где сравнение основано
на так называемой «конкурентной оценке моделей». Эта оценка состоит в применении различных моделей к одному и тому же набору
данных и последующем сравнении их характеристик для выбора
наилучшей из них.
82
3. ПРОГРАММНЫЙ КОМПЛЕКС RAPIDMINER
К концу XXI века объем информации превысит 4,22 йоттабайт
(или 4,22*1024байт). А объем интернет-трафика перешёл уже отметку в один зеттабайт и через пару лет составит несколько зеттабайт. Эту информацию необходимо обработать и представить в читаемый вид.
Существует множество компаний нуждающихся в системах аналитики. Однако, высокая стоимость и чрезмерная сложность такого
программного обеспечения в большинстве случаев вынуждает отказаться от идеи построения собственной аналитической системы
в пользу простого всем известного Microsoft Excel. Следует помнить
также о дополнительных расходах на обучение сотрудников, поддерживание дорогих систем хранения данных и т. д., и т. п. И тут
на помощь могут прийти OpenSource решения (программные продукты со свободной лицензией) – их не так много, но есть очень достойное ПО, одним из которых является RapidMiner.
RapidMiner – это мощная и многопользовательская платформа,
она служит для создания, передачи и обслуживания наукоемких
данных. Платформа RapidMiner предлагает больше функций, чем
любое другое визуальное решение, плюс она открыта и расширяема
для поддержки всех потребностей научных данных. Унифицированная платформа RapidMiner ускоряет создание полных аналитических рабочих процессов – от подготовки данных до моделирования до развертывания бизнеса – в единой среде, значительно повышая эффективность и сокращая время, необходимое для проектов в
области данных.
Профессиональная лицензия платная. В стандартной лицензии
AGPL доступно 10,000 колонок и ограничение в один логический
процесс.
 Хороший GUI. По сути, каждый функциональный блок собран в кубик. Ничего нового в подходе, но очень крутое исполнение. Обычно разница между классическим программированием и
визуальным сильно бьёт по функциональности. Например, в SPSS
Modeler всего 50 узлов, а тут целых 250 в базовой загрузке.
 Есть хорошие инструменты подготовки данных. Обычно предполагается, что данные готовятся где-то ещё, но тут уже есть готовый ETL (получение и трансформация). В том же коммерческом
SPSS возможностей для подготовки куда меньше.
 Расширяемость. Есть язык программирования R. Полностью
интегрированы операторы система WEKA.
83
 Дружит с Hadoop (отдельное платное расширение с незамысловатым названием Radoop), причём как с чистым, так и с коммерческими реализациями.
 Архитектурно данные снаружи. Ставим платформу, грузим
данные и начинаем смотреть, где какие корреляции, что можем
спрогнозировать. Это и плюс, и минус, почему – ниже.
 Кроме IDE есть ещё сервер. Rapid Miner Studio создаёт процессы, а на сервере их можно публиковать. Что-то типа Cron – сервер
знает, какой процесс когда запускать, с какой частой, что делать,
если где-то что-то отвалилось, кто отвечает за каждый из процессов, кому как отдавать ресурсы, куда выгружать результаты.
 А ещё сервер же умеет сразу строить минимальные отчёты.
Можно выгружать не в XLS, а рисовать графику прямо там. Это
нравится маркетингу маленьких проектов.
 Быстрое развитие. Только поднялся серьезный шум вокруг
Apache Spark – через месяц интегрировали.
Если сравнивать RapidMiner c другими программами, то у RM
гораздо шире функциональные возможности по обработке, банально больше узлов. С другой стороны, в IBM SPSS есть режимы «автопилота». Авто-модели (Auto Numeric, Auto Classifier) – перебирают несколько возможных моделей с разными параметрами, выбирают несколько лучших. Не сильно опытный аналитик может
построить на таком адекватную модель. Она почти наверняка будет уступать в точности построенным опытным специалистом, но
есть сам факт – можно построить модель ничего не понимая в этом.
В RM есть аналог (Loop and Deliver Best), но он все же требует хотя
бы выбрать модели и критерии выбора лучшего. Автоматическая
предобработка данных (Auto Data Prep) – другая известная фишка SPSS – иначе и чуть более муторно реализована в RapidMiner.
В SPSS сборка данных выполняется одним узлом Automated Data
Preparation, галочками проставляется, что нужно сделать с данными. В RapidMiner – собирается из атомарных узлов в произвольной
последовательности.
Если сравнивать с SAS. По возможностям «сделать что угодно»
RM выше, но, в конечном итоге, с помощью какой-то матери и некоторых усложнений можно получить тот же результат и в SAS. Но
здесь совершенно другой подход – придётся переучиваться, если вы
привыкли к SAS. Ещё SAS предоставляет множество вертикальных решений – банки, ритейл. Платформа разговаривает с пользователем на его бизнес-языке. RM более абстрактен, в нём придётся
самому формулировать, что есть что.
84
Процесс в RapidMiner представляет собой набор операторов, соединенных последовательно между собой. Есть операторы, которые
считывают данные из файла, есть операторы, которые производят
фильтр по определенным признакам, есть операторы, которые записывают результат в файл, и многие другие.
Оператор – это логическая единица, которая может производить
какое-то действие над данными. Оператор имеет вход и выход. На
входе поступают сырые данные, на выходе получаются обработанные данные. Все операторы доступны в левой колонке и отсортированы по функциональному признаку.
Еще одна интересная особенность RapidMiner от IBM SPSS и
SAS. В RapidMiner есть макросы – это параметры работы процесса,
которые можно использовать в любой его точке (т. е. они являются
глобальными переменными). Например, в качестве макроса можно
использовать имя файла, дату его создания, среднее значение какого-либо атрибута данных, наилучшую достигнутую точность, номер итерации, последнее время запуска процесса.
Место для хранения процессов RM. Может быть локальным, а
также удаленным (RapidMiner Server), для которого возможно исполнять процессы на стороне сервера, многопользовательский доступ к процессам/соединениям БД, запуск процессов по расписанию или отдача данных как веб-сервис.
Кроме Макроса во вкладке контекст присутствуют параметры
process input и process output.
Process input – данные подающиеся на вход. Может быть указан
путь откуда извлекаются данные.
Рrocess output – данные, которые передаются к следующему
процессу. Может быть указан путь для сохранения данных.
Программный комплекс RapidMiner, ранее известный как YALE
(ещё одна обучающая среда), разрабатывался с 2001 года Ральфом
Клинкенбергом, Ингом Мерсва и Саймоном Фишером в подразделении искусственного интеллекта Технического университета Дортмунда.
RapidMiner – инструмент, созданный для интеллектуального
анализа данных (data mining).
Основная идея RapidMiner состояла в том, чтобы аналитик не
должен программировать при выполнении своей работы. При этом,
как известно, для RapidMiner нужны данные, поэтому его снабдили достаточно хорошим набором операторов решающих большой
спектр задач получения и обработки информации из разнообразных
источников (базы данных, файлы и т. п.). Можно с уверенностью го85
ворить, что это ещё и полноценный инструмент для ETL (ETL – аббревиатура от Extract, Transform, Load. Это системы корпоративного класса, которые применяются, чтобы привести к одним справочникам и загрузить в DWH и EPM данные из нескольких разных
учётных систем).
DWH (Data warehouse) – хранилище данных очень большая
предметно-ориентированная информационная корпоративная база
данных, специально разработанная и предназначенная для подготовки отчётов, анализа бизнес-процессов с целью поддержки принятия решений в организации.
Управление эффективностью деятельности организации (английские термины CPM, BPM, EPM) – это набор управленческих процессов (планирования, организации выполнения, контроля и анализа).
3.1. Основные функции ETL-систем
ETL – аббревиатура от Extract, Transform, Load. Это системы
корпоративного класса, которые применяются, чтобы привести к
одним справочникам и загрузить в DWH и EPM данные из нескольких разных учетных систем.
Храни лище да нных (англ. Data Warehouse) – предметно-ориентированная информационнаябаза данных, специально разработанная и предназначенная для подготовки отчётов и бизнес-анализа с
целью поддержки принятия решений в организации.
Управление эффективностью деятельности организации (английские термины CPM, BPM, EPM) – это набор управленческих
процессов (планирования, организации выполнения, контроля и
анализа), которые позволяют бизнесу определить стратегические
цели и затем оценивать и управлять деятельностью по достижению
поставленных целей при оптимальном использовании имеющихся ресурсов. Это система управления, построенная на принципах
управления стоимостью бизнеса.
В литературе можно встретить несколько англоязычных терминов, означающих одно и то же:
– CPM (Corporate Performance Management).
– BPM (Business Performance Management).
– EPM (Enterprise Performance Management).
Следует заметить, что описание архитектуры отражает один из
возможных взглядов на работу с ETL-инструментами и понимание
«нормального» применения ETL – промежуточным слоем между
OLTP системами и OLAP системой или корпоративным хранилищем.
86
OLTP (англ. Online Transaction Processing), транзакционная система – обработка транзакций в реальном времени. Способ организации БД, при котором система работает с небольшими по размерам
транзакциями, но идущими большим потоком, и при этом клиенту
требуется от системы минимальное время отклика.
Термин OLTP применяют также к системам (приложениям).
OLTP-системы предназначены для ввода, структурированного хранения и обработки информации (операций, документов) в режиме
реального времени.
OLAP (англ. online analytical processing, интерактивная аналитическая обработка) – технология обработки данных, заключающаяся в подготовке суммарной (агрегированной) информации на
основе больших массивов данных, структурированных по многомерному принципу. Реализации технологии OLAP являются компонентами программных решений класса Business Intelligence[1].
Cуществуют ETL, который можно поставить между любыми системами. Однако, лучше интеграцию между учетными системами
решать связкой MDM и ESB.
Управление основными данными, управление мастер-данными[1] (англ. Master Data Management, MDM) – совокупность процессов и инструментов для постоянного определения и управления
основными данными компании (в том числе справочными). Можно
встретить и другое название – управление справочными данными
(англ. Reference Data Management, RDM)[1].
Мастер-данные – это данные с важнейшей для ведения бизнеса
информацией: о клиентах, продуктах, услугах, персонале, технологиях, материалах и так далее. Они относительно редко изменяются
и не являются транзакционными[1].
Сервисная шина предприятия (англ. enterprise service bus,
ESB) – связующее программное обеспечение, обеспечивающее централизованный и унифицированный событийно-ориентированный
обмен сообщениями между различными информационными системами на принципах сервис-ориентированной архитектуры.
Проблема, из-за которой в принципе родилась необходимость
использовать решения ETL, заключается в потребностях бизнеса в
получении достоверной отчетности из того разнообразия, которое
творится в данных любой ERP-системы.
Это неустойчивое разнообразие есть всегда, он бывает двух видов:
1. Как случайные ошибки, возникшие на уровне ввода, переноса
данных, или из-за багов (ошибок в программе или системе, из-за ко87
торых программа выдает неожиданное поведение и, как следствие,
результат.);
2. Как различия в справочниках и детализации данных между
смежными ИТ-системами.
Если первым видом бороться можно, то второй вид, по большей
части, не является ошибкой – контролируемые различия в структуре
данных, это нормальная оптимизация под цели конкретной системы.
Из-за этой особенности ETL-системы должны в идеале решать не
одну, а две задачи:
1. Привести все данные к единой системе значений и детализации, попутно обеспечив их качество и надежность;
2. Обеспечить аудиторский след при преобразовании (Transform)
данных, чтобы после преобразования можно было понять, из каких
именно исходных данных и сумм собралась каждая строчка преобразованных данных.
Помнить об этих двух задачах бывает очень полезно, особенно
если вы пишете ETL-процесс вручную, или делаете его с использованием фреймворков низкой готовности, в которых не задана готовая структура промежуточных таблиц.
Легко упустить вторую задачу и иметь много проблем с поиском
причин ошибок в трансформированных данных.
Все основные функции ETL системы умещаются в следующий
процесс:
В разрезе потока данных это несколько систем-источников (обычно OLTP) и система приемник (обычно OLAP), а также пять стадий
преобразования между ними (см. рисунок).
1. Процесс загрузки – задача этого этапа ввести (затянуть) в ETL
данные произвольного качества для дальнейшей обработки, на этом
этапе важно сверить суммы пришедших строк, если в исходной системе больше строк, чем в RawData (сырых, первичных данных), то
значит загрузка прошла с ошибкой;
2. Процесс валидации данных – на этом этапе данные последовательно проверяются на корректность и полноту, составляется отчет
об ошибках для исправления;
3. Процесс мэппинга (процесс преобразования данных и технического протокола передачи между исходящим и входящим интерфейсом) данных с целевой моделью – на этом этапе к валидированной таблице пристраивается еще n-столбцов по количеству справочников целевой модели данных, а потом по таблицам мэппингов
в каждой пристроенной ячейке, в каждой строке проставляются
значения целевых справочников. Значения могут проставляться
88
89
Рис. 3.1
как 1:1, так и *:1, так и 1:* и *:*, для настройки последних двух вариантов используют формулы и скрипты мэппинга, реализованные
в ETL-инструменте;
4. Процесс агрегации данных – этот процесс нужен из-за разности детализации данных в OLTP и OLAP системах. OLAP-системы –
это, по сути, полностью денормализованная таблица фактов и окружающие ее таблицы справочников (звездочка/снежинка), максимальная детализация сумм OLAP – это количество перестановок
всех элементов всех справочников. А OLTP система может содержать несколько сумм для одного и того же набора элементов справочников. Можно было бы избавляться OLTP-детализации еще на
входе в ETL, но тогда мы потеряли бы «аудиторский след». Этот след
нужен для построения Drill-down отчета, который показывает – из
каких строк OLTP, сформировалась сумма в ячейке OLAP-системы.
Поэтому сначала делается мэппинг на детализации OLTP, а потом
в отдельной таблице данные «схлопывают» для загрузки в OLAP;
5. Выгрузка в целевую систему – это технический процесс использования коннектора и передачи данных в целевую систему.
Реализация процессов 4 и 5 с точки зрения архитектуры тривиальна, все сложности имеют технический характер, а вот реализация процессов 1, 2 и 3 требует дополнительного пояснения.
При проектировании процесса загрузки данных необходимо
помнить о том что:
1. Надо учитывать требования бизнеса по длительности всего процесса. Например: Если данные должны быть загружены в течение
недели с момента готовности в исходных системах, и происходит 40
итераций загрузки до получения нормального качества, то длительность загрузки пакета не может быть больше 1-го часа. (При этом
если в среднем происходит не более 40 загрузок, то процесс загрузки
не может быть больше 30 минут, потому что в половине случаев
будет больше 40 итераций, ну или точнее надо считать вероятности.) Главное если вы не укладываетесь в свой расчет, то не надейтесь
на чудо – сносите и все, делать заново т.к. вы не впишитесь;
2. Данные могут загружаться набегающей волной – с последовательным обновлением данных одного и того же периода в будущем в течение нескольких последовательных периодов (например:
обновление прогноза окончания года каждый месяц). Поэтому кроме справочника «Период», должен быть предусмотрен технический
справочник «Период загрузки», который позволит изолировать процессы загрузки данных в разных периодах и не потерять историю
изменения цифр;
90
3. Данные имеют обыкновение быть перегружаемыми много раз,
и хорошо если будет технический справочник «Версия» как минимум с двумя элементами «Рабочая» и «Финальная», для отделения
вычищенных данных. Кроме-того создание персональных версий,
одной суммарной и одной финальной позволяет хорошо контролировать загрузку в несколько потоков;
4. Данные всегда содержат ошибки: Перезагружать весь пакет в
[50GB –> +8] это очень неэкономно по ресурсам и вы, скорее всего,
не впишитесь в регламент, следовательно, надо грамотно делить загружаемый пакет файлов и так проектировать систему, чтобы она
позволяла обновлять пакет по маленьким частям. По моему опыту
лучший способ – техническая аналитика «файл-источник», и интерфейс, который позволяет снести все данные только из одного
файла, и вставить вместо него обновленные. А сам пакет разумно
делить на файлы по количеству исполнителей, ответственных за их
заполнение (либо админы систем готовящие выгрузки, либо пользователи заполняющие вручную);
5. При проектировании разделения пакета на части надо еще
учитывать возможность так-называемого «обогащения» данных
(например: когда 12 января считают налоги прошлого года по
правилам управленческого учета, а в марте-апреле перегружают
суммы на посчитанные по бухгалтерскому), это решается с одной
стороны правильным проектированием деления пакета данных на
части так, чтобы для обогащения надо было перегрузить целое количество файлов (не 2,345 файла), а с другой стороны введением еще
одного технического справочника с периодами обогащения, чтобы
не потерять историю изменений по этим причинам).
Процесс валидации отвечает за выявление ошибок и пробелов в
данных, переданных в ETL.
Само программирование или настройка формул проверки не вызывает вопросов, главный вопрос – как вычислить возможные виды
ошибок в данных, и по каким признакам их идентифицировать?
Возможные виды ошибок в данных зависят от того какого рода
шкалы применимы для этих данных.
Проверки на ошибки реализуются либо формулами, либо скриптами в редакторе конкретного ETL-инструмента.
Большая часть ваших валидаций будет на соответствие справочников, а это [select * from a where a.field not in (select…)].
При этом для сохранения аудиторского следа разумно сохранять
в системе две отдельные таблицы – rawdata и cleandata с поддержкой связи 1:1 между строками.
91
Рис. 3.2
Процесс мэппинга так же реализуется с помощью соответствующих формул и скриптов, есть три хороших правила при его проектировании:
1. Таблица замэпленных данных должна включать одновременно два набора полей – старых и новых аналитик, чтобы можно был
сделать select по исходным аналитикам и посмотреть, какие целевые аналитики им присвоены, и наоборот (см. рисунок).
2. Таблица замэпленных элементов должна иметь отдельное PKполе, чтобы при связи 1:* и *:* можно было создать много строк в
MappedData для одной строки в CleanData и сохранить аудиторский
след.
3. Таблица MappedData должна быть отдельной от CleanData по
тем же причинам что и пункт 2.
3.2. Развитие пакета RapidMiner
Помимо программного комплекса RapidMiner существует серверное программное обеспечение RapidMinerServer (ранее назывался RapidAnalytics, до версии 6), которое может использоваться для создания репозитория хранения и выполнения процессов
RapidMiner (в том числе по расписанию), выявления связей источников данных между пользователями, отдавать данные из процессов RapidMiner как веб-сервис.
Начиная с шестой версии создатели RapidMiner решили начать
зарабатывать на продажах этого ПО и сменили лицензию с AGPL
на BusinessSource. Тем не менее, все предыдущие версии (5 и ниже)
92
по-прежнему имеют лицензию AGPL и мы можем её использовать
свободно и без ограничений. Поэтому будет рассмотрена именно пятая версия. Отметим, что в шестой и седьмой версиях не так много
новых операторов и функций (пожалуй, самое интересное это поддержка облака), и для решения большинства задач достаточно возможностей версии RapidMiner 5 Community.
RapidMiner (прежнее название YALE) – среда для проведения
экспериментов и решения задач машинного обучения и интеллектуального анализа данных. Эксперименты описываются в виде суперпозиций произвольного числа произвольным образом вложенных
операторов, и легко строятся средствами визуального графического
интерфейса RapidMiner-а.
RapidMiner – среда предикативной аналитики, которая может
быть использована в различных областях деятельности, начиная
от фондового рынка, заканчивая строительной индустрией. Цель
программной среды – построение моделей, направленных на прогнозирование.
RapidMiner может работать и как отдельное приложение, и как
«интеллектуальный движок», встраиваемый в другие приложения,
включая коммерческие. Приложениями RapidMiner-а могут быть
как исследовательские (модельные), так и прикладные (реальные)
задачи интеллектуального анализа данных, включая анализ текста
(textmining), анализ мультимедиа (multimediamining), анализ потоков данных (datastreammining).
На базе RapidMiner начинают развиваться и другие проекты.
К примеру, Radoop – платформа для работы с большими данными
(bigdata) на базе RapidMiner и hadoop.
Существует
возможность
бесплатного
использования
RapidMiner. В 5-й версии – без ограничений. В бесплатной 6-й версии существенным ограничением является отсутствие возможности
работы с базами данных. Для использования этих возможностей
придётся покупать лицензию. Самая последняя версия RapidMiner
7.3.000 (на ноябрь 2016 г.).
3.3. Главные конкурентные преимущества
RapidMiner
Главными конкурентными преимуществом RapidMiner являются:
– рафический интерфейс (нет необходимости разбираться с программным кодом для реализации своих задач);
93
– RapidMiner предоставляет более 400 операторов для всех наиболее известных методов машинного обучения, включая ввод и вывод, предварительную обработку данных и визуализацию;
– имеется встроенный язык сценариев, позволяющий выполнять массивные серии экспериментов;
– концепция многоуровневого представления данных (multilayereddataview) обеспечивает эффективную и прозрачную работу с
данными;
– графическая подсистема обеспечивает многомерную визуализацию данных и моделей.
Возможности среды RapidMiner. Все задачи, связанные с хранением данных, моделей и результатов анализа, в RapidMiner решаются при помощи единого репозитория. Репозиторий – это хранилище данных, создаваемое на диске средой и содержащее в себе все
данные и процессы. Использование репозитория даёт пользователю
целый ряд преимуществ:
– данные, процессы, результаты и отчеты размещены и упорядочены;
– открытие или загрузка файлов не требует дальнейшей настройки;
– входные, выходные данные, промежуточные результаты сопровождаются метаинформацией, обеспечивая связность и целостность данных и облегчая разработку процесса на начальном этапе;
– репозиторий может размещаться на кластерной файловой системе или на удаленном сервере RapidMiner (RapidAnalytics).
RapidMiner – инструмент, созданный для интеллектуального анализа данных, с основной идеей, что RapidMiner (аналитик) не должен
быть обременён программированием при выполнении своей работы.
При этом, как известно, для RapidMiner нужны данные, поэтому его
снабдили достаточно хорошим набором операторов решающих большой спектр задач получения и обработки информации из разнообразных источников (базы данных, файлы и т. п.), и можно с уверенностью говорить, что это ещё и полноценный инструмент для ETL.
RapidMiner это программная платформа, разработанная как интегрированная среда для машинного обучения, интеллектуального
анализа данных, анализ текста, прогнозного анализа и бизнес-аналитики.
Пакет используется для деловых и коммерческих приложений, а
также для научных исследований, образования, профессиональной
подготовки, быстрого прототипирования и разработки приложений
и поддерживает все этапы процесса интеллектуального анализа
94
данных, включая подготовку данных, результатов визуализации,
проверки и оптимизации.
RapidMiner разработан на открытой базовой модели. RapidMiner
(бесплатно) BasicEdition ограничен одним логическим процессором
и 10000 строками данных в соответствии с лицензией AGPL. Коммерческая цена начинается от $ 2500 и определяется разработчиком. RapidMiner использует клиент / сервер модель с сервером и
предлагается как программное обеспечение как услуги или облачной инфраструктуры.
Согласно BloorResearch, RapidMiner обеспечивает 99% продвинутого аналитического решения с помощью структур на основе
шаблонов, что позволяет увеличить скорость доставки и сократить
количество ошибок, почти исключая необходимость написания
кода. RapidMiner обеспечивает интеллектуальный анализ данных
и машинное обучение процедур, включая: загрузку данных и преобразование (извлечение, преобразование, загрузка (ETL), первичной обработки и визуализации данных, прогнозного анализа и статистического моделирования, оценки и развертывания.
RapidMiner написан на языке программирования Java. RapidMiner
предоставляет графический интерфейс для разработки и выполнения
аналитических рабочих процессов. Эти рабочие процессы называются
«Процессы» в RapidMiner и они состоят из нескольких «операторов».
Каждый оператор выполняет одну задачу в процессе, а выход каждого
оператора образует вход следующего. В качестве альтернативы, двигатель может быть вызван из других программ, или использовать в
качестве API. Отдельные функции могут быть вызваны из командной строки. RapidMiner обеспечивает изучение схем, моделей и алгоритмов и может быть расширен с помощью R и Python скриптов.
Функциональность RapidMiner может быть расширена с помощью дополнительных плагинов, которые доступны через RapidMinerMarketplace. RapidMinerMarketplace предоставляет платформу для разработчиков для создания алгоритмов анализа данных, а
также публиковать их в сообществе.
Порядок установки версии RapidMiner со свободной лицензией
описан в приложении.
3.4. Экранная форма стартовой страницы RapidMiner
После установки и запуска пакета RapidMiner пользователю открывается экранная форма стартовой страницы. Ниже перечислены основные меню и окна, представленные в RapidMiner (рис. 3.3).
95
96
Рис. 3.3. Экранная форма стартовой страницы
Цифрами означены окна и управляющие элементы стартовой
страницы пакета RAPIDMINER:
1. Пункт меню «файл».
2. Пункт меню «вставка».
3. Пункт меню «процессы».
4. Пункт меню «инструменты».
5. Пункт меню «вид».
6. Пункт меню «помощь».
7. Отмена и возврат действия.
8. Запуск процесса.
9. Кнопка приостановления процесса.
10. Кнопка остановки процесса.
11. Кнопка перехода на рабочий лист создания процесса.
12. Кнопка перехода на рабочий лист результатов процесса.
13. Кнопка перехода на приветственную страницу RapidMiner.
14. Рабочее поле для создания процесса или модели.
15. Кнопка для создания нового репозитория или загрузки уже
созданного процесса.
16. Созданные папки для хранения данных (Data) и моделей,
процессов (Proc) в репозитории (Practic_1).
17. Кнопка для импорта данных.
18. Панель репозитория.
19. Панель операторов.
20. Панель параметры (меню будет видоизменятся в зависимости
от активного элемента).
21. Панель конфликтов. В нем будет появляться информация о
возникших проблемах при выполнении процесса.
22. Журнал загрузок.
23. Узел входа данных (начало процесса).
24. Узел выхода данных (завершение процесса).
25. Меню комментариев.
26. Меню помощи.
97
4. СИНТАКСИС И СЕМАНТИКА
ЯЗЫКА RAPIDMINER
В данной работе метаязык форм Бэкуса-Наура применён для
описания языка программного пакета RapidMiner.
Метаязык, предложенный Бэкусом и Науром, впервые использовался для описания синтаксиса реального языка программирования Алгол 60. Наряду с новыми обозначениями метасимволов, в
нём использовались содержательные обозначения нетерминальных
символов. Это сделало описание языка нагляднее и позволило в
дальнейшем широко использовать данную нотацию для описания
реальных языков программирования.
В формах Бэкуса-Наура (БНФ) использованы следующие обозначения:
– символ «::=» отделяет левую часть правила от правой;
– нетерминалы обозначаются произвольной символьной строкой, заключенной в угловые скобки «<» и «>»;
– терминалы – это символы, используемые в описываемом языке
(в нашей нотации выделяются подчёркиванием);
– каждое правило определяет порождение нескольких альтернативных цепочек, отделяемых друг от друга символом вертикальной
черты «|».
Пример описания идентификатора с использованием БНФ:
<буква>:: = А|В|С|D|E|F|G|H|I|J|K|L|M|N|O|P|Q|R|S|T|U|V|
W|X|Y|Z|a|b|c|d|e|f|g|h|i|j|k|l|m|n|o|p|q|r|s|t|u|v|w|x|y|z
<цифра>:: = 0|1|2|3|4|5|6|7|8|9
<идентификатор>::= <буква> | <идентификатор><буква>
|<идентификатор><цифра>
Правила можно задавать и раздельно:
<идентификатор>:: = <буква>
<идентификатор>:: = <идентификатор><буква>
<идентификатор><идентификатор><цифра>
Например, грамматику целых чисел без знака можно записать
в виде:
<число>:: =<цифра> | <цифра><число>
<цифра>:: =0 | 1 | 2 | 3 | 4 | 5 | 6 | 7 | 8 | 9
4.1. Главное меню RAPIDMINER
На рис. 4.1 представлено главное меню программного пакета
RAPIDMINER и перевод соответствующих операторов.
98
Управление процессом (37)
Программа (52)
Доступ к хранилищу (6)
Импорт (27)
Экспорт (18)
Преобразование данных (110)
Моделирование (118)
Оценка (29)
Рис. 4.1. Операторы главного меню RapidMiner
Рассмотрим семантику классов операторов главного меню:
ProcessControl (Управление процессом) – управление технологическими процессами: операторы, такие как циклы и условные ветвления, которые могут контролировать протекание процесса.
Utility: Вспомогательные операторы, которые, наряду с оператором «подпроцесса» для группы – в подпроцессов, также содержат
важные макро-операторы, а также операторы для регистрации.
Repository Access: Содержит операторы для чтения и записи в
хранилища.
Import: Содержит большое количество операторов, чтобы считывать данные и объекты из внешних форматов, таких как файлы,
базы данных и т. д.
Export: Содержит большое количество операторов для записи
данных и объектов во внешние форматы, такие как файлы, базы
данных и т. д.
Data Transformation: Наиболее важная группа операторов для
предварительной обработки данных с точки зрения размерности и
значимости. Операторы преобразования данных и мета-данных.
Modeling: Содержит операторы для реального процесса интеллектуального анализа данных, реализующие методы классификации, методы регрессии, кластеризации, взвешивания, методы правил ассоциации, методы корреляции и анализа подобия, а также
операторы для применения сгенерированных моделей к новым наборам данных.
Evaluation: Содержит операторы, которые позволяют оценить
качество модели и выполнять перекрестные проверки, самонастройки и т. д.
99
5. ОПИСАНИЕ ОПЕРАТОРОВ ЯЗЫКА RAPIDMINER
5.1. Синтаксис главного меню языка RAPIDMINER
<Аксиома языкаRAPIDMINER>:: = <Управление процессом> |
<Программа> |
<Доступ к хранилищу> |
<Импорт> |
<Экспорт> |
<Преобразование данных> |
<Моделирование> |
<Оценка>
Семантика синтаксических категорий главного меню рассмотрена в п 4.1.
5.2. Синтаксическая категория <Управление процессом>
5.2.1. Синтаксис фрагмента языка
<Управление процессом>
Синтаксическая категория языка RAPIDMINER<Управление
процессом> содержит 37 операторов – терминальных символов.
Схема выбора операторов приведена на рис. 5.1.
Рис. 5.1. Меню <Управление процессом >
100
<Управление процессом>:: =
<Параметры> |
<Циклы> |
<Ветвление> |
<Коллекции> |
Сохранение |
Вызовы |
Копирование |
Возврат первого непустого входа |
Обработка исключений |
Пропуск исключений
Рис. 5.2. Синтаксическая категория
<Параметры>
<Параметры>:: =
Установка параметров |
Копирование параметров |
Оптимизация параметров (Сетка) |
Оптимизация параметров (Квадратичное) |
Оптимизация параметров (Эволюционный)
101
Рис. 5.3. Синтаксическая категория<Циклы >
<Циклы>:: =
102
Цикл|
Цикл по атрибутам|
Цикл по меткам|
Цикл по подмножествам атрибутов|
Цикл по значениям|
Цикл по примерам|
Цикл по кластерам |
Цикл по партиям |
Цикл по наборам данных |
Цикл по части данных |
Создание кривой обучения |
Цикл и среднее |
Цикл и доставить лучшее |
Цикл до |
Цикл по параметрам |
Цикл по файлам |
Цикл по файлам хранилища |
Цикл по zip-архивам записей |
X-прогнозирование.
Рис. 5.4. Синтаксическая категория<Ветвление >
<Ветвление>::=
Ветвление |
Выбрать подпроцесс
<Коллекции>::= Собрать |
Выбрать |
Цикл по коллекции |
Среднее |
Коллекция сглаживания
103
5.2.2. Семантика операторов
<Управление процессом>
– Remember (Сохранение). Этот оператор может использоваться
для хранения входного объекта в процесс под указанным именем.
Позже объект может быть восстановлен ссылкой на это имя.
– Recall (Вызовы). Этот оператор извлекает указанный объект из
хранилища объектов процесса. Объекты могут храниться в хранилище объектов с помощью оператора Remember.
– Multiply (Копирование). Этот оператор возвращает указанный
объект из хранилища объектов процесса. Объекты могут храниться
в хранилище объектов оператором uThis. Оператор копирует свой
входной объект на все подключенные выходные порты. Он не изменяет входной объект. Оператор Multiply копирует объекты на входном порту в выходные порты несколько раз. По мере подключения
большего количества портов создается больше копий, будет сгенерировано большее число копий.
– JoinPaths (Соединение путей/Возврат первого непустого входа). Этот оператор доставляет первый ненулевой входной сигнал к
его выходу. Оператор может иметь несколько входов, но он имеет
только один выход. Этот оператор возвращает первое непустое значение из входных данных, которые он получает. Этот оператор может быть полезен, если некоторые части процесса подвержены риску получения нулевых результатов, которые могут остановить весь
процесс. В таком случае оператор используется, чтобы отфильтровать эту возможность.
– HandleException (Обработка исключений). Это вложенный оператор, который используется для обработки исключений. Этот оператор выполняет операторы в своем подпроцессе «try» и возвращает
результаты, если нет ошибки. Если в подпроцессе «try» произошла
ошибка, то вместо этого выполняется подпроцесс «catch» и возвращаются его результаты.
– ThrowException (Генерация исключения). Этот оператор обрабатывает исключения при каждом его исполнении с генерацией
пользовательского сообщения.
– Семантика операторов синтаксической категории <Параметры>
– Set Parameters (Установка параметров). Этот оператор применяет набор параметров к указанным операторам и в основном
используется для использования оптимального набора параметров
одного оператора к другому аналогичному оператору. В качестве источника набора параметров могут использоваться такие операторы,
104
как Optimize Parameters (Grid) (Оптимизация параметров (Сетка))
или Read Parameters (Параметры чтения).
– Clone Parameters (Копирование параметров). Этот оператор
копирует значения параметров указанных параметров источника в
значения параметров указанных целевых параметров. Этот оператор является более общей формой оператора Set Parameters (Установка Параметров). Этот оператор в основном используется для применения оптимального набора параметров одного оператора к другому аналогичному оператору.
– Optimize Parameters (Grid) (Этот оператор Оптимизация параметров (Сетка)). Этот оператор находит оптимальные значения
выбранных параметров операторов в своем подпроцессе. Оператор
Оптимизация параметров (Сетка) содержит подпроцесс и выполняет его для всех комбинаций выбранных значений параметров, а
затем передает оптимальные значения параметров через порт параметров. Вектор эффективности для оптимальных значений параметров подается через порт производительности.
– Optimize Parameters (Quadratic) (Оптимизация параметров
(Квадратичный)). Этот оператор находит оптимальные значения параметров с использованием модели квадратичного взаимодействия.
Параметрами параметров являются список пар значений ключа, в
которых ключи имеют имя OperatorName.parameter_name, а значение представляет собой список значений, разделенных запятыми.
Оператор возвращает оптимальный параметр ParameterSet, который также можно записать в файл с помощью ParameterSetLoader.
– Optimize Parameters (Evolutionary) (Оптимизировать параметры (Эволюционный)). Этот оператор находит оптимальные значения выбранных параметров операторов в своем подпроцессе. Он использует эволюционный подход к вычислению и находит оптимальные значения для набора параметров с использованием эволюционного подхода, который часто более уместен, и приводит к лучшим
результатам. Это вложенный оператор, то есть он имеет подпроцесс.
Он выполняет свой подпроцесс несколько раз, чтобы найти оптимальные значения для указанных параметров.
Семантика операторов синтаксической категории <Циклы>
– Loop (Цикл). Этот оператор выполняет повтор своего подпроцесса определенное число раз. Подпроцесс может использовать макрос (счетчик), который увеличивается после каждого повторения
(итерации). Подпроцессы оператора цикла выполняет n число раз,
где n – значение параметра итераций. Чтобы избежать выполнения
цикла в течение очень длительного периода времени, параметр пре105
дельного времени может использоваться для определения интервала тайм-аута. Цикл останавливает выполнение, как только будет
завершен интервал ожидания (если процесс еще не завершен).
– Loop Attributes (Цикл по атрибутам). Этот оператор выбирает
подмножество (один или несколько атрибутов) набора входных примеров и выполняет итерацию по своему подпроцессу для всех выбранных атрибутов. Подпроцесс может получить доступ к атрибуту
текущей итерации макросом.
– Loop Labels (Цикл по меткам). Этот оператор делает итерации
по подпроцессам для каждого атрибута по метке в обучающей выборке. Оператор является вложенным оператором, т. е. он имеет
подпроцесс. Подпроцесс оператора выполняет n число раз, где n –
количество атрибутов-меток в данной обучающей выборке. Важно
отметить, что одна из обучающей выборки не может иметь более одного атрибута с типа метка. Фокус состоит в том, что этот оператор
выполняется для каждого атрибута, имя которого начинается со
строки «Label». Таким образом, если в примере имеется атрибуты с
меткой роли, Label 2 и Label 3, то подпроцесс этого оператора будет
выполняться три раза.
– Loop Attribute Subsets (Цикл по подмножеству атрибутов).
Этот оператор повторяет подпроцесс для всех возможных комбинаций регулярных атрибутов в составе примера ввода. При необходимости, минимальное и максимальное число атрибутов в комбинации может быть задано пользователем. Подпроцесс оператора
подмножества атрибутов цикла исполняет n число раз, где n – количество возможных комбинаций регулярных атрибутов в данном
наборе примеров. Пользователь может задать минимальное и максимальное число атрибутов в комбинации с помощью соответствующих параметров; в этом случае значение n изменится соответствующим образом.
– Loop Values (Цикл по значениям). Этот оператор выполняет итерацию подпроцесса для всех возможных значений выбранного атрибута. Подпроцесс может получить доступ к значению атрибута текущей итерации с помощью макроса. Оператора цикла имеет параметр,
называемым атрибутом, что позволяет выбрать обязательный атрибут входной обучающей выборки. Как только атрибут выбранного
оператора цикла по значениям относится его подпроцесса для каждого из возможных значений атрибута, т. е. подпроцесс выполняется N
раз, где N-число возможных значений выбранного атрибута. Во всех
итерациях значение атрибута текущей итерации можно получить с
помощью макроса, указанного в параметре макроса итерации.
106
– Loop Examples (Цикл по примерам). Этот оператор выполняет
итерацию над своим подпроцессом для всех примеров. Подпроцесс
может получить доступ к индексу примера текущей итерации с помощью макроса.
– Loop Clusters (Цикл по кластерам). Этот оператор выполняет
итерацию подпроцесса для каждого кластера во входе ExampleSet.
В каждой итерации подпроцесс получает примеры, относящиеся к
кластеру этой итерации. Цикл по кластерам является составным
оператором, т. е. он имеет подпроцесса. Подпроцесс цикла по кластерам выполняется N раз, где N-число кластеров во входящей выборке. Она обязательно должна иметь атрибут кластера.
– Loop Batches (Цикл по партиям/пакетам). Этот оператор создает пакеты (партии) из входных данных и выполняет подпроцесс на
каждом из этих пакетов. Это может быть полезно для применения
операторов к очень большим наборам данных, которые находятся в
базе данных. Этот оператор группирует примеры входных данных в
партии указанного размера и выполняет внутренние операторы на
всех партиях впоследствии. Это может быть полезно для очень больших наборов данных, которые не могут быть загружены в память и
должны обрабатываться в базе данных.
– Loop Data Sets (Цикл по наборам данных). Этот оператор выполняет итерацию над своим подпроцессом для каждой обучающей
выборки, заданной во входных портах.
Подпроцесс данных оператор устанавливает цикл выполняется
N раз, где N-число обучающих выборок, предоставленных в качестве входных данных для данного оператора. Этот оператор может
использоваться для последовательного выполнения процесса в ряде
различных наборов данных.
Loop Data Fractions (Цикл по части данных). Использует только
часть данных для применения внутреннего оператора к нему. Этот оператор работает аналогично оператору Создания кривой обучения. В отличие от названного, он просто разбивает обучающую выборку на части по параметру «fractions» и изучает модель только на подмножестве.
– Create Learning Curve (Создание кривой обучения). Интегрирует свой внутренний оператор для увеличения количества образцов и собирает получившиеся.
– Loop and average (Цикл и среднее). Этот оператор выполняет
итерацию над своим подпроцессом указанное количество раз и обеспечивает среднее из внутренних результатов.
– Loop and deliver best (Цикл и доставка лучшего). Этот оператор выполняет итерацию над своим подпроцессом указанное коли107
чество раз и обеспечивает результаты итерации, которая имеет лучшую производительность.
– Loop until (Цикл до). Выполняет свои внутренние операторы до
тех пор, пока не будет выполнено какое-либо условие.
– Loop Parameters (Цикл по параметрам). Этот оператор выполняет итерацию над своим подпроцессом для всех определенных
комбинаций параметров. Комбинации параметров могут быть заданы мастером, указанным в параметрах.
– Loop Files (Цикл по файлам). Этот оператор выполняет итерацию над своим подпроцессом для всех файлов в указанном каталоге
и доставляет имена файлов, пути и пути их родителей в качестве
макроса внутренним операторам.
– Loop Repository (Цикл по файлам хранилища). Этот оператор
выполняет итерацию по всем объектам ввода-вывода или файлам
больших двоичных объектов в репозитории и передает их пути и
имена в виде макроса внутренним операторам.
– Loop Zip-File Entries (Цикл по zip-архивам записей). Этот оператор перебирает записи zip-файла.
– X-Prediction (X-Прогнозирование). Этот оператор работает как
оператор х-проверки, но он возвращает меченый ExampleSet вместо
векторного представления.
Семантика операторов синтаксической категории <Ветвление>
– Branch (Ветвление). Этот оператор состоит из двух подпроцессов, но выполняет только один подпроцесс в зависимости от условия. Этот оператор аналогичен оператору если-тогда-иначе, где один
из двух вариантов выбирается в зависимости от результатов указанного условия. Важно иметь понимание субпроцессов, чтобы эффективно использовать этот оператор.
– Select Subprocess (Ветвление подпроцессов). Этот оператор
состоит из нескольких подпроцессов, но одновременно выполняет только один подпроцесс. Этот оператор аналогичен коммутатору, где существует множество опций, но одновременно выбирается
только одна из них. Важно иметь хорошее понимание субпроцессов,
чтобы эффективно использовать этот оператор.
Семантика операторов синтаксической категории <Коллекции>
– Collect (Собрать). Этот оператор объединяет несколько входных объектов в одну коллекцию.
– Select (Выбрать). Этот оператор возвращает указанный единственный объект из данной коллекции объектов.
– Loop collection (Цикл по коллекции). Этот оператор выполняет
итерацию по коллекции объектов. Это вложенный оператор и его
108
подпроцесс выполняется один раз для каждого объекта данной коллекции.
– Average (Среднее). Построение среднего значения входных
средних векторов (например, производительности) того же типа. Собирает все средние векторы (например, PerformanceVectors) из входных данных и усредняет их, если они одного типа.
– FlattenCollection (Коллекция сглаживания). Этот оператор получает «коллекцию коллекций» и объединяет весь контент в единую коллекцию.
5.2.3. Примеры применения операторов
<Управление процессом>
Пример 1. Ветвление (Branch).
Рис. 5.5. Схема процесса
Рис. 5.6. Оператор Ветвления
109
Набор данных «Гольф» загружается с помощью оператора Retrieve. На нем применяется оператор модели по умолчанию. Полученная модель применяется к набору данных «Golf-Testset» с помощью
оператора Apply Model. Производительность этой модели измеряется оператором Performance. Здесь устанавливается точка останова,
чтобы вы могли посмотреть на этот вектор производительности. Вы
можете видеть, что его точность составляет 64,29%. Он предоставляется в порт состояния оператора филиала. Таким образом, условие,
указанное в параметрах оператора Branch, будет проверено на этом
векторе производительности. Набор данных «Гольф» также предоставляется оператору Branch (через первый входной порт).
Теперь рассмотрим подпроцессы оператора Branch. Подпроцесс
«Then» просто подключает порт состояния к входному порту без
применения какого-либо оператора. Таким образом, если условие,
указанное в параметрах, истинно, объект условия, то есть вектор
эффективности, будет передан оператором Branch. Подпроцесс
«Else» применяет оператор K-NN к объекту на первом входном порту, то есть в наборе данных «Golf».
Теперь рассмотрим параметры оператора Branch. Параметр типа
условия установлен на «минимальное значение производительности», а параметр значения условия установлен равным 70. Таким
образом, если производительность вектора производительности
больше 70, условие будет истинным.
Результат работы процесса (рис. 5.7).
Таким образом, выполняется условие Else.
Пример 2. Ветвление подпроцессов (Select Subprocess) (рис. 5.8–5.9).
Набор данных «Гольф» загружается с помощью оператора Retrieve. На него применяется оператор Select Subprocess. Дважды
щелкните оператор Select Subprocess, чтобы просмотреть подпроцессы в нем. Как вы можете видеть, существует четыре подпроцесса:
Подпроцесс 1: на вход подается оператор k-NN, и полученная модель передается на выход. Подпроцесс 2: на входе применяется опе-
Рис. 5.7. Результат работы процесса
110
Рис. 5.8. Схема процесса
Рис. 5.9. Оператор «Выбрать подпроцесс»
ратор Naive Bayes, и полученная модель передается на выход. Подпроцесс 3: оператор дерева решений применяется на входе, и полученная модель передается на выход. Подпроцесс 4: вход напрямую
подключен к выходу.
В операторе Ветвление подпроцессов был выбран оператор 2. Результат работы (рис. 5.10).
Пример 3. Генерация исключений (Throw Exception) (рис. 5.11–
5.12).
Набор данных «Ирис» загружается оператором «Получить». Оператор Filter Example применяется к данным и фильтрует примеры
атрибута a1, значение которого больше 10.
ExampleSet передается оператору Branch. Если есть хотя бы один
пример, данные передаются без изменения. Если есть нулевые примеры, оператор Throw Exception делает процесс неудачным с введен111
Рис. 5.10. Результат работы процесса
Рис. 5.11. Схема процесса
Рис. 5.12. Оператор Ветвь
ным сообщением. Поскольку условие фильтра не применяется ни к
одному примеру набора данных, процесс завершится неудачно, т. е.
будет выполняться оператор Throw Exeption.
Результат работы (рис. 5.13).
112
Рис. 5.13. Результат работы процесса
Пример 4. Соединение путей (Join Paths) (рис. 5.14).
Этот пример начинается с оператора Subprocess. Два выхода оператора Subprocess подключаются к первым двум входным портам
оператора Join Paths. Но оба этих входа ноль, потому что у оператора подпроцесса нет внутренних операторов. Наборы данных «Golf»
и «Polynomial» загружаются с использованием оператора Retrieve.
Оператор Join Paths имеет четыре входа, но он возвращает только
набор данных «Golf», поскольку он является первым непустым входом, который он получил.
Пример 5. Цикл и среднее (Loop and average) (рис. 5.15–5.17).
Набор данных «Гольф» загружается с помощью оператора Retrieve. На него применяется оператор Loop And Average. Параметр
итераций установлен в 3; таким образом, подпроцесс оператора Loop
And Average будет выполняться три раза. На каждой итерации генерируется вектор эффективности, и среднее значение этих векторов
производительности будет передано в результате этого оператора.
Рис. 5.14. Схема процесса
113
Рис. 5.15. Схема процесса
Рис. 5.16. Оператор Цикл и Среднее
Рис. 5.17. Оператор Валидация
Посмотрите на подпроцесс оператора Loop And Average. Оператор
Split Validation используется для обучения и тестирования модели
Naive Bayes. Точка останова вставляется после операции «Сплитпроверка», чтобы вектор эффективности можно было видеть на каж114
дой итерации. Запустите процесс. Вы увидите вектор производительности первой итерации. Он имеет точность 25%. Продолжайте
процесс; вы увидите векторы производительности второй и третьей
итераций (соответственно 75% и 100%). Оператор Loop и Average
принимает среднее значение этих трех результатов и доставляет его
через свой выходной порт. Среднее значение этих трех результатов
составляет 66,67% (т. е. (25% + 75% + 100%) / 3). Полученный средний вектор можно увидеть в рабочей области результатов.
Пример 6. Коллекция сглаживания (FlattenCollection).
Коллекция сглаживания (FlattenCollection) получает коллекцию коллекций. Например, если объект коллекции содержит три
коллекции, содержащие по 5 объектов; этот оператор возвращает
одну коллекцию с 15 объектами. Оператор собрать (Collect) может
передать коллекцию или коллекцию коллекций. В представлении
процесса коллекции обозначаются двойными строками.
Коллекции полезны, если требуется применить одни и те же операции к ряду объектов. Сбор оператора позволяет собрать необходимые предметы в одной коллекции, оператор Цикл по коллекции
(Loopcollection) позволяет перебрать все коллекции и наконец, можно разделить объекты ввода из коллекции по отдельности, выбрав
нужный элемент, используя оператор Выбрать (Select).
Вход
Коллекция (коллекция)
Этот порт ожидает объект коллекции. Этот оператор может быть
полезен, когда этот объект является коллекцией коллекций.
Выход
Плоскость (коллекция)
Данные объект коллекции выравниваются и доставляются через
этот порт.
Пример процесса (рис. 5.18, 5.19) начинается с оператора подпроцесса, который предоставляет коллекцию коллекций. Можно уви-
Рис. 5.18. Результат работы процесса
115
Рис. 5.19. Оператор «Сглаживающая коллекция
(Flattencollection)»
Рис. 5.20. Оператор Сглаживающая коллекция
(Flattencollection)
деть, что этот объект имеет две коллекции. Эти коллекции имеют
3 ExampleSets каждый. Оператор Сглаживающая коллекция (Flattencollection) применен на этом объекте, чтобы сгладить коллекции
в одну коллекция из 6 ExampleSets. Полученный объект сглаженной коллекции можно увидеть на рис. 5.19.
Пример 7. Собрать (Collect), Цикл по коллекции (Loopcollection)
и Выбрать (Select).
Рассмотрим процесс (рис. 5.20–5.23) показывающий пример работы операторов Собрать (Collect), Цикл по коллекции (Loopcollection) и Выбрать (Select), которые находятся внутри оператора Дерево решений (DecisionTree).
В этом примере поясняется ряд важных идей, связанных с коллекциями. Пример показывает, как объекты собираются в коллекцию, и после обработки, отдельные элементы коллекции выбираются по мере необходимости.
116
Рис. 5.21. Результат обработки
Рис. 5.22. Скриншот основного процесса
Данные наборы загружаются в «гольф» и гольф-тестах. Оба набора ExampleSets предоставляются в качестве входных данных для
оператора подпроцесс (Subprocess). Подпроцесс (Subprocess) выполняет некоторую предварительную обработку наборов ExampleSets, а
затем возвращает их через выходные порты. Первый выходной порт
117
Рис. 5.23. Скриншот схемы подпроцесса
возвращает набор данных, предварительно обработанных «Гольф»,
который затем используется в качестве обучающей выборки для
решения оператором дерево. Второй выходной порт обеспечивает
Гольф-тестах на предварительно обработанный набор данных, который используется в качестве проверочного набора для применить
модели (Applymodel) оператора, которая применяет модель дерева
решений. Оператор представление.
Представление (performance) этой модели измеряется и подключается к порту результатов. Обучение и тестирование ExampleSets
также можно увидеть в рабочей области результатов.
Теперь взгляните на подпроцесс оператора подпроцесса. Прежде
всего, оператор Собрать (Collect) объединяет два ExampleSets в одну
коллекцию. Обратите внимание на двойной вывод строки оператора Собрать (Collect), который указывает, что результатом является
коллекция. Затем оператор Цикл по коллекции (LoopCollection)
применяется после оператора Собрать (Collect). Оператор Цикл по
коллекции (LoopCollection) выполняет итерации по элементам коллекции и выполняет предварительную обработку (переименование
атрибута в данном случае) на них. Вы можете увидеть в подпроцесс
оператора Цикл по коллекции (LoopCollection), что оператор переименовать (Rename) используется для изменения имени атрибута
температурана Новая температура. Важно отметить, что это переименование выполняется на обоих ExampleSets коллекции. Полученная коллекция передается оператору умножения, который
создает две копии коллекции. Первая копия используется оператором Select (с параметром index = 1) для выбора первого элемента коллекции, т. е. предварительно обработанного набора данных
Golf. Второй экземпляр используется второй оператор Select (с па118
Рис. 5.24. Набор данных
Рис. 5.25. Точность модели
раметр index = 2) выбрать второй элемент коллекции, т. е. Гольфтестахпрепроцессированные набор данных.
Набор данных представлен на рис. 5.24.
Пример 8. Цикл (Loop)
В этом примере процесса описывается, как оператор Loop можно использовать для циклирования по всем примерам. Оператор
примеров циклов должен быть предпочтительным для этой задачи.
Этот процесс делает именно то, что делает пример процесса оператора Loop Examples. Единственное отличие состоит в том, что этот
процесс использует оператор Loop вместо оператора Loop Examples.
Нетрудно заметить, что использование оператора «Примеры ци119
клов» намного проще, поскольку оно предназначено для циклических примеров (рис. 5.26).
Набор данных «Гольф» загружается с помощью оператора Retrieve. Здесь устанавливается точка останова, чтобы вы могли посмотреть пример. Оператор Extract Macro применяется на нем. Оператор Extract Macro создает макрос с именем «avg_temp», в котором
хранится среднее значение атрибута «Температура» набора данных
«Гольф». Оператор Extract Macro снова применяется для хранения
количества примеров в наборе данных «Гольф» в макросе с именем
«count» (рис. 5.27, 5.28).
Далее применяется оператор Loop. Оператор Loop выполняет
итерацию по всем примерам набора данных Golf и устанавливает
значение атрибута Temperature в каждом примере на разницу среднего значения (сохраненного в макросе avg_temp) от существующего значения атрибута Temperature, Параметр заданного итерационного макроса имеет значение true для определения макроса, доступ
к которому можно получить в подпроцессе и который увеличива-
Рис. 5.26. Скриншот схемы процесса
Рис. 5.27. Настройки макросов
120
Рис. 5.28. Параметры оператора Loop
ется после каждой итерации. Параметр имени макроса оператора
Loop установлен в «пример», а параметр начального значения макроса для оператора Loop установлен в 1. Параметр итераций установлен в «% {count}», поэтому подпроцесс выполняется n раз, где n –
это значение макроса «count», которое равно количеству примеров
в примере (рис. 5.29).
Посмотрите на подпроцесс оператора Loop. Оператор диапазона
фильтра применяется сначала для фильтрации требуемого примера из примера. Первый пример и последний пример параметров
установлены на «% {example}», чтобы отфильтровать один пример
ExampleSet. Полученный примерный набор состоит всего из одного
примера, например, примера текущей итерации (рис. 5.30).
Оператор Extract Macro применяется рядом с сохранением значения атрибута Temperature в примере текущей итерации в макросе с именем temp. Затем оператор Generate Macro применяется для
создания нового макроса из макроса «temp». Имя нового макроса –
Рис. 5.29. Схема подпроцесса
121
Рис. 5.30. Настройки макросов
«new_temp», и оно сохраняет разность текущего значения температуры (хранится в макросе «temp») и среднее значение температуры
(хранится в макросе «avg_temp»). Наконец, применяется оператор
Set Data. Параметр value установлен в % {new_temp}, чтобы сохранить значение макроса «new_temp» в текущем примере (рис. 5.31).
Этот подпроцесс выполняется один раз для каждого примера и
на каждой итерации он заменяет значение атрибута «Температура» примера этой итерации значением макроса «new_temp». В результате этого оператора генерируется набор примеров. Каждый
примерный набор состоит из одного примера. Оператор Append используется в основном процессе для объединения всех этих наборов
примеров в один пример. Полученный пример ExampleSet можно
увидеть в рабочей области результатов. Вы можете видеть, что все
значения атрибута Temperature были заменены новыми значениями (рис. 5.32).
Рис. 5.31. Настройки оператора
SetData
122
Рис. 5.32. Результаты
Пример 9. Цикл по наборам данных (Loop Data Sets).
Выбор примера с наилучшей производительностью.
В этом примере процесс объясняет использование единственного
лучшего параметра оператора наборов данных цикла. Наборы данных «Golf», «Golf-Testset» и «Iris» загружаются с использованием
оператора Retrieve (рис. 5.33).
Все эти примеры задаются в качестве входных данных для оператора наборов данных цикла. Посмотрите на подпроцесс оператора
Loop Data Sets (рис. 5.34).
Рис. 5.33. Схема процесса
123
Рис. 5.34. Подпроцесс оператора Loop Data Set
Оператор Split Validation используется для обучения и тестирования модели K-NN на данном примере. Оператор Split Validation
возвращает вектор производительности модели. Этот вектор производительности используется оператором набора данных Loop для
поиска итерации с наилучшей производительностью (рис. 5.35).
Результаты итерации с лучшей производительностью поставляются, потому что единственный лучший параметр имеет значение true.
Когда этот процесс выполняется, набор данных «Ирис» поставляется в качестве результата. Это связано с тем, что итерация с набором данных «Ирис» имела лучший вектор производительности.
Если вы введете точку останова после операции «Сплит-проверка»
и снова запустите процесс, вы увидите, что наборы данных «Golf»,
«Golf-Testset» и «Iris» имеют точность 25%, 50% и 93,33% соответственно (рис. 5.36–5.38).
Рис. 5.35. Подпроцессы оператора Split Validation
Рис. 5.36. Точность набора данных Golf
124
Рис. 5.37. Точность набора данных Golf-Testset
Рис. 5.38. Точность набора данных Iris
Поскольку итерация с набором данных «Iris» имела лучшую
производительность, ее результаты возвращаются этим оператором
(помните, что только лучший параметр имеет значение true). Этот
оператор также может возвращать другие объекты, такие как модель и т. д. (рис. 5.39).
Рис. 5.39. Результат работы
125
Пример 10. Цикл по партиям/пакетам (Loop Batches)
Набор данных «Iris» загружается с помощью оператора Retrieve.
Здесь устанавливается точка останова, чтобы вы могли посмотреть
примерный набор до применения оператора Loop Batches (рис. 5.40).
Вы можете видеть, что пример содержит 150 примеров. Оператор
Loop Batches применяется к этому примеру. Параметр размера партии установлен равным 50 (рис. 5.41).
Учитывая, что существует 150 примеров, а размер партии равен
50, будут выполняться 3 (т. е. 150/50) итераций этого оператора. Посмотрите на подпроцесс оператора Loop Batches (рис. 5.42).
Оператор Remember применяется для хранения примеров каждой итерации в таблице объектов в виде примера. Точка останова
вставлена перед оператором Remember, чтобы вы могли посмотреть
примеры каждой итерации (рис. 5.43).
При выполнении процесса вы увидите три итерации оператора
Loop Batches. Вы можете видеть, что первая итерация имеет примеры от id_1 до id_50 (рис. 5.44).
Рис. 5.40. Схема процесса
Рис. 5.41. Установка размера партии/пакета
Рис. 5.42. Схема подпроцесса
126
Рис. 5.43. Результаты первой итерации
Рис. 5.44. Результаты второй Итерации
Аналогичным образом, последовательные итерации имеют примеры id_51 – id_100 и id_101 – id_150 (рис. 5.45).
В конце оператор Recall используется для извлечения объектов,
хранящихся оператором Remember. Оператор Recall может извле127
Рис. 5.45. Результаты третьей итерации
кать только примеры последней партии, потому что предыдущие
партии были переопределены последовательными партиями.
5.3. Синтаксис фрагмента языка RAPIDMINER –
синтаксическая категория <Утилиты>
5.3.1. Синтаксис фрагмента языка <Утилиты>
Синтаксическая категория языка RAPIDMINER<Утилиты> содержит 52 оператора – терминальных символов. Схема выбора операторов приведена на рис. 5.46.
Рис. 5.46.
128
<Утилиты>::= <Макросы> |
<Ведение журнала> |
<Исполнение> |
<Файлы> |
<Генерация данных> |
<Аннотации> |
<Разное>
Подпроцесс
Рис. 5.47. Дерево операторов <Утилиты>
5.3.2. Семантика фрагмента <Утилиты>
Семантика операторов синтаксической категории <Макросы>
– Set Macro (Установка макроса) – используется для определения макроса, который задается в виде %{macro_name} в значениях
параметров последующих операторов текущего процесса. Значение
макроса не будет производным от любого примера. Макрос можно
129
рассматривать как значение, которое может использоваться всеми
операторами текущего процесса после определения макроса. Также
может использоваться для повторного определения существующего
макроса.
– Set Macros (Установка макроса) – используется для определения нескольких макросов, которые определяются в виде %{macro_
name} в значениях параметров последующих операторов текущего процесса. Значения макроса не будут производными от набора
ExampleSet. Макрос можно рассматривать как значение, которое
может использоваться всеми операторами текущего процесса после
определения макроса. Также может использоваться для повторного
определения существующих макросов.
– Generate Macro (Создание макросов) – используется для вычисления новых макросов из существующих. Макрос можно использовать путем записи %{macro_name} в значения параметров
последующих операторов текущего процесса. Макрос можно рассматривать как значение, которое может использоваться всеми
операторами текущего процесса после определения макроса. Этот
оператор также может использоваться для повторного определения
существующих макросов.
– Extract Macro (Извлечение макроса) – Используется для определения одного макроса, который может использоваться в виде
%{macro_name} в значениях параметров последующих операторов
текущего процесса. Значение макроса будет производным от входного ExampleSet. Макрос можно рассматривать как значение, которое может использоваться всеми операторами текущего процесса
после определения макроса. Этот оператор также может использоваться для повторного определения существующего макроса.
– UnsetMacro (Отключение макроса) – может использоваться
для удаления одного или нескольких ранее определенных макросов
из контекста процесса.
Семантика операторов синтаксической категории <Ведение журнала>
– Log (Журнал) – хранит информацию в таблице журнала. Эта
информация может быть почти чем что угодно, в том числе значения
параметров операторов, количество применений операторов, время
выполнения и т. д. Хранимая информация может быть отображена
в графическом виде после завершения выполнения процесса. Более
того, информацию можно также записать в файл.
– Clear Log (Очистка журнала) – очищает таблицу, созданную
оператором ProcessLog.
130
– Extract Log Value (Извлечение значения журнала) – считывает указанное значение из входного ExampleSet и предоставляет значение для ведения журнала.
– Provide Macro as Log Value (Представление макроса как значение журнала) – считывает значение указанного макроса и предоставляет значение макроса для ведения журнала. Этот оператор
полезен только в том случае, если требуемое значение макроса не
может быть записано непосредственно в журнал.
– Log to Weights (Журнал весов) – создает новые веса атрибутов из столбца имен атрибутов, зарегистрированного оператором
ProcessLog.
– Log to Data (Журнал данных) – преобразует данные, сгенерированные оператором журнала, который затем может использоваться другими операторами процесса.
– Print to Console (Печать на консоль) – выводит данное значение параметра на консоль.
Семантика операторов синтаксической категории <Исполнение>
– Execute Process (Выполнение процесса) – внедряет полный
процесс (ранее записанный в файл) в текущий процесс.
– Execute Script (Выполнение скрипта\сценария) – выполняет
java-код и/или скрипты на groovy. Это в основном означает, что пользователи могут написать свои собственные операторы непосредственно в процессе, указав код Java и/или скрипт Groovy, который будет
интерпретироваться и выполняться во время выполнения процесса.
– Execute SQL (Выполнение запроса SQL) – выполняет указанный запрос SQL в указанной базе данных.
– Execute Program (Выполнение программы) – оператор просто
выполняет команду в оболочке операционной системы. Он может
выполнить любую команду системы или внешней программы.
Семантика операторов синтаксической категории <Файлы>
– Open File (Открытие файла) – открывает файл для обработки,
анализа операторов.
– Write File (Запись файла)– записывает объект файла в файл
или в репозиторий в виде большого двоичного объекта.
– Write Message (Запись сообщения) – просто записывает данный текст в указанный файл (может быть полезен в сочетании с ветвью процесса).
– Write as Text (Запись в виде текста) – записывает полученные
результаты в указанный файл. Может использоваться в каждой
точке цепочки операторов для записи результатов на каждом этапе
процесса в файл.
131
– Copy File (Копирование файла) –копирует выбранный файл в
указанное место назначения.
– Rename File (Смена имени файла) – переименовывает файл
или папку.
– Delete File (Удаление файла) – удаляет файл в указанном месте
– Move File (Перемещение файла) – перемещает выбранный
файл в указанное место назначения.
– Create Directory (Создание каталога) – создает каталог по указанному пути.
– Create Archive File (Создание архивного файла) – создает объект архивного файла, который позволяет сжимать другие объекты
файла. Это возможно только для создания zip-файлов. После добавления всех записей файловый объект архива может храниться
в файловой системе.
– Add Entry to Archive File (Добавление записи в архив файлов)
– добавляет записи в объект архивного файла, в настоящее время
единственным доступным типом является файл zip.
Семантика операторов синтаксической категории <Файлы>
– Generate Data (Генерация данных) – Создает ExampleSet на основе числовых атрибутов. Количество атрибутов, количество примеров, нижняя и верхняя границы атрибутов и целевая функция
могут быть заданы пользователем.
– Generate Data by User Specification (Генерация данных по
спецификации пользователя) – генерирует ExampleSet, содержащий ровно один пример. Атрибуты и их типы и роли производятся
из выражений, заданных параметрами.
– Generate Nominal Data (Генерация номинальных данных) –
создает ExampleSet на основе номинальных атрибутов. Количество
примеров, количество атрибутов и число значений может быть указано пользователем.
– Generate Multi-Label Data (Генерация данных с несколькими
метками) – Создает ExampleSet с несколькими метками на основе
числовых атрибутов. Количество примеров, нижняя и верхняя границы атрибутов могут быть указаны пользователем.
– Generate Massive Data (Генерация массива данных) – генерирует огромные объемы данных для тестирования.
– Generate Direct Mailing Data (Генерация данных прямой рассылки) – создает ExampleSet, представляющий данные прямой рассылки. Количество примеров может быть указано пользователем.
– Generate Churn Data (Генерация оттока данных) – генерирует данные для тестирования на основе набора данных сокращения оттока.
132
– Generate Up-Selling Data (Генерация реализованных данных)
– генерирует данные с целью тестирования на основе набора данных о продажах.
– Generate Sales Data (Генерация данных о продажах) – создает
ExampleSet, который представляет данные о продажах. Количество
примеров может быть указано пользователем.
– Generate Team Profit Data (Генерация данных о прибыли команды) – генерирует данные с целью тестирования на основе набора
данных прибыли команды.
– Generate Transfer Data (Генерация передачи данных) – генерировать данные с целью тестирования на основе набора данных переноса.
– Generate Transaction Data (Генерация данных транзакций) –
генерирует пример, который представляет данные транзакции. Количество транзакций, количество клиентов, количество элементов
и количество кластеров могут быть указаны пользователем.
– Add Noise (Добавить погрешность) – этот оператор добавляет
погрешность в данной ExampleSet путем добавления случайных
атрибутов к ExampleSet и добавления погрешности в существующие атрибуты.
Семантика операторов синтаксической категории <Комментарии>
– Annotate (Комментирование) – добавляет аннотации к объекту IOObject или изменяет существующие.
– Extract Macro from Annotation (Извлечение макроса из аннотации) – извлекает одну или несколько аннотаций из объекта и назначает его значение макросу.
– Data to Annotations (Примечания к данным) – извлекает все
аннотации из объекта IOObject и создает из них набор примеров.
– Annotations to Data (Данные к примечаниям) – добавляет
примечания к объекту, извлеченному из примера набора.
Семантика операторов синтаксической категории <Разное>
– Send Mail (Отправить сообщение) – этот оператор отправляет
сообщения.
– Delay (Задержка) – задерживает выполнение процесса.
– Obfuscate (Шифрование) – заменяет все номинальные значения и имена атрибутов случайными строками.
– De-Obfuscate (ДеШифрование) – заменяет все запутанные значения и имена атрибутов теми, которые заданы в файле.
– Register Visualization from Database (Визуализация данных) –
позволяет визуализировать примеры (значения атрибутов) в виде гра133
фика набора примеров (двойной щелчок по точке данных). Данные
напрямую производятся из указанной таблицы базы данных.
– Materialize Dat (Материализация данных) – этот оператор создает свежую и чистую копию данных в памяти.
– Free Memory (Освобождение памяти) – этот оператор освобождает неиспользуемую память. Это может быть полезно после больших цепочек предварительной обработки с большим количеством
неиспользуемых представлений или даже копий данных.
Семантика оператора <Подпроцесс>
– Subprocess (Подпроцесс) – этот оператор вводит процесс в процесс. Всякий раз, когда оператор подпроцесса достигается во время
выполнения процесса, сначала выполняется весь подпроцесс. После
завершения выполнения подпроцесса поток возвращается в процесс
(родительский процесс). Подпроцессом можно считать небольшую
единицу процесса, как и в процессе, все операторы и комбинации
операторов могут быть применены в подпроцессе. Поэтому подпроцесс также можно определить, как цепочку операторов, которая
впоследствии применяется.
5.3.3. Примеры применения операторов
<Преобразование данных>
Пример 1.
Оператор «Выполнение сценария» / ExecuteScript.
Это очень мощный оператор, потому что он позволяет писать
свои собственные сценарии. Этот оператор следует использовать,
если задача, которую требуется выполнить с помощью скрипта, не
может быть выполнена существующими операторами RapidMiner,
поскольку написание скриптов может занимать много времени и
быть подвержено ошибкам.
Groovy – это гибкий динамический язык для виртуальной машины java. Он основан на сильных сторонах Java, но имеет дополнительные функции питания, вдохновленные такими языками,
как Python, Ruby и Smalltalk. Groovy хорошо интегрируется со
всеми существующими классами и библиотеками Java, поскольку
он компилируется прямо в байт-код Java, чтобы вы могли использовать его в любом месте, где вы можете использовать Java. Полный
перечень сценариев groovy см. http://groovy.codehaus.org/.
В дополнение к обычным элементам скриптовый код из groovy, в
RapidMiner оператор сценариев определяет некоторые специальные
элементы сценариев: если стандартный параметр импорта имеет
134
значение True, все важные типы, как например, ExampleSet, атрибут, оператором и т. д., а также наиболее важные типы java, например, семейства и т. д. импортируются автоматически и могут непосредственно использоваться в скрипте. Следовательно, нет необходимости импортировать их в скрипт. Однако можно импортировать
любой другой класс и использовать его в скрипте.
На текущий оператор (оператор скрипта, для которого определен
скрипт) ссылается оператор. Пример: оператор.log («текст»).
Все операторские методы, такие как log (см. выше), которые получают доступ к входным данным или к полному процессу, могут
быть непосредственно использованы путем написания предыдущего оператора. Пример: оператор.getProcess().
Ввод оператора могут быть получены с помощью метода ввода getInput (класс) окружающий оператора. Пример: ExampleSet
exampleSet = оператор getInput (ExampleSet.класс).
Можно выполнить итерацию примеров со следующей конструкцией: (пример: exampleSet) {... }.
Вы можете получить примеры значений с ярлыком: в случае
отсутствия числовых значений: строка значение = пример [«имя_
атрибута»]; в случае числовые значения: Double значение = пример
[«имя_атрибута»];
Вы можете установить значения ярлык: в случае отсутствия числовых значений: пример [«имя_атрибута»] = «значение»; в случае
числовых значений: пример [«имя_атрибута»] = 5.7;
Пожалуйста, изучите прилагаемый пример процессов для лучшего понимания. Обратите внимание, что скрипты, написанные для
этого, оператор может получить доступ к java-код. Поэтому сценарии могут стать несовместимыми в будущих выпусках RapidMiner.
Вход
Оператор сценарий может иметь несколько входов. Когда один
вход подключен, становится доступным другой входной порт, который готов принять другой вход (если таковой имеется).
Выход
Оператор сценарий может иметь несколько выходов. Когда один
выход подключен, становится доступным другой выходной порт,
который готов доставить другой выход (если таковой имеется).
Параметры
– Сценарий.
– Скрипт, который будет выполнен, задается через этот параметр. Диапазон:
– Стандартный импорт.
135
Если стандартный параметр импорта имеет значение True, все
важные типы, как например, ExampleSet, атрибут, оператором и
т. д., а также наиболее важные типы java, например, семейства и
т. д. импортируются автоматически и могут непосредственно использоваться в скрипте. Следовательно, нет необходимости импортировать их в скрипт. Однако можно импортировать любой другой
класс и использовать его в скрипте. Ассортимент: логические.
В набор данных «гольф» загружается с помощью оператора извлечения. Точка останова вставляется здесь, чтобы можно было
просмотреть ExampleSet. Обратите внимание на значения атрибутов «температура» и «влажность». Оператор Script применяется к
набору ExampleSet.
Скрипт вычитает среднее значение каждого числового атрибута
из всех значений этого атрибута. Это можно проверить, просмотрев
результаты в рабочей области результатов.
Вот краткое описание того, что происходит в сценарии. Получаем входные данные. Затем внешний цикл выполняет итерации
для всех атрибутов и сохраняет имя текущего атрибута в строковой
переменной и среднее значение этого атрибута в переменной двойного типа. Затем внутренний цикл выполняет итерацию по всем примерам текущего атрибута и вычитает среднее из текущего значения
примера. В конце концов, измененные данные возвращаются.
5.4. Описание фрагмента языка RAPIDMINER –
синтаксическая категория <Доступ к хранилищу>
5.5. Синтаксис фрагмента языка RAPIDMINER –
синтаксическая категория <Импорт>
5.5.1. Синтаксис фрагмента языка < Импорт >
Синтаксическая категория языка RAPIDMINER< Импорт >содержит 27 операторов – терминальных символов. Схема выбора операторов приведена на рис. 5.48.
<Импорт>:: = <Данные> |
<Модели> |
<Атрибуты> |
<Результаты> |
<Другое> |
Считать
<Данные>::= Считать CSV |
136
Рис. 5.48. Раскрытие оператора Import
Считать Excel |
Считать Excel с форматированием|
Считать XML |
Считать SAS |
Считать Access |
Считать AML |
Считать ARFF |
Считать XRFF |
Считать базу данных |
Потоковые базы данных |
Считать SPSS |
Считать Stata |
Считать Sparse |
Считать DBase |
137
Считать C4.5 |
Считать BibTex |
Считать DasyLab |
Считать URL
<Модели>::= Считать Модель |
Считать модель Кластера
<Атрибуты>::=Считать Веса атрибутов |
Считать Конструкции
<Результаты>::=Считать вектор Производительности
<Другое>::= Считать Параметры |
Считать Пороговое значение
Считать
5.5.2. Семантика фрагмента языка RM <Импорт>
Семантика операторов синтаксической категории <Генерация>
Считать CSV. Этот оператор может считывать csv-файлы, где все
значения примера записываются в одну строку и разделяются неизменным разделителем. Разделитель может быть указан в колонке
параметры разделителей. По умолчанию строка будет разбита на
промежутки между запятыми, точкой с запятой и пробелами. Произвольные регулярные выражения можно использовать в качестве
разделителя. Пустые значения и знак вопроса будут считаться отсутствующими значениями. Вы можете процитировать значения
(включая разделители столбцов) с помощью двойной кавычки («»).
Вы можете избежать цитирования с помощью обратной косой черты, т. е. Первая строка используется для названий атрибутов по
умолчанию, управляемых с помощью параметра имен атрибутов в
первой строке. Этот оператор пытается определить подходящий тип
атрибутов, читая первые несколько строк и проверяя появляющиеся значения. Если все значения являются целыми числами, атрибут
станет целым, если будут действительные числа, он будет иметь тип
вещественное с плавающей точкой. Столбцы, содержащие значения, которые нельзя интерпретировать как числа, будут номинальными, если они не соответствуют шаблону даты и времени параметра формата даты. Если они будут соответствовать этому параметру,
этот столбец csv-файла будет автоматически анализироваться как
дата, а соответствующий атрибут будет иметь тип даты.
Считать Excel. Этот оператор можно использовать для загрузки
данных из электронных таблиц Microsoft Excel. Этот оператор способен считывать данные из Excel 95, 97, 2000, XP и 2003. Пользова138
тель должен определить, какая из таблиц в книге должна использоваться в качестве таблицы данных. Таблица должна иметь формат,
чтобы каждая строка была примером, и каждый столбец представляет собой атрибут. Обратите внимание, что первая строка может
использоваться для имен атрибутов. Таблицу данных можно разместить в любом месте листа, она может содержать произвольные
инструкции форматирования, пустые строки и пустые столбцы. Недостающие значения данных обозначаются пустыми ячейками или
ячейками, содержащими только «?».
Считать Excel с форматированием. Этот оператор можно использовать для загрузки данных из электронных таблиц Microsoft Excel.
Этот оператор способен считывать данные из Excel 95, 97, 2000, XP
и 2003. Пользователь должен определить, какая из таблиц в книге
должна использоваться в качестве таблицы данных. Таблица должна иметь формат, чтобы каждая строка была примером, и каждый
столбец представляет собой атрибут. В отличие от обычного оператора для чтения файлов Excel, этот оператор создает второй атрибут
для каждого исходного столбца данных, хранящего информацию
о форматировании из листа Excel. Недостающие значения данных
обозначаются пустыми ячейками или ячейками, содержащими
только «?».
Считать XML. Этот оператор может читать xml-файлы, где примеры представлены элементами, которые соответствуют данному
запросу языка XPath, а функции – это атрибуты и текстовое содержимое каждого элемента и его подэлементов. Этот оператор пытается определить соответствующий тип атрибутов, читая первые
несколько элементов и проверяя происходящие значения. Если все
значения являются целыми числами, атрибут станет целым, если
будут действительные числа, он будет иметь тип вещественное с
плавающей точкой. Столбцы, содержащие значения, которые нельзя интерпретировать как числа, будут номинальными, если они не
соответствуют шаблону даты и времени параметра формата даты.
Если они будут соответствовать этому параметру, этот атрибут будет автоматически анализироваться как дата, а соответствующая
функция будет иметь тип даты.
Считать SAS. Этот оператор может считывать файлы SAS
(Statistical Analysis Software).
Считать Access. Этот оператор считывает набор данных из базы
данных Microsoft Access с использованием JDBC-ODBC.
Считать AML. Этот оператор считывает пример из файла/файлов. Вероятно, вы можете использовать значения параметров по
139
умолчанию для большинства форматов файлов (включая формат,
созданный с помощью ExampleSetWriter, CSV...). В разделе Первые
шаги / Форматы файлов можно узнать подробнее о описании атрибута, заданного параметрами, используемыми для указания типов
атрибутов. Вы можете использовать мастер этого оператора или редактор атрибутов для создания этих метаданных.aml-файлов для
ваших наборов данных. Этот оператор поддерживает чтение данных из нескольких исходных файлов. Каждый атрибут (включая
специальные атрибуты, такие как лэйблы, веса...) может быть прочитан из другого файла. Обратите внимание, что будет прочитано
только минимальное количество строк всех файлов, то есть, если
один из файлов источника данных имеет меньше строк, чем другие,
то из других файлов будет считано такое количество строк, как в
меньшем файле.
Точки разделения могут быть определены с помощью регулярных выражений (пожалуйста, обратитесь к одному из многочисленных руководств, доступных в Интернете для ознакомления). Параметры разделения по умолчанию «, \ s *|; \ s *| \ s +» должны работать для большинства форматов файлов. Это регулярное выражение
описывает следующие разделители столбцов:
символ «,» за которым следует пробел произвольной длины;
символ «;» за которым следует пробел произвольной длины;
пробел произвольной длины (мин. 1).
Логический XOR определяется как «|». Другими полезными разделителями могут быть «\ t» для таблиц, «» для одного пробела и «\
s» для любого количества пробелов.
Вы можете процитировать значения с помощью двойной кавычки («»). Вы можете избежать цитирования с помощью обратной косой черты. Обратите внимание, что вы можете изменить эти символы, настроив соответствующие настройки.
Кроме того, вы можете указать символы комментариев, которые
могут использоваться в произвольных местах. Любое содержимое
после символа комментария будет проигнорировано. Неизвестные
значения атрибутов могут быть отмечены пустыми строками (если
это возможно для разделителей столбцов) или знаком вопроса (рекомендуется).
Считать ARFF. Этот оператор может читать файлы ARFF библиотеки машинного обучения Weka. Файл ARFF (Attribute-Relation
File Format) – текстовый файл ASCII, который описывает список
экземпляров, совместно использующих набор атрибутов. Файлы
ARFF были разработаны Проектом машинного обучения на факуль140
тете компьютерных наук Университета Вайкато для использования
с программным обеспечением для машинного обучения Weka.
Файлы ARFF имеют два отдельных раздела. Первый раздел – это
информация заголовка, за которой следует информация данных.
Заголовок файла ARFF содержит имя отношения (@RELATION,
игнорируется RapidMiner) и список атрибутов, каждый из которых
определяется стартовым @ATTRIBUTE, за которым следует его
имя и его тип.
Объявления атрибутов принимают форму упорядоченной последовательности @ATTRIBUTE операторов. Каждый атрибут в наборе
данных имеет свой собственный оператор @ATTRIBUTE, который
однозначно определяет имя этого атрибута и его тип данных. Порядок объявления атрибутов указывает позицию столбца в разделе
данных файла. Например, если атрибут является третьим, он объявляет все значения атрибутов, которые будут найдены в третьем
столбце с разделителями-запятыми.
Возможные типы атрибутов:
числовой;
целое число;
вещественное число;
{номинальный1, номинальный2,...} для номинальных атрибутов;
строка для номинальных атрибутов без отдельных номинальных
значений (однако рекомендуется как можно чаще использовать номинальное определение, рассмотренное выше);
дата [формат даты] (в настоящее время не поддерживается
RapidMiner).
Допустимыми примерами для определения атрибутов являются:
@ATTRIBUTE petalwidth REAL;
@ATTRIBUTE class;
{Iris-setosa, Iris-versicolor, Iris-virginica}.
Раздел данных ARFF файла содержит строку объявления данных @DATA, за которой следуют фактические строки данных примера. Каждый пример представлен в одной строке с возвратом каретки, обозначающим конец примера. Значения атрибутов для каждого примера разделяются запятыми. Они должны отображаться в
том порядке, в котором они были объявлены в разделе заголовка
(то есть данные, соответствующие n-му объявлению @ATTRIBUTE,
всегда являются n-м полем примерной строки). Недостающие значения представлены одним вопросительным знаком, как в:
4.4,?,1.5,?,Iris-setosa
141
Знак процента (%) вводит комментарий и будет игнорироваться
во время чтения. Названия атрибутов или значения параметров,
содержащие пробелы, должны быть указаны с одинарными кавычками («). Обратите внимание, что разреженный формат ARFF в
настоящее время поддерживается только для числовых атрибутов.
Пожалуйста, используйте один из других вариантов для разреженных файлов данных, предоставляемых RapidMiner, если вам также
нужны разреженные файлы данных для номинальных атрибутов.
Пожалуйста, посмотрите пример ARIF-файла Iris, предоставленный в подкаталоге данных каталога образцов RapidMiner, чтобы получить представление об описываемом формате данных.
Считать XRFF. Этот оператор может читать файлы XRFF из библиотеки Weka. XRFF (eXtensible attribute-Relation File Format)
является расширением формата ARFF на основе XML, в некотором
смысле похожим на исходный формат файла RapidMiner для файлов описания атрибутов (.aml). Здесь вы получите небольшой пример для набора данных IRIS, представленного как файл XRFF:
<?xml
version=«1.0» encoding=«utf-8»?><dataset name=«iris»
version=«3.5.3»><header>
<attributes><attribute name=«sepallength»
type=«numeric»/><attribute name=«sepalwidth»
type=«numeric»/><attribute name=«petallength»
type=«numeric»/><attribute name=«petalwidth»
type=«numeric»/><attribute class=«yes» name=«class»
type=«nominal»><labels>
<label>Iris-setosa</label>
<label>Iris-versicolor</label>
<label>Iris-virginica</label>
</labels></attribute>
</attributes></header>
<body><instances>
<instance>
<value>5.1</value>
<value>3.5</value>
<value>1.4</value>
<value>0.2</value>
<value>Iris-setosa</value>
</instance><instance>
<value>4.9</value>
<value>3</value>
142
<value>1.4</value>
<value>0.2</value>
<value>Iris-setosa</value>
</instance>... </instances>
</body></dataset>
Обратите внимание, что разреженный формат XRFF в настоящее
время не поддерживается, используйте один из других вариантов
для разреженных файлов данных, предоставляемых RapidMiner.
Поскольку представление XML занимает значительно больше места, т.к. данные обернуты в теги XML, можно также сжать данные
через gzip. RapidMiner автоматически распознает файл, сжатый
gzip, если расширение файла.xrff.gz вместо.xrff.
Подобно собственному определению данных RapidMiner через.
aml и почти произвольные файлы данных, формат XRFF содержит
некоторые дополнительные функции. Через атрибут class = «yes» в
спецификации атрибута в заголовке можно определить, какой атрибут должен использоваться как лэйбл. Хотя термин RapidMiner для
таких классов является «лэйбл» вместо «класса», мы поддерживаем
термин класс чтобы не нарушать совместимость с оригинальными
файлами XRFF.
Обратите внимание, что загрузка атрибутов весов в настоящее
время не поддерживается, используйте другие операторы RapidMiner для загрузки и записи атрибутов для этой цели.
Веса экземпляров могут быть определены с помощью атрибута
веса XML в каждом теге экземпляра. По умолчанию вес равен 1.
Вот пример:
<instanceweight=«0.75»>
<value>5.1</value>
<value>3.5</value>
<value>1.4</value>
<value>0.2</value>
<value>Iris-setosa</value>
</instance>
Поскольку формат XRFF не поддерживает атрибуты id, вам нужно использовать один из операторов RapidMiner, чтобы при необходимости поменять столбцы на столбец id. Это необходимо сделать
после загрузки данных.
Считать базу данных. Этот оператор считывает пример из базы
данных SQL. SQL-запрос может быть сгенерирован автоматически
с указанием имени таблицы, переданного в RapidMiner через параметр или, в случае длинных операторов SQL, в отдельный файл.
143
Желаемое поведение можно выбрать с помощью параметра query.
Обратите внимание, что имена столбцов часто чувствительны к регистру и могут нуждаться в цитировании. Здесь базы данных могут
вести себя по-другому.
Прежде чем отправлять инструкцию в базу данных, вам необходимо создать соединение с базой данных. Вы можете выбрать
«Manage Database Connections...» в меню «Tools» в главном окне или
щелкнуть по кнопке справа от раскрывающегося списка параметра
подключения. В появившемся окне запрашиваются несколько деталей как Host, Port, Database system, schema и username. Кнопка
«Test» позволит вам проверить, возможно ли подключение. После
сохранения нового соединения его можно выбрать из раскрывающегося списка параметра соединения.
Когда оператор будет выполнен, таблица, поставленная запросом, будет скопирована в память вашего компьютера. Это даст всем
последующим операторам быстрый доступ к данным, так что даже
схемы обучения, подобные SVM с их большим количеством случайных доступов, будут работать быстро. Если таблица слишком велика для вашей основной памяти, вы можете использовать оператор
Stream Database. Он будет удерживать только часть таблицы в памяти компенсируя более медленный доступ к некоторым величинам, если желаемый пример не кэшируется.
Потоковые базы данных. Этот оператор считывает пример из
базы данных SQL. Данные – это загрузка из одной таблицы, которая определяется параметром имени таблицы. Обратите внимание, что имена таблиц и столбцов часто чувствительны к регистру. Здесь базы данных могут вести себя по-другому. Наиболее
удобным способом определения необходимых параметров является мастер настройки. Этот важный мастер автоматически определит наиболее важные параметры (URL-адрес базы данных и имя
пользователя), а также можно определить специальные атрибуты,
такие как лэйблы или идентификаторы. В отличие от оператора
DatabaseExampleSource, который загружает данные в основную память, этот оператор хранит данные в базе данных и выполняет чтение данных партиями. Это позволяет RapidMiner получать доступ
к наборам данных произвольных размеров без каких-либо ограничений по размеру.
Обратите внимание на следующие важные ограничения и примечания:
– только отображаемые таблицы (без представлений) разрешены
в качестве базы для этого оператора кэширования данных;
144
– если первичный ключ и индекс не присутствуют, создается новый столбец с именем RM_INDEX и автоматически используется в
качестве первичного ключа;
– если первичный ключ уже присутствует в указанной таблице,
создается новая таблица с именем RM_MAPPED_INDEX, сопоставляющая новый индексный столбец RM_INDEX с исходным первичным ключом;
– пользователи могут предоставить первичный ключевой столбец RM_INDEX, который затем должен быть атрибутом индекса с
целым числом, подсчет начинается с 1 без каких-либо пробелов или
отсутствующих значений для всех строк.
Помимо нового столбца индекса или создания таблицы сопоставления в базе данных не выполняются никакие действия. Более того,
наборы данных, созданные поверх таблицы кэшированных баз данных, вообще не поддерживают действия по записи. Пользователи
должны материализовать данные, изменить их и записать в новую
таблицу базы данных (например, с помощью DatabaseExampleSetWriter. Если набор данных велик, пользователи могут использовать
оператор BatchProcessing для разделения этой задачи изменения
данных.
Считать SPSS. Этот оператор может считать файлы SPSS
(Statistical Package for the Social Sciences).
Считать Stata. Этот оператор может читать файлы Stata. В настоящее время поддерживаются только файлы версий 113 или 114.
Считать Sparse. Считывает файл примера в разреженном формате.
Индекс может быть целым числом (начиная с 1) для обычных
атрибутов или одним из префиксов, заданных в списке параметров
prefix_map. Поддерживаются четыре возможных формата
format_xy:
Лэйбл – это последний символ в каждой строке
format_yx:
Лэйбл – это первый символ в каждой строке
format_prefix:
Лэйбл имеет префикс «l:»
format_separate_file:
Лэйбл считывается из отдельного файла, указанного в файле
label_file
no_label:
набор примеров не помечен.
Подробное введение в разреженный формат файла приведено в
разделе First steps/File formats/Data files.
145
Считать Dbase. Этот оператор может читать файлы dbase. Он использует инструменты, придуманные Stefan Haustein.
Считать C4.5. Загружает данные, указанные в формате C4.5
(имена и файл данных). Оба файла должны находиться в одном каталоге. Вы можете указать один из файлов C4.5 (либо файл данных,
либо файл имен), либо только filestem.
Для набора данных с именем «foo» у вас будет два файла: foo.data
и foo.names. Файл.names описывает набор данных, а файл.data содержит примеры, составляющие набор данных.
Файлы содержат ряд идентификаторов и чисел с некоторым близким синтаксисом. A | (вертикальная полоса) означает, что оставшуюся часть строки следует игнорировать как комментарий. Каждый
идентификатор состоит из строки символов, которая не включает
запятую, знак вопроса или двоеточие. Разрешен встроенный пробел, но несколько пробелов заменяются одним пробелом.
Файл.names содержит ряд записей, описывающих классы, атрибуты и значения набора данных. Каждая запись может быть прекращена с периодом, но период может быть пропущен, если бы это
было последним в строке. Первая запись в файле перечисляет имена
классов, разделенных запятыми. Затем каждая последующая строка определяет атрибут в том порядке, в котором они будут отображаться в файле.data, со следующим форматом:
attribute-name: attribute-type
Имя атрибута – это идентификатор, как указано выше, за которым
следует двоеточие, затем тип атрибута, который должен быть одним из:
– непрерывный. Если атрибут имеет непрерывное значение;
– дискретный [n]. Слово «дискретный», за которым следует целое число, которое указывает, сколько значений может принимать
атрибут (не рекомендуется использовать метод, рассмотренный
ниже для определения номинальных атрибутов);
– [список идентификаторов] Это дискретный, т. е. номинальный,
атрибут с перечисленными значениями (это предпочтительный
метод для дискретных атрибутов). Идентификаторы должны быть
разделены запятыми.
Игнорируемый. Это означает, что атрибут должен быть проигнорирован – он не будет использоваться. Это не поддерживается
RapidMiner, пожалуйста, используйте один из операторов выбора
атрибутов после загрузки, если вы хотите игнорировать атрибуты и
удалять их из загруженного набора примеров.
Считать BibTex. Этот оператор может читать файлы BibTeX. Он
использует инструменты, придуманные Stefan Haustein.
146
Считать DasyLab. Этот оператор позволяет импортировать данные из файлов DasyLab (.DDF) в RapidMiner. В настоящее время
поддерживается только универсальный формат 1. Внешние файлы
(.DDB) и данные гистограммы в настоящее время не поддерживаются.
Временная метка параметра позволяет настроить, следует ли
включать метку времени в набор примеров. Если он установлен как
относительный, атрибут timestamp фиксирует количество миллисекунд с момента начала файла. Если он установлен в абсолютный,
абсолютное время используется для отметки времени для примеров.
Считать URL. Этот оператор считывает пример из URL-адреса.
Формат должен быть CSV-форматом с «;» в качестве разделителя
столбцов и номинальные значения должны быть указаны с двойной
кавычкой («). Котировка внутри номинального значения должна
быть экранирована обратной косой чертой, \. Первая строка может
содержать имена столбцов, которые должны указываться соответствующим параметром. Комментарии не допускаются, неизвестные
значения атрибутов могут быть отмечены пустыми строками или
вопросительным знаком.
Этот оператор не так эффективен, как операторы ExampleSource
или SimpleExampleSource, но, с другой стороны, способен читать
данные из произвольных мест, если формат соответствует приведенной выше спецификации. Обратите также внимание на то, что
использование этого оператора вряд ли допускает правильное описание метаданных, которое может привести к проблемам, если метаданные между обучением и набором тестов отличаются в сценарии обучения.
Роли атрибута нельзя установить непосредственно во время загрузки, но оператор ChangeAttributeRole должен использоваться
после загрузки, чтобы изменить роли.
Считать Модель. Читает модель из файла, который был сгенерирован оператором типа Learner в предыдущем процессе. После
создания модели ее можно применить несколько раз к вновь полученным данным с помощью модельного загрузчика ExampleSource
и ModelApplier.
Считать модель Кластера. Считывает одну модель кластера из
файла.
Считать Веса атрибутов. Считывает веса для всех атрибутов набора примеров из файла и создает новый объект AttributeWeights IOObject. Этот объект можно использовать для масштабирования значений набора примеров с помощью оператора AttributeWeightsApplier.
147
Считать Конструкции. Загружает набор атрибутов из файла и
создает нужные функции. Если keep_all является ложным, исходные атрибуты удаляются до создания новых. Это также означает,
что выбор функции выполняется, если в файле задано подмножество исходных функций.
Считать вектор Производительности. Считывает вектор производительности из заданного файла. Этот вектор производительности должен был быть написан ранее с помощью PerformanceWriter.
Считать Параметры. Считывает набор параметров из файла,
который был написан ParameterOptimizationOperator. Затем он может быть применен к операторам процесса с помощью параметра
ParameterSetter.
Считать Пороговое значение. Читает пороговые значения из файла. Первая строка должна содержать пороговое значение, второе –
значение первого класса, второе – значение второго класса. Этот
файл можно записать в другом процессе с помощью ThresholdWriter.
Считать. Общий считыватель для всех типов IOObjects. Читает
IOObject из файла
5.6. Синтаксическая категория <Экспорт>
5.6.1. Синтаксис фрагмента языка < Экспорт >
Синтаксическая категория языка RAPIDMINER< Экспорт > содержит 18 операторов – терминальных символов. Схема выбора операторов приведена на рис. 5.49.
<Экспорт>:: = <Данные> |
<Модели> |
<Атрибуты> |
<Результаты> |
<Другое>
Записать
<Данные>::= Записать CSV |
Записать Excel |
Записать Access |
Записать AML |
Записать Arff |
Записать XRFF|
Записать Database|
Обновить Database|
Записать Специальный Формат
<Модели>::= Записать Модель
148
Рис. 5.49. Раскрытие оператора Export
Записать модель Кластера
<Атрибуты>::= Записать Веса атрибутов|
Записать Конструкции
<Результаты>::= Записать вектор Производительности
<Другое>::= Записать Параметры|
Записать Пороговое значение |
Записать данные в формате Gnuplot|
Записать
5.6.2. Семантика операторов
синтаксической категории <Экспорт >
Записать CSV. (CSV (от англ. Comma-Separated Values – значения, разделённые запятыми) – текстовый формат, предназначенный для представления табличных данных).
Этот оператор можно использовать для записи данных в CSVфайлы (значения, разделенные запятыми). Значения и столбцы разделяются символом «;». Отсутствующие значения данных обозначаются пустыми ячейками.
Записать Excel. Этот оператор можно использовать для записи данных в электронные таблицы Microsoft Excel. Этот оператор создает
149
файлы Excel, читаемые Excel 95, 97, 2000, XP, 2003 и более новыми.
Отсутствующие значения данных обозначаются пустыми ячейками.
Записать Access. Этот оператор записывает набор данных в базу
данных Microsoft Access с использованием JDBC-ODBC-Bridge.
Записать AML. (Файл AML является одним из файлов категории
Системные файлы. Его полное название это Microsoft Assistance
Markup Language).
Записывает значения всех примеров в файл. Можно создавать и
частые, и редкие форматы. Эти форматы можно читать с помощью
операторов Read AML и Read Sparse, соответственно.
Частый:
Каждая строка сгенерированного файла данных имеет вид
регулярные атрибуты <специальные атрибуты>
Например, каждая строка может иметь форму
value1 value2... valueN
<id><label><предсказание>
... <confidences>
Значения в скобках являются необязательными и печатаются
только в том случае, если они доступны. Приверженность предоставляется только для номинальных прогнозов. Другие специальные атрибуты могут быть примером веса или номера кластера.
редкие:
В файл записываются только значения, отличные от 0, с префиксом индекса столбца. Подробнее см. Описание SparseFormatExampleSource.
Записать Arff. (Данный файл использует формат ARFF (Attribute
Relation File Format) и включает в себя заголовок с типами (числовой, номинальная строка, дата) и информационную секцию со значениями. Файлы ARFF могут быть использованы для таких задач,
как кластеризация данных и регрессия).
Записывает значения всех примеров в файл ARFF, который может использоваться библиотекой машинного обучения Weka. Формат ARFF описан в операторе ArffExampleSource, который может
читать файлы ARFF, чтобы сделать их пригодными для использования с RapidMiner.
Записать XRFF. (Расширение связано с бесплатной утилитой
сбора данных Weka, написанной для платформы Java. Файл.xrff
хранит данные, сохраненные в формате простого текстового файла
XML. Он доступен для просмотра в простом текстовом редакторе).
Записывает значения всех примеров в файл XRFF, который может использоваться библиотекой машинного обучения Weka. Фор150
мат XRFF описан в операторе XrffExampleSource, который умеет
читать файлы XRFF, чтобы сделать их пригодными для использования с RapidMiner.
Обратите внимание, что запись атрибутов не поддерживается,
используйте другие операторы RapidMiner для загрузки и записи
атрибутов для этой цели.
Записать Database. Этот оператор записывает пример в базу данных SQL. Пользователь может указать соединение с базой данных
и имя таблицы. Обратите внимание, что таблица будет создана во
время записи, если она не существует.
Наиболее удобным способом определения необходимых параметров является мастер настройки. Этот главный мастер автоматически определит наиболее важные параметры (URL-адрес базы данных и имя пользователя). В конце вам нужно только определить
имя таблицы, а затем вы готовы.
Этот оператор поддерживает только запись полного набора примеров, состоящего из всех регулярных и специальных атрибутов и
всех примеров. Если это не желательно, перед применением этого
оператора выполните некоторые операции предварительной обработки, такие как фильтр атрибутов или примеров.
Обновить Database. Этот оператор обновляет ExampleSet в базе
данных SQL. Пользователь может указать соединение с базой данных, имена столбцов и ID столбцов.
Наиболее удобным способом определения необходимых параметров является мастер настройки. Этот главный мастер автоматически определит наиболее важные параметры (URL-адрес базы данных и имя пользователя).
Записать Специальный Формат. Используя параметр «special_
format», пользователь может указать точный формат. Знак $ имеет
особое значение и вводит команду (следующий символ). Дополнительные аргументы этой команды могут быть предоставлены в квадратные скобки.
$ a:
Все атрибуты, разделенные разделителем по умолчанию
$ a [разделитель]:
Все атрибуты, разделенные разделителем
$ s [разделитель] [indexSeparator]:
Редкий формат. Для всех ненулевых атрибутов конкатенируются следующие строки: индекс столбца, значение indexSeparator,
значение атрибута. Атрибуты разделяются разделителем.
$ v[имя]:
151
Значение атрибута с заданным именем (как регулярным, так и
специальным атрибутом)
$ k [индекс]:
Значение атрибута с данным индексом
$ l:
Метка
$ p:
Предсказанная метка
$ d:
Все предсказания для всех классов в форме conf (class) = value
$ d [класс]:
Удовлетворение прогноза для определенного класса как простого
номера
$ i:
Идентификатор
$ w:
Вес
$ b:
Серийный номер
$ n:
Символ новой строки
$ t:
Символ табуляции
$$:
Знак доллара
$ [:
Знак
$]:
Знак
Убедитесь, что строка формата заканчивается на $ n, если вы хотите, чтобы примеры были разделены символами новой строки.
Записать Модель. Записывает модель ввода в файл, указанный
соответствующим параметром. Поскольку модели часто записываются в файлы и загружаются и применяются в других процессах
или приложениях, этот оператор предлагает три разных режима записи для моделей:
XML: в этом режиме модели записываются в виде текстовых
XML-файлов. Размер файла обычно самый большой в этом режиме (может быть несколько сотен мегабайт, поэтому вы должны быть
осторожны), но этот тип модели имеет то преимущество, что пользователь может проверять и изменять файлы.
152
XML Zipped (по умолчанию): в этом режиме модели записываются в виде zip-файлов XML. Пользователи могут просто распаковать
файлы и прочитать или изменить содержимое. Размеры файлов для
большинства моделей минимальны. По этим причинам этот режим
является режимом записи по умолчанию для моделей, хотя время загрузки является самым длинным из-за разбора и распаковки XML.
Двоичные: в этом режиме модели записываются в собственном
двоичном формате. Полученные файлы модели не могут быть проверены пользователем, а размеры файлов обычно немного больше,
чем для файлов ZIP-файлов. Время загрузки, однако, меньше, чем
время, необходимое для других режимов.
Этот оператор также может хранить старые файлы, если для
флага перезаписи установлено значение false. Однако это также может быть достигнуто с помощью некоторых макросов параметров,
предоставляемых RapidMiner, таких как% {t} или% {a} (см. Раздел
руководства по макросам).
Записать модель Кластера. Записывает одну модель кластера в
файл.
Записать Веса атрибутов. Записывает вес всех атрибутов примера,
установленного в файл. Поэтому во входном сигнале этого оператора
необходим объект AttributeWeights. Каждая строка содержит имя одного атрибута и его вес. Этот файл можно прочитать в другом процессе, используя AttributeWeightsLoader и AttributeWeightsApplier.
Записать Конструкции. Записывает все атрибуты примера,
установленного в файл. Каждая строка содержит описание конструкции одного атрибута. Этот файл можно прочитать в другом
процессе с помощью FeatureGenerationOperator или AttributeConstructionsLoader.
Записать вектор Производительности. Записывает вектор производительности в заданный файл. Вы также можете использовать
оператор ResultWriter, который записывает все текущие результаты в основной файл результатов.
Записать Параметры. Записывает набор параметров в файл. Это
может быть создано одним из операторов оптимизации параметров,
например. GridSearchParameterOptimizationOperator. Затем он может быть применен к операторам процесса с помощью параметра
ParameterSetter.
Записать Пороговое значение. Записывает заданный порог в
файл. Первая строка содержит пороговое значение, второе – значение первого класса, второе – значение второго класса. Этот файл
можно прочитать в другом процессе с помощью ThresholdLoader.
153
Записать данные в формате Gnuplot. Записывает данные, сгенерированные ProcessLogOperator, в файл в формате gnuplot.
Записать. Общее средство записи для всех типов IOObjects. Записывает один из входных объектов в заданный файл.
5.7. Синтаксическая категория <Преобразование данных>
5.7.1. Синтаксис фрагмента языка <Преобразование данных>
Синтаксическая категория языка RAPIDMINER <Преобразование данных> содержит 114 операторов – терминальных символов.
Схема выбора операторов приведена на рис. 5.50, 5.51.
<Преобразование данных>::= <Преобразование имени и роли> |
<Преобразование типа> |
<Сокращение набора атрибутов и преобразование> |
<Изменение значения> |
<Очистка данных> |
<Фильтрация> |
<Сортировка> |
<Вращение> |
<Объединение> |
<Набор операций>
<Изменение имени и роли>:: = Переименование |
Переименование заменой |
Переименование универсальными именами |
Переименование конструкциями |
Рис. 5.50
154
Рис. 5.51
Переименование примерами значений |
Установка роли |
Роли обмена
<Преобразование типов>:: = < Дискретизация > |
Номинальный числовой |
Численный к биноминальному |
Численный к полиному |
Численный к действительности |
Численный к дате |
Действительный к целому |
Номинальный к биноминальному |
Номинальный к тексту |
Номинальный к дате |
Текст к номинальному |
Дата к числовому |
Дата к номинальному |
155
Разбор чисел |
Формат чисел |
Угадать типы
< Дискретизация >:: = Дискретизация по размеру |
Дискретизация путем бининга |
Дискретизация по частоте |
Дискретизация по спецификации пользователя |
Дискретизация энтропией
Рис. 5.52
156
<Сокращение набора атрибутов и преобразование>::= <Генерация> |
<Преобразование> |
<Выбор>
<Генерация>::= <Оптимизация> |
Генератор ID|
Генератор веса (стратификация) |
Генератор веса (локальная полиноминальная регрессия) |
Генератор пустого атрибута |
Генератор копирования |
Генератор атрибутов |
Генератор связей |
Генератор агрегации |
Генератор абсолютных величин |
Генератор результатов |
Генератор Гаусса |
Генератор набора функций |
Генератор TF-IDF |
Генератор индикаторов набора позиций
<Оптимизация путем генерации>::= Оптимизация (эволюционная агрегация) |
Оптимизация (генерация генетического алгоритма) |
Оптимизация (улучшенный генетический алгоритм) |
Оптимизация (еще один генеративный генетический алгоритм) |
Оптимизация (еще один генеративный генетический алгоритм 2)
<Преобразование>::= Анализ главных компонентов |
Анализ основных компонентов (ядро)|
Независимый компонентный анализ |
Обобщенный алгоритм Хебба|
Разложение сингулярной величины |
Самоорганизующаяся карта |
Преобразование Фурье
<Выбор>::= <Оптимизация> |
Изменение атрибутов |
Выбор атрибутов |
Выбор по весу |
Выбор случайным образом|
Удаление диапазона атрибутов |
Удаление ненужных атрибутов |
Удаление коррелированных атрибутов |
Работа над подмножеством
157
<Оптимизация выбора>::= Предварительный выбор |
Обратное устранение |
Оптимизация выбора |
Оптимизация выбора (грубая сила) |
Оптимизация выбора (на основе веса) |
Оптимизация выбора (эволюционная)
<Изменения значения>:: = <Изменение числового значения>|
<Изменение значения даты >|
<Модификация номинальной стоимости >|
Установка данных|
Объявить пропущенную стоимость
<Изменение числового значения>:: = Нормализация|
Денормализация|
Масштаб по весу
<Изменение значения даты>:: = Настройка даты
<Модификация номинальной стоимости>:: = Карта|
Рис. 5.53
158
Замещение|
Замещение (словарь)|
Обрезка|
Отделка|
Расщепление|
Соединение|
Добавление|
Изменение сопоставления биноминалов
<Очистка данных>:: = <Обнаружение выбросов>
Заменить отсутствующие значения|
Упущенные недостающие значения|
Заменить бесконечные значения|
Заполнение пробелов в данных|
Удалить неиспользуемые значения
<Обнаружение выбросов>:: = Обнаружение выбросов (Расстояния)|
Обнаружение выбросов (Плотности) |
Обнаружение выбросов (LOF)|
Рис. 5.54
159
Обнаружение выбросов (COF)|
<Фильтрация>:: = <Отбор проб> |
Примеры фильтров |
Удалить дубликаты |
Пример фильтра
<Отбор проб>:: = Образец|
Образец (стратифицированный)|
Пример (загрузка)|
Пример (на основе модели)|
Пример (Кеннард-Стоун)|
Разделить данные
<Сортировка>:: = Сортировка|
Сортировка по рангу Парето|
Перемешивание
<Чередование>:: = Вращение|
Преобразования|
Перенос
<Агрегирование>:: = Агрегация
<Установка операции>:: = Добавление|
Объединение|
Возврат|
Пересечение|
Объединение|
Супермножества|
Декартово произведение
5.7.2. Семантика фрагмента языка
<Преобразование данных>
Семантика операторов синтаксической категории <Генерация>
Generate ID (Генератор ID) – Этот оператор добавляет новый атрибут с ролью id в данный пример. В каждом примере на входе данный
пример помечен увеличенным идентификатором. Если атрибут с ролью id уже существует, он переопределяется новым атрибутом id.
Generate Weight (Stratification) (Генератор веса (стратификация)) – Этот оператор распределяет заданный вес по всем примерам,
так что веса суммируются поровну по метке.
Generate Weight (LPR) (Генератор веса (локальная полиноминальная регрессия)) – Этот оператор использует расстояние между
значением метки ярлыка и результатом локальной полиномиальной регрессии, чтобы определить вес этого примера.
160
Generate Empty Attribute (Генератор пустого атрибута) – Этот
оператор добавляет новый атрибут указанного имени и типа к вводу
данного примера.
Generate Copy (Генератор копирования) – Этот оператор генерирует копию атрибута. Исходный атрибут остается неизменным.
Generate Attributes (Генератор атрибутов) – Этот оператор создает новые определяемые пользователем атрибуты с использованием математических выражений.
Generate Concatenation (Генератор связей) – Этот оператор объединяет два атрибута в один новый атрибут, объединяя их значения.
Новый атрибут имеет номинальный тип. Исходные атрибуты остаются неизменными.
Generate Aggregation (Генератор агрегации) – Этот оператор генерирует новый атрибут, выполняя указанную функцию агрегации
для каждого примера выбранных атрибутов.
Generate Absolutes (Генератор абсолютных величин) – Этот
оператор создает новые определяемые пользователем атрибуты с использованием математических выражений.
Generate Products (Генератор результатов) – Этот оператор генерирует новые атрибуты, беря продукты указанных атрибутов.
Generate Gaussians (Генератор Гаусса) – Создает гауссовую
функцию, основанную на заданном атрибуте и заданную сигму
среднего и стандартного отклонения.
GenerateFunctionSet (Генератор набора функций) – Это оператор
генерации атрибутов, который генерирует новые атрибуты, применяя набор выбранных функций для всех атрибутов.
GenerateTFIDF (Генератор TF-IDF) – Этот оператор выполняет
TF-IDF-фильтрацию данного примера. TF-IDF – это числовая статистика, отражающая, насколько важно слово для документа.
Generate Item Set Indicators (Генератор индикаторов набора позиций) – Создает атрибуты из частых наборов элементов.
Семантика операторов синтаксической категории <Оптимизация путем генерации >
Optimize by Generation (Evolutionary Aggregation) (Оптимизация (эволюционная агрегация)) – Генерирующий генетический
алгоритм для неконтролируемого обучения (экспериментальный).
Optimize by Generation (GGA) (Оптимизация (генерация генетического алгоритма)) – Этот оператор может выбрать некоторые
атрибуты из исходного набора атрибутов, а также может генерировать новые атрибуты из исходного набора атрибутов. GGA (генера161
ция генетического алгоритма) не изменяет первоначальное количество атрибутов, если добавление или удаление (или то и другое)
атрибутов не подтверждают свою пригодность.
Optimize by Generation (AGA) (Оптимизация (улучшенный генетический алгоритм)) – Другой (улучшенный) генетический алгоритм для выбора функций и генерации признаков (AGA).
Optimize by Generation (YAGGA) (Оптимизация (еще один генеративный генетический алгоритм)) – Этот оператор может выбрать
некоторые атрибуты из исходного набора атрибутов, а также может генерировать новые атрибуты из исходного набора атрибутов.
YAGGA (еще один генерирующий генетический алгоритм) не изменяет исходное количество атрибутов, если добавление или удаление
(или то и другое) атрибутов оказывается более подходящим.
Optimize by Generation (YAGGA2) (Оптимизация (еще один генеративный генетический алгоритм 2)) – Этот оператор может
выбрать некоторые атрибуты из исходного набора атрибутов, а
также может генерировать новые атрибуты из исходного набора
атрибутов. YAGGA2 (еще один генерирующий генетический алгоритм 2) не изменяет первоначальное количество атрибутов, если
добавление или удаление (или то и другое) атрибутов оказывается
более подходящим. Этот алгоритм является улучшенной версией
YAGGA.
Семантика операторов синтаксической категории <Преобразование>
Principal Component Analysis (Анализ главных компонентов) –
Этот оператор выполняет анализ основных компонентов (PCA) с
использованием ковариационной матрицы. Пользователь может
указать величину дисперсии для покрытия в исходных данных,
сохраняя при этом наилучшее количество основных компонентов.
Пользователь также может указать вручную количество основных
компонентов.
Principal Component Analysis (Kernel) (Анализ основных компонентов (ядро)) – Этот оператор выполняет анализ основных компонентов ядра (PCA), который является нелинейным расширением
PCA.
Independent Component Analysis (Независимый компонентный
анализ) – Этот оператор выполняет независимый компонентный
анализ (ICA) данного примера с использованием FastICA-алгоритма
Хайваринена и Ойя.
Generalized Hebbian Algorithm (Обобщенный алгоритм Хебба) – Этот оператор представляет собой реализацию обобщенного
162
алгоритма Хебба (GHA), который является итерационным методом
вычисления основных компонентов. Пользователь может вручную
указать необходимое количество основных компонентов.
Singular Value Decomposition (Разложение сингулярной величины) – Этот оператор выполняет уменьшение размерности данного примера набора на основе сингулярного декомпозиции значений
(SVD). Пользователь может указать требуемое количество измерений или указать порог совокупной дисперсии. В последнем случае
все компоненты, имеющие кумулятивную дисперсию выше этого
порога, отбрасываются.
Self-Organizing Map (Самоорганизующаяся карта) – Этот оператор выполняет уменьшение размерности данного примера набора
на основе самоорганизующейся карты (SOM). Пользователь может
указать необходимое количество измерений.
Fourier Transformation (Преобразование Фурье) – Этот оператор использует метку как функцию каждого атрибута и вычисляет
преобразования Фурье как новые атрибуты.
Семантика операторов синтаксической категории <Выбор>
Reorder Attributes (Изменение атрибутов) – Этот оператор позволяет переупорядочить регулярные атрибуты данного примера.
Переупорядочение может выполняться в алфавитном порядке по
спецификации пользователя (включая регулярные выражения)
или с помощью ссылочного примера.
Select Attributes (Выбор атрибутов) – Этот оператор выбирает,
какие атрибуты данного примера должны быть сохранены и какие
атрибуты должны быть удалены. Это используется в случаях, когда
требуются не все атрибуты данного примера; он помогает вам выбрать необходимые атрибуты.
Select by Weights (Выбор по весу) – Этот оператор выбирает только те атрибуты входа данного примера, чьи веса удовлетворяют указанному критерию относительно входных весов.
Remove Attribute Range (Удаление диапазона атрибутов) – Этот
оператор удаляет ряд атрибутов из данного примера.
Remove Useless Attributes (Удаление ненужных атрибутов) –
Этот оператор удаляет ненужные атрибуты из примера. Пороги для
бесполезных атрибутов указаны пользователем.
Remove Correlated Attributes (Удаление коррелированных
атрибутов) – Этот оператор удаляет коррелированные атрибуты из
примера. Порог корреляции задается пользователем. Корреляция
является статистическим методом, который может показать, связаны ли и насколько сильно связаны пары атрибутов.
163
Work on Subset (Работа над подмножеством) – Этот оператор выбирает подмножество (один или несколько атрибутов) ввода данного
примера и применяет операторы в своем подпроцессе на выбранном
подмножестве.
Семантика операторов синтаксической категории <Изменения
значения>
SetData (Установка данных) – Этот оператор устанавливает значение одного или нескольких атрибутов указанного примера.
DeclareMissingValue (Объявить пропущенную стоимость) – Этот
оператор объявляет указанные значения выбранных атрибутов как
отсутствующие значения.
Семантика операторов синтаксической категории <Изменение
числового значения>
Normalize (Нормализация) – Этот оператор нормализует значения атрибутов выбранных атрибутов.
De-normalize (Денормализация) – Этот оператор вернет модель
нормализации, которая инвертирует данную модель нормализации.
ScalebyWeights (Масштаб по весу) – Этот оператор масштабирует входной пример набора в соответствии с заданными весами. Этот
оператор отбирает атрибуты с весом 0 и вычисляет новые значения
для числовых атрибутов в соответствии с заданными весами.
AdjustDate (Настройка даты) – Этот оператор корректирует дату
в указанном атрибуте путем добавления или вычитания указанного
количества времени.
Семантика операторов синтаксической категории <Оптимизация выбора>
Forward Selection (Предварительный выбор) – Этот оператор
выбирает наиболее релевантные атрибуты данного примера с помощью высокоэффективной реализации схемы прямого выбора.
Backward Elimination (Обратное устранение) – Этот оператор
выбирает наиболее релевантные атрибуты данного примера, используя эффективную реализацию обратной схемы.
Optimize Selection (Оптимизация выбора) – Этот оператор выбирает наиболее релевантные атрибуты данного примера. Для выбора
функции используются два детерминированных алгоритма выбора
жадных алгоритмов: «прямой выбор» и «обратная элиминация».
Optimize Selection (Brute Force) (Оптимизация выбора (грубая
сила)) – Этот оператор выбирает наиболее релевантные атрибуты
данного примера, используя все возможные комбинации выбора
атрибутов.
164
Optimize Selection (Weight-Guided) (Оптимизация выбора (на
основе веса)) – Добавляет итеративные функции в соответствии с
весами входных атрибутов.
OptimizeSelection (Evolutionary) (Оптимизация выбора (эволюционная)) – Этот оператор выбирает наиболее релевантные атрибуты данного примера. Для выбора функции используется генетический алгоритм.
Семантика операторов синтаксической категории <Модификация номинальной стоимости>
Map (Сопоставление) – Этот оператор сопоставляет указанные
значения выбранных атрибутов новым значениям. Этот оператор
может применяться как для численного, так и для номинального
атрибутов.
Replace (Замещение) – Этот оператор заменяет части значений
выбранных номинальных атрибутов, соответствующих указанному регулярному выражению, указанной заменой.
Replace (Dictionary) (Замещение (словарь)) – Этот оператор заменяет подстроки (в значениях) выбранных номинальных атрибутов
первого набора примеров с помощью словаря, указанного вторым
набором примеров.
Cut (Обрезка) – Этот оператор сокращает номинальные значения
указанных регулярных атрибутов. Полученные атрибуты имеют значения, которые являются подстроками исходных значений атрибута.
Trim (Отделка) – Этот оператор удаляет начальные и конечные
пробелы из значений выбранных номинальных атрибутов.
Split (Разделение) – Этот оператор создает новые атрибуты из выбранных номинальных атрибутов, разделяя номинальные значения
на части в соответствии с заданным критерием разделения.
Merge (Объединение) – Этот оператор объединяет два номинальных значения указанного регулярного атрибута.
Add (Добавление) – Этот оператор добавляет дополнительное
значение к указанному номинальному атрибуту, который затем отображается на определенный индекс.
RemapBinominals (Изменение сопоставления биноминалов) –
Этот оператор изменяет внутреннее сопоставление значений биномиальных атрибутов в соответствии с указанными отрицательными и положительными значениями.
Семантика операторов синтаксической категории <Очистка данных>
DetectOutlier (Distances) (Обнаружение выбросов (Расстояния)|) – Этот оператор идентифицирует n выбросов в данном приме165
ре набора на основе расстояния до их k ближайших соседей. Переменные n и k могут быть заданы через параметры.
DetectOutlier (Densities) (Обнаружение выбросов (плотности)) –
Этот оператор идентифицирует выбросы в данном примере набора
на основе плотности данных. Все объекты, имеющие по крайней
мере p долю всех объектов, расположенных дальше, чем расстояние
D, считаются выбросами.
DetectOutlier (LOF) (Обнаружение выбросов (LOF)) – Этот оператор идентифицирует выбросы в данном примере набора на основе
локальных коэффициентов выбросов (LOF). LOF основан на понятии локальной плотности, где местность определяется k ближайшими соседями, расстояние которых используется для оценки плотности. Сравнивая локальную плотность объекта с локальными плотностями его соседей, можно идентифицировать области с одинаковой плотностью и точки, которые имеют существенно более низкую
плотность, чем их соседи. Онисчитаютсявыбросами.
DetectOutlier (COF) (Обнаружение выбросов (COF)) – Этот оператор идентифицирует выбросы в данном наборе примеров на основе
коэффициентов исключения класса (COF).
ReplaceMissingValues (Заменить отсутствующие значения) –
Этот оператор заменяет отсутствующие значения в примерах выбранных атрибутов указанной заменой.
ImputeMissingValues (Упущенные недостающие значения) –
Этот оператор оценивает значения для отсутствующих значений
выбранных атрибутов, применяя модель, полученную для отсутствующих значений.
ReplaceInfiniteValues (Заменить бесконечные значения) – Этот
оператор заменяет бесконечные значения выбранных атрибутов
указанными заменами.
FillDataGaps (Заполнение пробелов в данных) – Этот оператор
заполняет пробелы (на основе атрибута ID) в данном примере, добавляя новые примеры в пробелы. Новый пример будет иметь нулевые значения.
RemoveUnusedValues (Удалить неиспользуемые значения) –
Этот оператор удаляет каждое номинальное значение, которое не
назначено ни одному примеру.
Семантика операторов синтаксической категории <Фильтрация>
Sample (Образец) – Этот оператор создает образец из примера,
путем случайного выбора примеров. Размер выборки может быть
определен по абсолютной, относительной и вероятностной основе.
166
Sample (Stratified) (Образец (стратифицированный)) – Этот оператор создает стратифицированный образец из примера. Стратифицированная выборка создает случайные подмножества и гарантирует, что распределение классов в подмножествах будет таким же,
как и во всем примере. Этот оператор нельзя применять на наборах
данных без метки или с числовой меткой. Размер выборки может
быть задан на абсолютной и относительной основе.
Sample (Bootstrapping) (Пример (Бустрапированный)) – Этот
оператор создает загрузочный образец из примера. Бутстрапированная выборка использует выборку с заменой, поэтому у образца
могут быть не все уникальные примеры. Размер выборки может
быть задан на абсолютной и относительной основе.
Sample (Model-Based) (Пример (на основе модели)) – Создает образец из набора примеров. Выборка основана на модели и сконструирована таким образом, чтобы сосредоточиться на примерах, которые еще не были объяснены.
Sample (Kennard-Stone) (Пример (Кеннард-Стоун)) – Этот оператор создает образец из данного примера, используя алгоритм Кеннарда-Стоуна. Размер выборки может быть задан на абсолютной и
относительной основе.
SplitData (Разделить данные) – Этот оператор выдает желаемое
количество подмножеств заданного набора примеров. Набор примеров разбит на подмножества в соответствии с указанными относительными размерами.
FilterExamples (Примеры фильтров) – Этот оператор выбирает,
какие примеры (например, строки) набора примеров необходимо сохранить и какие примеры следует удалить. Примеры, удовлетворяющие данному условию, сохраняются, остальные примеры удаляются.
RemoveDuplicates (Удалить дубликаты) – Этот оператор удаляет
повторяющиеся примеры из набора примеров, сравнивая все примеры друг с другом на основе указанных атрибутов. Два примера
считаются дублирующимися, если выбранные атрибуты имеют
одинаковые значения.
FilterExampleRange (Пример фильтра) – Этот оператор выбирает, какие примеры (например, строки) набора примеров необходимо
сохранить и какие примеры следует удалить. Примеры в пределах
указанного диапазона индексов сохраняются, остальные примеры
удаляются.
Семантика операторов синтаксической категории <Сортировка>
167
Sort (Сортировка) – Этот оператор сортирует входной пример набора в порядке возрастания или убывания в соответствии с одним
атрибутом.
SortbyParetoRank (Сортировка по рангу Парето) – Этот оператор сортирует заданный набор примеров по набору атрибутов, так
что примеры с преобладанием будут отсортированы после примеров
с недопустимым примером.
Shuffle (Перемешивание) – Этот оператор создает новый, перетасованный примерный набор из данного примера, создавая новую
копию данного примера в основной памяти.
Семантика операторов синтаксической категории <Чередование>
Pivot (Вращение) – Этот оператор вращает набор примеров, группируя несколько примеров одних и тех же групп в отдельные примеры.
De-Pivot (Преобразования) – Этот оператор преобразует примерный набор путем преобразования примеров выбранных атрибутов
(обычно атрибутов, которые измеряют один и тот же признак) в примеры одного атрибута.
Transpose (Перенос) – Этот оператор переносит входной пример,
т. е. текущие строки становятся столбцами выходного набора примеров, а текущие столбцы становятся строками выходного примера.
Этот оператор очень похож на хорошо известную операцию транспонирования для матриц.
Семантика операторов синтаксической категории <Агрегирование>
Aggregate (Агрегация) – Этот оператор выполняет функции агрегации, известные из SQL. Этот оператор предоставляет множество
функций в том же формате, что и функции агрегации SQL. Агрегированные функции SQL и предложения ГРУППИРОВКА ПО и ОБЛАДАНИЕ могут быть имитированы с использованием этого оператора.
Семантика операторов синтаксической категории <Установка
операции>
Append (Добавление) – Этот оператор создает объединенный набор примеров из двух или более совместимых примеров, добавляя
все примеры в комбинированный набор.
Join (Объединение) – Этот оператор объединяет два набора примеров, используя указанные ключевые атрибуты двух наборов примеров.
SetMinus (Возврат) – Этот оператор возвращает те примеры набора примеров (заданные в примере ввода входного порта), иденти168
фикаторы которых не содержатся в другом наборе примеров (заданном на вычитаемом порту). Необходимо, чтобы оба набора примеров
имели атрибут ID. Атрибут ID обоих наборов примеров должен быть
одного типа.
Intersect (Пересечение) – Этот оператор возвращает те примеры
первого набора примеров (заданные в примере ввода входного порта), идентификаторы которого содержатся в другом наборе примеров (заданном на втором порту). Необходимо, чтобы оба набора примеров имели атрибут ID. Атрибут ID обоих наборов примеров должен быть одного типа.
Union (Объединение) – Этот оператор строит объединение входных наборов примеров. Наборы входных примеров объединены таким образом, что атрибуты и примеры обоих наборов входных примеров являются частью результирующего набора примеров.
Superset (Супермножества) – Этот оператор принимает два примера набора в качестве ввода и добавляет новые функции первого
набора примеров во второй примерный набор и наоборот, чтобы сгенерировать два надмножества. Полученные супермножества имеют
одинаковый набор атрибутов, но примеры могут быть разными.
CartesianProduct (Декартово произведение) – Постройте декартово произведение двух примерных наборов. В отличие от атрибутов
идентификатора примера набора «Объединение», идентификаторы
атрибутов не нужны.
5.7.3. Примеры применения операторов
<Преобразование данных>
Пример 1
Generate ID (Генератор ID) – Этот оператор добавляет новый атрибут с ролью id в данный пример. В каждом примере на входе данный
пример помечен увеличенным идентификатором. Если атрибут с ролью id уже существует, он переопределяется новым атрибутом id.
Этот оператор добавляет новый атрибут с ролью id в пример.
Каждому примеру присваивается уникальный идентификатор.
Этот оператор обычно используется для однозначного определения
каждого примера. В каждом примере на входе объект помечен увеличивающимся идентификатором. Число, с которого начинается
идентификатор, можно контролировать с помощью параметра смещения. Можно назначить числовые и целочисленные идентификаторы. Если атрибут с ролью id уже существует на входе примера, он
переопределяется новым атрибутом id.
169
Оператор имеет один вход и два выхода.
Входы:
Example set input – этот входной порт ожидает пример. Он выводит оператор Retrieve (извлечение) в прилагаемый пример процесса.
Выходы:
Example set output – пример с атрибутом id выводится на этот порт.
Original – Пример, который был предоставлен как вход, передается без изменения на выход через этот порт. Обычно это используется
для повторного использования одного и того же примера в других операторах или для просмотра примера в рабочей области результатов.
Параметры:
– создание номинальных идентификаторов:
Этот параметр указывает, следует ли создавать именные идентификаторы вместо целых идентификаторов. По умолчанию этот параметр не установлен, поэтому по умолчанию создаются идентификаторы integer. Номинальные идентификаторы имеют формат id_1,
id_2, id_3 и т. д. Диапазон: булевый
– смещение:
Это экспертный параметр. Он используется, если вы хотите запустить идентификатор начиная с числа, отличного от 1. Этот параметр используется для установки значения смещения. По умолчанию оно равно 0, поэтому идентификаторы начинаются с 1 по умолчанию. Диапазон: целое
Создадим базу данных «Звуки» (рис. 5.55), состоящую из 10 записей с одним атрибутом и добавим к ним атрибут «ID» с помощью
оператора GenerateID (рис. 5.56, 5.57).
Рис. 5.55. Загрузка базы
170
Рис. 5.56. Составление процесса
Рис. 5.57. Результат работы
оператора
Пример 2
Generate Empty Attribute (Генератор пустого атрибута) – Этот
оператор добавляет новый атрибут указанного имени и типа к вводу
данного примера.
Оператор пустого атрибута создает пустой атрибут указанного имени и типа, который указан именем и параметром типа значения соответственно. Можно выбрать один из следующих типов:
номинальный, числовой, целочисленный, реальный, текстовый,
биномиальный, полиномиальный, дата, время и т. д. Обратите внимание, что все значения отсутствуют сразу после создания атрибута. Операторы, такие как оператор Set Data, могут использоваться для заполнения значений этого атрибута. Имя атрибута может
быть изменено позже оператором Rename, а также многие операции
преобразования типов также доступны для изменения типа атрибута. Этот оператор создает пустой атрибут, не зависящий от входного примера, если вы хотите сгенерировать атрибут из существу171
ющих атрибутов базы, вы можете использовать оператор Generate
Attributes (см. ниже).
Оператор имеет один вход и два выхода.
Входы:
Example set input – этот входной порт ожидает пример. Это вывод
оператора Retrieve в прилагаемом примере процесса. Вывод других
операторов также может использоваться как вход.
Выходы:
Example set output – пустой атрибут указанного имени и типа добавляется к вводу, и полученный пример доставляется через этот
выходной порт.
Original – пример, который был предоставлен как вход, передается без изменения на выход через этот порт. Обычно это используется для повторного использования одного и того же примера в
других операторах или для просмотра примера в рабочей области
результатов.
Парметры:
– name: этот параметр указывает имя нового атрибута. Обратите
внимание, что имена атрибутов должны быть уникальными. Убедитесь, что входной пример базы не имеет атрибута с тем же именем.
Диапазон: строка
– value type – тип нового атрибута указан этим параметром. Можно выбрать один из следующих типов: номинальный, числовой, целочисленный, реальный, текстовый, биномиальный, полиномиальный, путь к файлу, дата и время, дата, время. Диапазон: выбор.
Пропустим нашу базу «Звуки» через этот оператор (рис. 5.58).
В параметрах указываем имя нового атрибута (рис. 5.59).
Рис. 5.58. Составление процесса
Рис. 5.59. Параметры
172
Рис. 5.60. Результат работы оператора
Получаем результат – новый пустой атрибут с заданным именем
(рис. 5.60).
Пример 3.
Generate Absolutes (Генератор абсолютных величин) – Этот
оператор создает новые определяемые пользователем атрибуты с использованием математических выражений.
Оператор Generate Attributes создает новые атрибуты из атрибутов ввода примера и произвольных констант, используя математические выражения. Имена атрибутов ввода примера могут использоваться как переменные в математических выражениях для новых
атрибутов, заполняемых в параметрах атрибута. Во время применения этого оператора эти выражения оцениваются в каждом примере, эти переменные заполняются значениями атрибута примера.
Таким образом, этот оператор не только создает новые столбцы для
новых атрибутов, но также заполняет эти столбцы соответствующими значениями этих атрибутов. Если переменная не определена
в выражении, все выражение становится неопределенным и в нем
появляется знак «?».
Оператор имеет один вход и два выхода.
Входы:
Example set input – этот входной порт ожидает пример. Это вывод
оператора Retrieve в прилагаемом примере процесса. Вывод других
операторов также может использоваться как вход.
Выходы:
Example set output – на этом порту выводится пример с новыми
атрибутами.
Original – пример, который был предоставлен как вход, передается
без изменения на выход через этот порт. Обычно это используется для
173
повторного использования одного и того же примера в других операторах или для просмотра примера в рабочей области результатов.
Создадим новую базу «Числа» и составим процесс с использованием генератора абсолютных величин (рис. 5.61).
Зададим математическое выражение (рис. 5.62). Слева в графе
«Attribute name» вводим имя нового атрибута, в котором будет выводиться результат математического выражения. Если задать имя
уже существующего оператора, значения в нем заменятся на новые.
В графу «Function expressions» вводим математическое выражение
вручную или с помощью калькулятора (рис. 5.63).
Рис. 5.61. Составление процесса
Рис. 5.62. Математические выражения
Рис. 5.63. Результат работы
оператора
174
Рис. 5.64. Калькулятор
Калькулятор наглядно показывает, какие функции и какие
атрибуты доступны пользователю для создания математических
выражений. В нашем примере создадим атрибут «Результат», в который будут внесены значения атрибута «Числа», к которым прибавлено число 7. Результат показан на рис. 5.64.
Пример 4.
Select by Random (Выбор случайным образом) – Этот оператор
выбирает случайное подмножество атрибутов данного примера.
Оператор Select by Random случайным образом выбирает атрибуты из ввода примера. Если для параметра fixed number of attributes
установлено значение true, то необходимое количество атрибутов
указывается через количество параметров атрибутов. В противном
случае выбирается случайное число атрибутов. Рандомизация может быть изменена путем изменения начального значения в соответствующих параметрах. Этот оператор может быть полезен в сочетании с оператором Loop Parameters или может использоваться
как базовый уровень для сопоставлений тестов значимости для методов выбора объектов.
Оператор имеет один вход и два выхода.
Вход:
Example set input – этот входной порт ожидает пример. Это вывод
оператора Retrieve в прилагаемом примере процесса. Вывод других
операторов также может использоваться как вход. Очень важно,
чтобы метаданные были привязаны к данным для ввода, поскольку
атрибуты указаны в их метаданных. Оператор Retrieve предоставляет метаданные вместе с данными.
175
Выходы:
Example set output– на этом порту выводится пример с выбранными атрибутами.
Original – Пример, который был предоставлен как вход, передается без изменения на выход через этот порт. Обычно это используется для повторного использования одного и того же примера в
других операторах или для просмотра примера в рабочей области
результатов.
Параметры:
– use fixed number of attributes:
Этот параметр указывает, следует ли выбрать фиксированное количество атрибутов. Диапазон: булевый
– number of attributes:
Этот параметр доступен, только если для параметра use fixed
number of attributes установлено значение true. Этот параметр указывает количество атрибутов, которые должны быть выбраны случайным образом. Диапазон: целое
Возьмем базу из 100 записей с 8 атрибутами (рис. 5.65) и зададим количество выбранных случайным образом атрибутов равным
3 (рис. 5.66).
В результате, так как мы установили количество атрибутов равное трем, оператор случайным образом выбрал три атрибута из базы
(рис. 5.67).
Рис. 5.65. База данных
176
Рис. 5.66. Схема процесса
Рис. 5.67. Результат работы оператора
Пример 5.
Remove Attribute Range (Удаление диапазона атрибутов) – Этот
оператор удаляет ряд атрибутов из данного примера.
Оператор Remove Attribute Range удаляет атрибуты в указанном диапазоне. Первый и последний атрибуты диапазона определяются первым атрибутом и последними параметрами атрибута. Все
атрибуты этого диапазона (включая первый и последний атрибут)
будут удалены из примера. Важно отметить, что диапазон атрибутов начинается с 1. Это немного отличается от того, как атрибуты
подсчитываются в индексе таблицы, где подсчет начинается с 0. Таким образом, атрибуты первого и последнего должны быть указаны
тщательно.
Оператор имеет один вход и два выхода.
Входы:
Example set input – этот входной порт ожидает пример. Это вывод
оператора Retrieve в прилагаемом примере процесса. Вывод других
операторов также может использоваться как вход.
177
Рис. 5.68. Схема процесса
Рис. 5.69. Результат работы оператора
Выходы:
Example set output – на этом порту выводится пример с выбранными атрибутами, без удаленных из исходного примера.
Original – Пример, который был предоставлен как вход, передается без изменения на выход через этот порт. Обычно это используется для повторного использования одного и того же примера в
других операторах или для просмотра примера в рабочей области
результатов.
Параметры:
– first attribute:
Этот атрибут определяется первым атрибутом диапазона атрибутов, который должен быть удален. Счёт атрибутов начинается с 1.
Диапазон: целое число
– last attribute:
Последний атрибут диапазона атрибутов, который должен быть
удален, указан через этот параметр. Счёт атрибутов начинается с 1.
Диапазон: целое число.
Используем базу данных из 100 записей с 8 атрибутами
(рис. 5.65). В параметрах зададим в качестве первого атрибута атри178
бут №4, в качестве последнего – атрибут №6. Таким образом, оператор должен удалить атрибуты №4, 5 и 6 (рис. 5.68).
Полученный результат показан на рис. 5.69, три атрибута удалены.
5.8. Синтаксическая категория <Моделирование>
5.8.1. Синтаксис фрагмента языка <Моделирование>
Синтаксическая категория языка RAPIDMINER <Моделирование> содержит 129 операторов – терминальных символов. Схема
выбора операторов приведена на рис. 5.70, 5.71.
<Моделирование>::= <Прогнозирование>|
<Сегментация>|
<Ассоциация>|
<Корреляция>|
<Сходства>|
<Весовые характеристики>|
<Оптимизация>
<Прогнозирование>::= <Ленивое Прогнозирование > |
<Байесовский классификатор> |
<Деревья> |
<Правила> |
<Нейронные сети> |
<Функции> |
<Логистическая регрессия> |
<Метод опорных векторов> |
Рис. 5.70
179
Рис. 5.71
<Дискриминантный анализ> |
<Группы> |
Обновить модель |
Объединить модели |
Разъединить модели |
Создать формулу
<Ленивое Прогнозирование >::= Модель по умолчанию |
k-NN
<Байесовский классификатор>::= Наивный Байесовский
классификатор |
Наивный Байесовский
классификатор (ядро)
<Деревья >::= <Дерево принятия решений>|
Случайный лес|
Градиентные деревья |
CHAID |
ID3|
Пень решений |
Дерево принятия решений (многоуровневое) |
Дерево принятия решений (на основе весов)|
Случайное дерево
<Правила>::= Вывод правил методом индукции |
Вывод правил методом одной индукции |
180
Вывод правил методом одной индукции
(правило одного атрибута)|
Обнаружение подгруппы |
Дерево правил
<Нейронные сети>::= Глубокое обучение|
Нейронная сеть|
AutoMLP |
Перцептрон
<Функции>::= Обобщенная линейная модель |
Линейная регрессия |
<Полиномиальная регрессия>|
Вектор линейной регрессии|
Локальная полиномиальная регрессия|
Регрессия видимо не связанных данных|
Гауссовский процесс|
Отношение опорных вектор (ООВ)
<Логистическая регрессия>::= Логистическая регрессия|
Логистическая регрессия (МОВ)|
Логистическая регрессия
(Эволюционная)
<Методы опорных векторов>::= Метод опорных векторов|
Метод опорных векторов (LibSVM)|
Метод опорных векторов
(линейный)|
Метод опорных векторов
(эволюционный)|
Метод опорных векторов (PSO)|
Быстрый большой запас|
Гипер Гипер|
5.8.2. Семантика фрагмента языка RM
<Моделирование>
Семантика операторов синтаксической категории <Генерация>
– Default model – модель по умолчанию. Этот оператор генерирует модель, которая задает указанное значение по умолчанию в качестве прогнозируемого.
– k-NN. Этот оператор генерирует модель к ближайшим соседям
из набора входных примеров. Эта модель может быть моделью классификации или регрессии в зависимости от набора входных параметров.
181
5.8.3. Примеры применения операторов
<Моделирование>
Пример 1.
k-NN. Этот оператор генерирует модель k ближайших соседей из
набора входных примеров. Эта модель может быть моделью классификации или регрессии в зависимости от набора входных параметров.
Алгоритм может быть применим к выборкам с большим количеством атрибутов (многомерным). Для этого перед применением нужно определить функцию дистанции. Классический вариант определения дистанции – дистанция в евклидовом пространстве.
Однако разные атрибуты могут иметь разный диапазон представленных значений в выборке (например атрибут А представлен в
диапазоне от 0.1 до 0.5, а атрибут Б представлен в диапазоне от 1000
до 5000), то значения дистанции могут сильно зависеть от атрибутов с большими диапазонами. Поэтому данные обычно подлежат
нормализации. При кластерном анализе есть два основных способа
нормализации данных:
– Мини-макс нормализация.
x’=(x-MIN[X])/(MAX[X]-MIN[X])
В этом случае все значения будут лежать в диапазоне от 0 до 1.
Дискретные бинарные значения определяются как 0 и 1.
– Z-нормализация.
x’=(x-M[X])/ σ [X]
где σ – стандартное отклонение. В этом случае большинство значений попадет в диапазон (–3;3);
Для классификации каждого из объектов тестовой выборки необходимо последовательно выполнить следующие операции:
– Вычислить расстояние до каждого из объектов обучающей выборки.
– Отобрать k объектов обучающей выборки, расстояние до которых минимально.
– Класс классифицируемого объекта – это класс, наиболее часто
встречающийся среди k ближайших соседей.
Под задачу регрессии метод адаптируется довольно легко – на 3
шаге возвращается не метка, а число – среднее (или медианное) значение целевого признака среди соседей.
Примечательное свойство такого подхода – его ленивость. Это
значит, что вычисления начинаются только в момент классификации тестового примера, а заранее, только при наличии обучающих
примеров, никакая модель не строится. В этом отличие, например,
182
от ранее рассмотренного дерева решений, где сначала на основе обучающей выборки строится дерево, а потом относительно быстро
происходит классификация тестовых примеров.
Стоит отметить, что метод ближайших соседей – хорошо изученный подход (в машинном обучении, эконометрике и статистике
больше известно, наверное, только про линейную регрессию). Для
метода ближайших соседей существует немало важных теорем, утверждающих, что на «бесконечных» выборках это оптимальный
метод классификации. Авторы классической книги «The Elements
of Statistical Learning» считают kNN теоретически идеальным
алгоритмом, применимость которого просто ограничена вычислительными возможностями и проклятием размерностей.
В RapidMiner алгоритм построения задачи классификации с помощью метода к ближайших соседей следующий (рис. 5.72).
Рис. 5.72. Алгоритм k-NN
Рис. 5.73. Результаты k-NN
183
Рис. 5.74. Параметры kNN
Этот алгоритм позволяет решить задачу классификации, в которой каждому значению Golf-Testset сопоставляется ближайшее
значение соседа в Golf. В итоге, получается следующий результат
(рис. 5.73).
Результаты можно изменить, указав количество соседей и веса
(рис. 5.74), тогда полученная модель будет точнее.
Пример 2
Bayesian – Байесовский классификатор:
1. Naive Bayes – Наивный Байесовский классификатор. Этот оператор генерирует модель с использованием наивного Байесовского
классификатора.
В основе этого классификатора лежит теорема Байеса, которая
приведена ниже
P ( A|B ) =
P ( B|A ) P ( A )
P( B)
,
где P ( A ) – априорная вероятность гипотезы A (смысл такой терминологии см. ниже); P ( A|B ) – вероятность гипотезы A при наступлении события B (апостериорная вероятность);
P ( B|A ) – вероятность наступления события B при истинности
гипотезы A;
P ( B ) – полная вероятность наступления события B.
В зависимости от точной природы вероятностной модели, наивные байесовские классификаторы могут обучаться очень эффективно. Во многих практических приложениях для оценки параметров для наивных байесовых моделей используют метод максимального правдоподобия; другими словами, можно работать с наи184
вной байесовской моделью, не веря в байесовскую вероятность и не
используя байесовские методы.
Несмотря на наивный вид и, несомненно, очень упрощенные условия, наивные байесовские классификаторы часто работают намного лучше во многих сложных жизненных ситуациях.
Достоинством наивного байесовского классификатора является
малое количество данных для обучения, необходимых для оценки
параметров, требуемых для классификации.
Далее будет рассмотрена модель классификатора.
Вероятностная модель для классификатора – это условная модель
p ( C|F1,…, Fn ).
Над зависимой переменной класса C с малым количеством результатов или классов, зависимая от нескольких переменных F1,…,
Fn. Проблема заключается в том, что когда количество свойств n
очень велико или когда свойство может принимать большое количество значений, тогда строить такую модель на вероятностных
таблицах становится невозможно. Поэтому можно переформулировать модель, чтобы сделать её легко поддающейся обработке.
Используя теорему Байеса можно записать
p ( C ) p(F1,…, Fn | C)
p ( C|F1,…, Fn ) =
.
p ( F1,…, Fn )
На практике интересен лишь числитель этой дроби, так как знаменатель не зависит от C и значения свойств F1 даны, так что знаменатель – константа.
Числитель эквивалентен совместной вероятности модели
p ( C, F1,…, Fn ).
Эта формула может быть переписана следующим образом, используя повторные приложения определений условной вероятности
p=
p(F1,..Fn C)
( C, F1,…Fn ) p(C) =
= p ( C ) p ( F1 |C ) p(F2 ,…Fn=
| C, F1 )
= p ( C ) p ( F1 |C ) p ( F2 |C, F1 ) p(F3 ,=
…Fn | C, F1, F2 )
= p ( C ) p ( F1 |C ) p ( F2 |C, F1 )… p(Fn | C, F1=
, F2 , F3 ,…, Fn −1 )
185
Теперь можно использовать «наивные» предположения условной
независимости: предположим, что каждое свойство Fi условно независимо от любого другого свойства Fj при j≠ i. Это означает
(
)
p Fi |C, Fj = p ( Fi |C ).
Таким образом, совместная модель может быть выражена как
=
p ( C, F1,…, Fn ) p ( C ) p ( F1 |C ) p ( F=
2 |C ) p ( F3 |C )… p ( Fn |C )
n
= p ( C ) ∏ p(Fi |C).
i =1
Это означает, что из предположения о независимости, условное
распределение по классовой переменной C может быть выражено так
n
1
p ( C|F1,…, Fn ) =
p ( C ) ∏ p(Fi |C).
Z
i =1
где Z – это масштабный множитель, зависящий только от F1,…, Fn,
то есть константа, если значения переменных известны.
Все параметры модели могут быть аппроксимированы относительными частотами из набора данных обучения. Это оценки максимального правдоподобия вероятностей. Непрерывные свойства,
как правило, оцениваются через нормальное распределение. В качестве математического ожидания и дисперсии вычисляются статистики – среднее арифметическое и среднеквадратическое отклонение соответственно.
Если данный класс и значение свойства никогда не встречаются
вместе в наборе обучения, тогда оценка, основанная на вероятностях, будет равна нулю. Это проблема, так как при перемножении
нулевая оценка приведет к потере информации о других вероятностях. Поэтому предпочтительно проводить небольшие поправки во
все оценки вероятностей так, чтобы никакая вероятность не была
строго равна нулю.
Далее будет рассмотрен процесс применения классификатора в
RapidMiner (рис. 5.75).
Эта модель построена для прогнозирования того, состоится ли
игра в гольф от погодных условий. В итоге были получены следующие результаты (рис. 5.76).
Исходя из рисунка видно, что результаты прогнозирования расходятся для той же погоды, при которой игра состоялась.
186
Рис. 5.75. Наивный классификатор Байеса
Рис. 5.76. Результаты
2. NaiveBayes (Kernel) – Наивный Байесовский классификатор
(Ядро). Этот оператор генерирует модель ядра с помощью наивного
Байесовского классификатора с использованием оцененных плотностей ядра.
5.9. Синтаксическая категория <Оценка>
5.9.1. Синтаксис фрагмента языка < Оценка>
<Оценка>
187
<Оценка>::= <Ратификация, утверждение> |
<Оценка эффективности> |
<Значение> |
<Визуальная оценка>
<Ратификация, утверждение>::= <Разделенная проверка> |
<Х-проверка> |
<Начальная загрузка> |
<Серия Х-проверок > |
<Упаковка разделенной проверки > |
<Упаковка Х-проверки>
<Оценка эффективности>::= <Классификация и регрессия> |
<Атрибуты> |
<Кластеризация>
<Кластеризация>::= Производительность |
Производительность извлечения |
Совмещение представления |
Производительность пользователя |
Производительность минимум и максимум |
Производительность данных
<Классификация и регрессия>::= Определение производительности |
188
Определение
биноминального
представления |
Определение регрессии|
Определение затрат |
Определение рейтинга |
Определение вектора
производительности
<Атрибуты>::= Определение атрибутов производительности
<Кластеризация>::= Определение кластеризации |
Определение производительности |
Оъединение производительности |
Определение пользовательской
производительности |
Определение (min-max) |
Определение по данным
<Значение>::= T-тест |Дисперсионный анализ
<Визуальная оценка>::= Создать диаграмму|
Сравнить ROCs |
Визуализировать модель путем SOM
5.9.2. Семантика фрагмента языка < Оценка>
SplitValidation.
Этот оператор выполняет простую проверку, то есть случайным
образом разбивает ExampleSet на обучающий набор и набор тестов и
189
оценивает модель. Этот оператор выполняет раздельную проверку,
чтобы оценить производительность обучающего оператора (обычно
на невидимых наборах данных). Он в основном используется для
оценки того, насколько точно модель (полученная конкретным обучающим оператором) будет выполнять на практике.
X-Validation.
Этот оператор выполняет кросс-валидацию, чтобы оценить статистическую эффективность обучающего оператора (как правило,
на невидимых наборах данных). Он в основном используется для
оценки того, насколько точно модель (полученная конкретным обучающим оператором) будет выполнять на практике.
BootstrappingValidation.
Этот оператор выполняет валидацию после начальной загрузки
выборки набора учебных данных, чтобы оценить статистическую
эффективность обучающего оператора (как правило, на невидимых
наборах данных). Он в основном используется для оценки того, насколько точно модель (полученная конкретным обучающим оператором) будет выполнять на практике.
Batch-X-Validation.
Этот оператор выполняет кросс-валидацию, чтобы оценить статистическую эффективность обучающего оператора (как правило,
на невидимых наборах данных). Он в основном используется для
оценки того, насколько точно модель будет действовать на практике. Этот оператор не разбивает RandomSet случайным образом; он
разбивает ExampleSet на основе предопределенных партий.
WrapperSplitValidation.
Простой метод проверки для проверки производительности взвешивающего устройства или оболочки выбора.
Wrapper-X-Validation.
Этот оператор выполняет кросс-валидацию для оценки эффективности схемы взвешивания или выбора признаков. Он в основном
используется для оценки того, насколько точно схема будет выполняться на практике.
Performance (Classification).
Этот оператор используется для статистической оценки эффективности классификационных задач. Этот оператор предоставляет
список значений критериев эффективности задачи классификации.
Performance (BinominalClassification).
Этот оператор используется для статистической оценки производительности задач биномиальной классификации, то есть для задач
190
классификации, где атрибут метки имеет биномиальный тип. Этот
оператор предоставляет список значений критериев эффективности
биноминальной задачи классификации.
Performance (Regression).
Этот оператор используется для статистической оценки производительности регрессионных задач и предоставляет список значений
критериев эффективности регрессионной задачи.
Performance (Costs).
Этот оператор предоставляет возможность оценивать затраты на
классификацию для оценки эффективности классификационных
задач.
Performance (Ranking).
Этот оператор предоставляет значение производительности,
представляющее затраты для ранжирования соответствия истинной метки.
Performance (SupportVectorCount).
Этот оператор создал вектор производительности, содержащий
число поддерживающих векторов исходной модели ядра.
Performance (AttributeCount).
Этот оператор создает вектор производительности, содержащий
счетчик атрибутов ввода ExampleSet.
ClusterCountPerformance.
Обеспечивает производительность, основанную на количестве
кластеров.
ClusterDistancePerformance.
Этот оператор используется для оценки эффективности методов
кластеризации на основе центроидов. Этот оператор предоставляет
список значений критериев эффективности на основе центроидов
кластера.
ClusterDensityPerformance.
Этот оператор используется для оценки эффективности методов
кластеризации на основе центроидов. Этот оператор предоставляет
список значений критериев эффективности, основанных на плотности кластеров.
ItemDistributionPerformance.
Этот оператор используется для оценки эффективности плоских
методов кластеризации. Он оценивает кластерную модель, основанную на распределении примеров.
MapClusteringonLabels.
Этот оператор преобразует атрибут кластера в атрибут предсказания.
191
Performance.
Этот оператор используется для оценки производительности.
Этот оператор предоставляет список значений критериев эффективности. Эти критерии эффективности автоматически определяются
для соответствия типу учебной задачи.
ExtractPerformance.
Этот оператор можно использовать для получения показателя
производительности (в виде вектора производительности) из данного примера.
CombinePerformances.
Этот оператор принимает вектор производительности в качестве входных данных и возвращает вектор производительности,
содержащий взвешенное значение пригодности для указанных
критериев.
Performance (User-Based).
Этот оператор поставляет в качестве вывода список значений
производительности в соответствии со списком определяемых пользователем критериев эффективности.
Performance (Min-Max).
Этот оператор принимает вектор производительности и ставит
все критерии в критерий min-max, который поставляет минимум
вместо средних или произвольных взвешенных комбинаций.
PerformancetoData.
Этот оператор используется для преобразования вектора производительности, созданного оператором Performance, в набор примеров.
T-Test.
Этот оператор используется для сравнения векторов производительности. Этот оператор выполняет t-критерий для определения
вероятности нулевой гипотезы, то есть «фактические средства одинаковы».
ANOVA.
Этот оператор используется для сравнения векторов производительности. Он выполняет анализ теста дисперсии (ANOVA) для
определения вероятности нулевой гипотезы, то есть «фактические
средства одинаковы».
CreateLiftChart.
Этот оператор создает диаграмму подъема для данной модели
и ExampleSet на основе дискретизированных конфиденций и диаграммы Парето.
CompareROCs.
192
Этот оператор генерирует графики ROC для моделей, созданных
учащимися в его подпроцессе, и отображает все диаграммы в одном
плоттере для сравнения.
VisualizeModelby SOM.
Этот оператор генерирует SOM-график (путем преобразования
произвольного количества измерений в два) данного примера Set и
раскрашивает пейзаж с предсказаниями данной модели.
193
СПИСОК ЛИТЕРАТУРЫ
1. Андерсон Т. Введение в многомерный статистический анализ.
URL: www.ami.nstu.ru (дата обращения: 17.05.2018).
2. Дрейпер Н., Смит Г. Прикладной регрессионный анализ. Множественная регрессия Applied Regression Analysis. 3-е изд. М.: Диалектика, 2007. С. 912.
3. Дубров A. M., Мхитарян B. C., Трошин Л. И. Многомерные статистические методы. М.: Финансы и статистика, 2003, С. 352.
4. Kevin Arceneaux, Alan S. Gerber, Donald P. Green Comparing
Experimental and Matching Methods Using a Large-Scale Voter Mobilization Experiment. Oxford University Press, 2005.
5. Смирнов Н. В., Дунин-Барковский И. В. Курс теории вероятностей и математической статистики для технических приложений.
М.: Наука, 1969. 512 с.
6. Коутинхо С. Введение в теорию чисел. Алгоритм RSA. М.:
Постмаркет, 2001, 328 с.
7. Кендалл М., Стьюарт А. Статистические выводы и связи. М.:
Наука, 1973.
8. Айвазян С. А., Бухштабер В. М., Енюков И. С., Мешалкин Л. Д.
Прикладная статистика: Классификация и снижение размерности.
М.: Финансы и статистика, 1989. 607 с.
9. Боровиков В. П. Statistica. Искусство анализа данных, 2-е изд.,
СПб.: ПИТЕР, 2005. 688 с.
10. Афифи А., Эйзен С. Статистический анализ: Подход с использованием ЭВМ. М.: Мир, 1982. С. 488.
11. Толстова Ю. Н. Основы многомерного шкалирования. М.:
КДУ, 2006. 160 с.
12. Mitina O. V. Strukturnoe modelirovanie: sostojanie i perspektivy // Uchenye zapiski kafedry obschej psi) hologii fakulteta psihologii MGU. M.: Smysl, 2005.
13. STATISTICA 6. Статистический анализ данных. 2-е издание. М.: Бином, 2009. Халафян А.А. Анализ выживаемости. URL:
http://www. hr-portal.ru/statistica/gl14/gl14. php#1 (дата обращения: 17.05.2018).
14. Мак-Каллок У. С., Питтс В. Логическое исчисление идей,
относящихся к нервной активности / Под ред. К. Э. Шеннона и
Дж. Маккарти. М.: Изд-во иностр. лит., 1956. С. 363–384.
15. Горбань А. Н. Нейроинформатика: кто мы, куда мы идем, как
путь наш измерить // Вычислительные технологии. М.: Машиностроение. 2000, № 4, С. 10–14. Gorban A. N. Neuroinformatics: What
194
are us, where are we going, how to measure our way? The Lecture at the
USA-NIS Neurocomputing Opportunities Workshop, Washington DC,
July 1999 (Associated with IJCNN’99).
16. Миркес Е. М. Логически прозрачные нейронные сети и производство явных знаний из данных // Нейроинформатика / А. Н. Горбань, В. Л. Дунин-Барковский, А. Н. Кирдин и др. Новосибирск: Наука. Сибирское предприятие РАН, 1998, 296 с.
17. Минский М., Пейперт С., Персептроны = Perceptrons. М.:
Мир, 1971, 261 с.
18. Yoshua Bengio, Aaron Courville, Pascal Vincent Representation
Learning: A Review and New Perspectives, 2014.
19. Jordan M. I. Serial order: A parallel distributed processing
approach // Institute for Cognitive Science Report 8604. – University
of California, San Diego, 1986.
20. Борисюк Г. Н. и др. Осцилляторные нейронные сети. Математические результаты и приложения // Математическое моделирование. 1992. Т. 4. №1.
21. Elman J. L. Finding structure in time // Cognitive Science.
1990. С. 179–211.
22. Richard Lippmann. 1987. An introduction to computing with
neural nets // IEEE. Assp magazine.
23. Lau K. M., Chan S. M., Xu L. Comparison of the Hopfield scheme
to the hybrid of Lagrange and transformation approaches for solving
the travelling salesman problem. Proceedings of Intelligence in Neural
and Biological Systems, 1995.
24. How many kinds of Kohonen networks exist? Internet FAQ
Archives. Online Education.
25. Hecht-Nielsen R. (1990). Neurocomputing, Reading, MA: Addison-Wesley.
26. Kohonen T. (1989/1997/2001), Self-Organizing Maps, Berlin –
New York: Springer-Verlag. First edition 1989, second edition 1997,
third extended edition 2001.
27. Kohonen T. (1988). Learning Vector Quantization, Neural Networks, 1 (suppl 1), 303.
28. Isaac J. Sledge, Growing Neural Gas for Temporal Clustering //
IEEE, 2008.
29. Уоссермен Ф. Нейрокомпьютерная техника: Теория и практика = Neural Computing. Theory and Practice. М.: Мир, 1992, 240 с.
30. Fukushima К., Miyake S., Takayuki I. Neocognitron: A neural
network model for a mechanism of visual pattern recognition // IEEE.
Transaction on Systems, Man and Cybernetics SMC–13(5):826–34. 1983.
195
31. Moody J. and DarkenC. J., «Fast learning in networks of locally
tuned processing units», Neural Computation, 1, 281–294 (1989). Also
see Radial basis function networks according to Moody and Darken.
32. Carpenter G. A. & Grossberg S. (2003), Adaptive Resonance.
37. Как исследования нейронных сетей перешли из лабораторий
в компании? URL: https://postnauka.ru/faq/36677 (дата обращения:
17.05.2018).
38. Самоорганизация импульсных нейронных сетей URL:
https://postnauka.ru/video/47810 (дата обращения: 17.05.2018).
39. Gerstner, Wulfram and Kistler, Werner M. Spiking Neuron
Models: Single Neurons, Populations, Plasticity. – Cambridge, U.K.:
Cambridge university press, 2002.
40. Владимир Вьюгин. Математические основы теории машин­
ного обучения и прогнозирования. М.: МЦМНО, 2013. 390 с.
41. Scholkopf B., Ratsch G., Muller K., Tsuda K., Mika S. An Introduction to Kernel-Based Learning Algorithms IEEE Neural Networks,
12(2):181-201, May 2001.
196
ПРИЛОЖЕНИЕ
УСТАНОВКА ПРОГРАММНОГО ПАКЕТА RAPIDMINER
Установку программного пакета RapidMiner со свободной лицензией можно произвести с сайта my.rapidminer.com.
В разделе «Downloads» скачиваем нужную версию ПО. После этого запускаем установочный файл и следуем инструкциям на экране.
1. Выбор версии дистрибутива
На данный момент (сентябрь 2017), существует три продукта у
компании RapidMiner:
1. RapidMinerStudio;
2. RapidMinerServer;
3. RapidMiner Radoop.
Выбираем RapidMiner StudioFree, так как это бесплатная версия. Следует отдавать себе отчёт в том, что бесплатная версия обладает ограничениями по производительности и по количеству обрабатываемых строк по сравнению с платными версиями.
Выполним загрузку и настройку версии RapidMiner Studio 7.6.
Нажимаем на кнопку «Download» на сайте под выбранной версией.
2. Приведение в соответствие версии программного продукта с
вашей операционной системой (ОС)
Рис. 1. Варианты версий RapidMinerStudio
197
Рис. 2. Поддерживаемые RapidMiner Studio операционные системы
Чаще всего на персональном компьютере установлена ОС Windows 10 64bit. Выбираем соответствующую кнопку на сайте (рис. 2).
Заметим что, прежде чем удастся скачать установочные данные,
необходимо зарегистрироваться на сайте.
С этой целью нажимаем кнопку Register и попадаем в окно анкеты. В соответствии с шаблоном вводим имя и фамилию, e-mail и
придумываем пароль (рис. 3):
Выполнив регистрацию, скачиваем установщик программного
пакета RapidMiner Studio версии 7.6 для ОС Windows 10 64 bit.
3. Запуск программы установки.
После загрузки установщика запускаем процесс установки.
На первом шаге установки необходимо принять лицензионное
соглашение (рис. 5).
Внимательно читаем и переводим (по необходимости) лицензионное соглашение и принимаем его условия, в противном случае установить программу не удастся.
Следующим шагом выбираем место установки программного пакета (рис. 6).
После выбора места установки, запускается процесс «инсталяции», для этого следует нажать кнопку «Install».
198
Рис. 3. Регистрация
Рис. 4. Установка пакета RapidMiner Studio
199
Рис. 5 Лицензионное соглашение
Рис. 6. Выбор места расположения программы RapidMiner Studio
200
Процесс установки показан на рис. 7.
Завершение процесса установки показано на рис. 8.
4. Вход в аккаунт и начало работы с RapidMiner Studio
После установки, запускаем программу RapidMiner Studio. Высвечивается сообщение о том, что использование программы запрещено до тех пор, пока не будет выполнен вход в аккаунт (рис. 9).
Рис. 7. Процесс установки
Рис. 8. Завершение установки
201
Рис. 9. Вход в персональный аккаунт
Так как предварительно была выполнена процедура регистрации на сайте, то достаточно ввести логин и пароль, после этого попадаем на главную страницу программы.
Успешное завершение процесса установки пакета программ
RapidMiner Studio показано на рис. 10.
После запуска прораммы, пользователь попадает в главное меню
(рис. 11).
Следует убедиться в наличии и корректности вашей персональной лицензии на использование программного пакета RapidMiner
Studio (рис. 12).
Рис. 10. Успешное завершение установки
программного пакета RapidMiner Studio
202
Рис. 11. Главное окно программы RapidMiner Studio
Рис. 12. Сведения о лицензии
Процесс установки завершен успешно. Можно приступать к использованию программного пакета RapidMiner Studio.
203
СОДЕРЖАНИЕ
Введение.................................................................................... 1. Обзор методов статистического анализа данных........................... 1.1. Корреляционный анализ.................................................... 1.2. Регрессионный анализ........................................................ 1.3. Канонический анализ......................................................... 1.4. Методы сравнения средних................................................. 1.5. Дисперсионный анализ....................................................... 1.6. Частотный анализ.............................................................. 1.7. Кросстабуляция................................................................ 1.8. Анализ соответствий.......................................................... 1.9. Кластерный анализ............................................................ 1.10. Дискриминантный анализ................................................. 1.11. Факторный анализ........................................................... 1.12. Деревья классификации................................................... 1.13. Анализ главных компонент и классификация...................... 1.14. Многомерное шкалирование.............................................. 1.15. Моделирование структурными уравнениями....................... 1.16. Методы анализа выживаемости......................................... 1.17. Временные ряды.............................................................. 2. Обзор методов Data Mining........................................................ 2.1. История развития методов интеллектуального анализа
данных................................................................................... 2.2. Постановка задачи Data Mining........................................... 2.3. Интеллектуальный анализ данных...................................... 2.3.1. Модели ассоциативных правил................................... 2.3.2. Модели деревьев принятия решений............................ 2.3.3. Модели кластеров..................................................... 2.4. Обзор существующих методов интеллектуального анализа
данных................................................................................... 2.4.1. Методы искусственных нейронных сетей...................... 2.4.2. Методы деревьев решений, символьные правила........... 2.4.3. Методы ближайшего соседа и k-ближайших соседей...... 2.4.4. Метод опорных векторов............................................ 2.4.5. Метод байесовских сетей............................................ 2.5. Свойства методов Data Mining............................................. 2.6. Классификация методов Data Mining.................................... 2.6.1. Работа с данными...................................................... 2.6.2. Подход к обучению математических моделей................ 2.7. Статистические методы Data Mining..................................... 2.8. Кибернетические методы Data Mining. ................................. 2.9. Свойства методов Data Mining............................................. 3. Программный комплекс RAPIDMINER...................................... 3.1. Основные функции ETL-систем........................................... 3.2. Развитие пакета RapidMiner................................................ 204
3
10
12
13
14
15
16
17
19
19
20
21
22
22
23
24
25
27
28
30
30
31
32
33
34
35
36
37
47
62
67
70
74
75
75
77
77
78
80
83
86
92
3.3. Главные конкурентные преимущества RapidMiner................. 3.4. Экранная форма стартовой страницы RapidMiner................... 4. Синтаксис и семантика языка RapidMiner................................... 4.1. Главное меню RAPIDMINER............................................... 5. Описание операторов языка RAPIDMINER................................. 5.1. Синтаксис главного меню языка RAPIDMINER..................... 5.2. Синтаксическая категория <Управление процессом>............. 5.2.1. Синтаксис фрагмента языка <Управление процессом>... 5.2.2. Семантика операторов <Управление процессом>........... 5.2.3. Примеры применения операторов <Управление
процессом>....................................................................... 5.3. Синтаксис фрагмента языка RAPIDMINER – синтаксическая
категория <Утилиты>.............................................................. 5.3.1. Синтаксис фрагмента языка <Утилиты>...................... 5.3.2. Семантика фрагмента <Утилиты>............................... 5.3.3. Примеры применения операторов <Преобразование
данных>........................................................................... 5.4. Описание фрагмента языка RAPIDMINER – синтаксическая
категория <Доступ к хранилищу>............................................. 5.5. Синтаксис фрагмента языка RAPIDMINER – синтаксическая
категория <Импорт>................................................................ 5.5.1. Синтаксис фрагмента языка < Импорт >...................... 5.5.2. Семантика фрагмента языка RM <Импорт>.................. 5.6. Синтаксическая категория <Экспорт>.................................. 5.6.1. Синтаксис фрагмента языка < Экспорт >...................... 5.6.2. Семантика операторов синтаксической категории
<Экспорт >....................................................................... 5.7. Синтаксическая категория <Преобразование данных>........... 5.7.1. Синтаксис фрагмента языка <Преобразование данных>. 5.7.2. Семантика фрагмента языка <Преобразование данных>.
5.7.3. Примеры применения операторов <Преобразование
данных>........................................................................... 5.8. Синтаксическая категория <Моделирование>....................... 5.8.1. Синтаксис фрагмента языка <Моделирование>............. 5.8.2. Семантика фрагмента языка RM <Моделирование>....... 5.8.3. Примеры применения операторов <Моделирование>..... 5.9. Синтаксическая категория <Оценка>................................... 5.9.1. Синтаксис фрагмента языка < Оценка>........................ 5.9.2. Семантика фрагмента языка < Оценка>....................... Список литературы..................................................................... Приложение. Установка программного пакета RapidMiner............... 93
95
98
98
100
100
100
100
104
109
128
128
129
134
136
136
136
138
148
148
149
154
154
160
169
179
179
181
182
187
187
189
194
197
205
Учебное издание
Блюм Владислав Станиславович
Кандидат технических наук, старший научный сотрудник СПИИРАН,
доцент кафедры информационных технологий предпринимательства ГУАП
МЕТОДЫ ИНТЕЛЛЕКТУАЛЬНОГО
АНАЛИЗА ДАННЫХ
(пакет программ Rapid Miner)
Учебное пособие
Публикуется в авторской редакции.
Компьютерная верстка С. Б. Мацапуры
Сдано в набор 19.06.18. Подписано к печати 9.10.18.
Формат 60×84 1/16. Усл. печ. л. 11,97. Уч.-изд. л. 12,88.
Тираж 50 экз. Заказ № 430.
Редакционно-издательский центр ГУАП
190000, Санкт-Петербург, Б. Морская ул., 67
Документ
Категория
Без категории
Просмотров
28
Размер файла
4 109 Кб
Теги
blume, 0623b121b1
1/--страниц
Пожаловаться на содержимое документа