(Лаб.1)Базовые навыки работы в Deductor Studio 5.2. Практикум P. 002 Базовые навыки работы в Deductor Studio Базовые навыки работы в Deductor Studio 2
Скачать 1.76 Mb.
|
// (два слеша) и продолжается до конца строки. Многострочным комментарием считаются все символы, содержащиеся между скобками /* и */ (звездочка-слеш). Выражение можно ввести вручную с клавиатуры, однако удобнее выбирать функции, переменные и знаки операций с помощью мыши. Для добавления в формулу функций следует справа выбрать вкладку Функции. Все функции в ней сгруппированы по видам. Чтобы ввести функцию в выражение, достаточно дважды щелкнуть по ее имени в списке, либо, удерживая, перетащить ее мышью в нужную область формулы. Имя функции в выражении появляется вместе со скобками, куда следует ввести аргумент или аргументы. Аргументами могут быть числа в явном виде, строки в кавычках, даты в кавычках, имена функций, имена полей, а также арифметические, логические и строковые выражения. Имена полей удобно вводить с помощью двойного щелчка в списке полей. Если в аргументе несколько полей, то их имена разделяются точкой с запятой. В окне ввода выражения можно вывести подсказку – комбинация клавиш Ctrl +пробел. При создании формул при разработке сценариев очень часто используются функции IF и IFF. Базовые навыки работы в Deductor Studio 5.2 44 из 57 © 1995-2009 Компания BaseGroup™ Labs – При цитировании ссылка обязательна Функция Описание IF(Условие; Значение1; Значение2) Возвращает Значение1 , если Условие истинно или Значение2 , если Условие ложно. Результат функции имеет строковый тип. IFF(Условие; Значение1; Значение2) Возвращает Значение1 , если Условие истинно или Значение2 , если ложно. Результат функции может иметь любой тип. В том случае, когда нужно создать два новых столбца Поле1 и Поле2 , а Поле2 рассчитывается на основе Поля1 , необходимо создать два узла типа Калькулятор. Особенность работы узла при возникновении ошибок Создание новое поля при помощи Калькулятора на каком-либо наборе данных не означает, что в последствии не возникнут ошибки при расчете значений. Например, формула имела вид Поле1/Поле2 . Что будет, если в Поле2 окажется нулевое или пустое значение? Узел Калькулятор имеет следующее правило работы в таких ситуациях: при возникновении любой ошибки в расчете значения записи в рассчитываемое поле заносится значение NULL (пустое значение) и сообщение об ошибке не выдается. Это нужно учитывать при разработке и отладке сценариев. В случае, когда формула в Калькуляторе ссылается на несуществующий столбец, то будет выдано сообщение типа «Столбец "Имя" ("Название") должен существовать в исходном источнике данных» и узел не будет выполнен. Такое может случиться, например, когда набор данных, находящийся над узлом Калькулятор, поменял свою структуру или имена полей. Практическая работа: 1 Создайте новый проект. Импортируйте в него текстовый файл CreditSample.txt, идущий в поставке Deductor (по умолчанию расположен в каталоге /Samples директории установки Deductor). 2 Создайте новое поле Дата обработки , значения в котором равны текущей дате. 3 Создайте новое поле Размер ссуды у.е. , который рассчитывается делением на 30 поля Размер ссуды, руб. Все значения в новом поле должны быть округлены до второго знака. 4 Создайте новое поле Флаг , значение в котором истинно, если выполняется условие: Среднемесячный доход > 2000 и Наличие недвижимости = Да 5 Создайте еще один столбец, значение в котором равно 1, если выполняется условие: Флаг = TRUE и Давать кредит = FALSE 6 Создайте новое поле RATE , в котором хранится значение в поле Срок ссуды , возведенное в степень 0,6. 7 Создайте новое поле Сегмент , которое делит всех заемщиков на сегменты по следующим правилам (используйте функцию IF/IFF): 1) ЕСЛИ Возраст >= 50 и Среднемесячный доход < 6000 ТО Сегмент = Сегмент 1 2) ЕСЛИ Возраст < 30 и ТО Сегмент = Сегмент 2 3) Сегмент = Сегмент 3 во всех остальных случаях, не удовлетворяющим п. 1) и 2). Базовые навыки работы в Deductor Studio 5.2 45 из 57 © 1995-2009 Компания BaseGroup™ Labs – При цитировании ссылка обязательна Вопросы для проверки: 1 Для чего предназначен обработчик Калькулятор? 2 Как добавить новый столбец? 3 Какой символ используется для разделения параметров в функциях калькулятора? 4 Как ввести формулу для расчета значений столбца? 5 Как вывести подсказку для функции в окне создания выражений? 6 Чем отличаются функции IF и IFF? 7 Что делает функция ISNULL? 8 Как добавить существующее имя поля в формулу? 9 Как посмотреть описание той или иной функции? 10 Что делают следующие функции: NOW(), TODAY(), ROUND(), POW()? 11 Что будет, если в Калькуляторе создать новый столбец вещественного типа и написать для него формулу 15/0 ? Базовые навыки работы в Deductor Studio 5.2 46 из 57 © 1995-2009 Компания BaseGroup™ Labs – При цитировании ссылка обязательна З анятие 7. Использование скриптов Введение Скрипты предназначены для автоматизации процесса добавления в сценарий однотипных ветвей обработки. Это нужно в следующих случаях: § требуется выполнить часть сценария (т.е. последовательность узлов) на другом наборе данных; § требуется применить модель (дерево решений, нейронная сеть) на новых данных. Если повторное выполнение части сценария можно обойти, используя копирование веток, то в случае применения аналитической модели к новым данным без обработчика Скр ипт обойтись невозможно. По сути скрипт представляет собой динамическую копию выбранного участка сценария. Скрипт является готовой частью сценария, и поэтому входящие в него узлы не могут быть изменены отдельно от исходной ветки сценария. Тем не менее, в скрипте отражаются все изменения, вносимые в ветку, на которую он ссылается, т.е. при переобучении или перенастройке узлов этой ветки все сделанные изменения будут внесены в работу скрипта. Предположим, что после импорта данных из двух разных текстовых файлов требуется провести определенную предобработку (поменять названия столбцов, заменить данные, добавить несколько расчетный столбцов), а затем экспортировать полученные данные обратно. Для первой ветви (первого текстового файла) эти действия проводятся как обычно – последовательными шагами строится цепочка обработчиков. Для второго же источника (второго файла) достаточно создать узел импорта, к которому присоединить узел Скрипт, основанный на уже построенной первой ветви. В этом скрипте будут выполнены точно такие же действия, как в оригинальной ветви. На выходе скрипта ставится узел экспорта, и вторая ветвь обработки готова к использованию. Эту идею иллюстрирует рисунок ниже. На рисунке показана схема выполнения ветви со скриптом, включающего три узла из другой ветки сценария. Сначала (до узла со скриптом) последовательно выполняются узлы второй ветки. Затем осуществляется переход на начальный узел скрипта, находящийся в Ветви 1 Далее последовательно выполняются уже узлы первой ветки, пока не будет достигнут конечный узел скрипта. После этого осуществляется возврат к Ветви 2 на следующий после 1 Ветвь 1 Ветвь 2 Скрипт 2 3 Выполнение ветви 1 Выполнение ветви 2 Базовые навыки работы в Deductor Studio 5.2 47 из 57 © 1995-2009 Компания BaseGroup™ Labs – При цитировании ссылка обязательна скрипта этап обработки, и выполнение продолжается. На ход выполнения первой ветви скрипт при этом не оказывает никакого влияния. Особенность использования скрипта вместо копирования ветви заключается в том, что внесенные в главную ветвь изменения автоматически наследуются всеми скриптами, которые ссылаются на узлы главной ветви. В большинстве случаев это преимущество, однако, иногда при создании сценариев необходимо именно копирование узлов. Аналогом скрипта является функция или процедура в языках программирования. Ветвь обработки строится один раз, а затем скриптами она тиражируется в другие места сценария. Обработчик Скр ипт находится в группе узлов Прочее. Создание и настройка скрипта Настройка скрипта состоит из следующих шагов. Шаг 1. Задание начального узла обработки и соответствия полей. Это осуществляется в окне Настро йка начально го этапа и соответс твия стол бцов мастера обработки узла Скр ипт. Для выбора начального узла нужно нажать кнопку , после чего на экране появится окно Выбор узла. В этом окне показано все дерево сценария. Кнопка Ok подтверждает выбор текущего узла в качестве начального узла скрипта, кнопка Отмена закрывает окно, не внося изменений. При выборе начального узла существуют следующее ограничение: начальным узлом может быть только узел обработчика (узел импорта или экспорта данных не может быть выбран). В случае, когда исходный набор данный имеет меньшее число столбцов, чем начальный компонент цепочки, на экран будет выдано предупреждение: Базовые навыки работы в Deductor Studio 5.2 48 из 57 © 1995-2009 Компания BaseGroup™ Labs – При цитировании ссылка обязательна Количество столбцов начального компонента цепочки не должно быть больше чем количество столбцов исходного набора данных. При этом в момент обработки скрипта будет принята попытка выполнить с имеющимся набором полей. Если какое-то из отсутствующих полей является критичным для любого узла, содержащегося в скрипте, то обработка будет остановлена с выдачей сообщения об ошибке. Под исходным набором данных подразумевается тот набор данных, к которому применяется обработчик Скр ипт, под начальным компонентом цепочки – набор данных, на который настраивается Скр ипт. После выбора начального узла следует задать соответствия столбцов исходного набора данных полям выбранного узла. В нижней части экрана находится таблица со списком полей исходного набора в левом столбце и полей выбранного узла – в правом. Для каждого поля начального узла надо задать поле-источник исходного набора. Для этого следует, щелкнув два раза в левом столбце напротив имени нужного поля, выбрать из выпадающего списка имя столбца входного набора. Мастер обработки узла Скрипт устроен так, что пытается автоматически сопоставить поля в источниках, совпадающие по названию и/или типу. Настроить соответствия столбцов, которые имеют различный тип, невозможно. Исключение имеется только для типов целый и вещественный, однако рекомендуется всегда настраивать соответствие столбцов, имеющих одинаковый тип (т.е. целый-целый, вещественный-вещественный). Возможна ситуация, когда столбцам начального компонента цепочки нет сопоставимых столбцов в исходном наборе данных. В такой ситуации система выдаст следующее сообщение: «Столбцам начального компонента цепочки нельзя сопоставить столбцы исходного набора данных». При этом в момент обработки скрипта будет принята попытка выполнить с имеющимся набором полей. Если какое-то из отсутствующих полей является критичным для любого узла содержащегося в скрипте, то обработка будет остановлена с выдачей сообщения об ошибке. Шаг 2. Этап настройки информационных полей. Это необязательный шаг мастера, который появляется в том случае, когда исходный набор данных содержит большее количество полей, чем набор данных, являющийся начальным компонентом цепочки. Под информационными полями понимаются те поля, которые не будут использоваться в скрипте, но которые будут помещены в результирующий набор данных. Базовые навыки работы в Deductor Studio 5.2 49 из 57 © 1995-2009 Компания BaseGroup™ Labs – При цитировании ссылка обязательна Шаг 3. Задание конечного узла обработки. Здесь существуют следующие правила. § Начальный и конечный узлы должны находится на одной ветви сценария , т.е. конечный узел должен являться потомком начального узла в дереве сценария. § Конечным узлом не может являться узел экспорта. § На число и типы промежуточных узлов не накладывается никаких ограничений, т.е. промежуточными узлами могут быть и скрипты. Шаг 4. Запуск процесса обработки. На данном шаге запускается собственно процесс выполнения скрипта. В секции Последовательность этапов обработки показан список всех узлов, входящих в скрипт. Узлы, которые еще не выполнялись, отображаются с серыми иконками, выполненные – с цветными. Имя текущего обрабатываемого узла отображается жирным шрифтом. Если процесс обработки остановился, это сигнализирует о возможных проблемах. Остановка может произойти в случае несоответствия типов данных алгоритму обработки, наличия в обрабатываемых полях недопустимых значений и т.д. В этом случае возможно появление окна с сообщением об ошибке. Если обработка данных была завершена успешно, то в секции Название процесса появится сообщение «Успешное завершение» Базовые навыки работы в Deductor Studio 5.2 50 из 57 © 1995-2009 Компания BaseGroup™ Labs – При цитировании ссылка обязательна Практическая работа: 1 Создайте новый проект. Импортируйте в него текстовый файл T rade.txt, идущий в поставке Deductor (по умолчанию расположен в каталоге /Samples директории установки Deductor). 2 Добавьте после узла импорта 2-3 обработчика из изученных ранее. 3 Импортируйте в него текстовый файл T radeSales.txt, (он расположен там же). Добавьте к нему поле Номер строки (используйте функцию калькулятора RowNum()). 4 Добавьте к набору данных скрипт, выполняющий те же действия с набором данных, что и в п. 2. Вопросы для проверки: 1 Для чего предназначен обработчик Скр ипт? 2 В каких случаях возникает необходимость добавить в сценарий скрипт? 3 Что такое исходный набор данных, начальный и конечный узел при настройке обработчика Скр ипт? 4 Чем отличается копирование ветви от применения скрипта? 5 Можно ли настроить соответствия столбцов, которые имеют различный тип? 6 Какие ограничения накладываются на выбор конечного узла обработки в скрипте? Базовые навыки работы в Deductor Studio 5.2 51 из 57 © 1995-2009 Компания BaseGroup™ Labs – При цитировании ссылка обязательна Занятие 8. Групповая обработка Узел Гр упповая обрабо тка работает похожим на Скр ипт образом. Основным отличием от него является то, что входной набор делится на части по указанным группам, и затем каждая группа отдельно «прогоняется» через копию цепочки узлов обработки. Если аналогом скрипта является процедура в языке программирования, то аналогом групповой обработки – цикл. Групповая обработка позволяет создавать очень гибкие сценарии, особенно она незаменима в тех случаях, когда нужно обрабатывать отдельные «пачки» данных внутри одного набора в зависимости от статистических характеристик каждой такой «пачки» (сумма, среднее, количество записей и т.д.). Рассмотрим групповую обработку на конкретном примере. Импортируем в Deductor текстовый файл T rade.txt (по умолчанию он расположен в каталоге /Samples ). Фрагмент набора данных приведен ниже в таблице. Дата (Год + Месяц) Количество 2000-М01 462 523,419 2000-М02 633 208,196 2000-М03 660 159,299 2000-М04 617 455,341 2000-М05 597 354,479 … … Отсортируем его по возрастанию по полю Дата (Год + Месяц) . Далее из этого поля узлом Калькулятор выделим год, создав новое поле с функцией SUBSTR(COL1;1;4). Пусть перед нами стоит задача: рассчитать для каждого месяца каждого года (т.е., по сути, строки набора данных) долю и долю с накоплением от годовой суммы в пределах одного года. Ситуация характеризуется тем, что у нас не один год, а несколько: с 2000 по 2004. Воспользуемся Групповой обработкой. Для наглядности сначала проделаем все необходимые действия над одной группой, скажем, 2000 год, а затем «распространим» эти действия на весь исходный набор данных. Сперва мы выделили эту группу фильтром и последовательно добавили два поля двумя калькуляторами: Доля (PART) : ROUND(COL2/Stat("COL2";"SUM")*100;2), и Накапливающаяся доля (CUM_PART) : Базовые навыки работы в Deductor Studio 5.2 52 из 57 © 1995-2009 Компания BaseGroup™ Labs – При цитировании ссылка обязательна CumulativeSum("PART"). Далее добавим к исходному набору данных узел Групповая обработка. На первом шаге нужно указать поля для определения групп при обработке данных. В нашем случае это поле Год На следующей вкладке укажем начальный этап обработки – узел с меткой Калькулятор: Доля Конечным узлом будет Калькулятор: Накапливающаяся доля Базовые навыки работы в Deductor Studio 5.2 53 из 57 © 1995-2009 Компания BaseGroup™ Labs – При цитировании ссылка обязательна В результате групповой обработки получим следующий набор данных (на рисунке изображен фрагмент набора). Обратите внимание – накапливающаяся доля доходит до 100% в каждом году, и «сбрасывается» с началом нового года. Таким образом, мы получили желаемый результат. Без групповой обработки получить это было бы гораздо сложнее. На первой вкладке мастера настройки узла были доступны три опции. Разберем их детальнее. Флаг Переобучать модель всегда и для кажд ой группы актуален, когда в цепочке узлов, на которые ссылается групповая обработка, имеются какие-либо модели – линейная регрессия, нейронная сеть и так далее. Поэтому в случае простых действий – Калькулятор, |