ПРЕОБРАЗОВАНИЕ ДАННЫХ.docx
Document Details
Uploaded by Deleted User
Tags
Full Transcript
ПРЕОБРАЗОВАНИЕ ДАННЫХ.Лабораторная работа №2 ============================================ Методические указания --------------------- ### Теоретические основы В том или ином виде пакет RapidMinerStudio предназначен для обработки входных данных. Рассмотрим их возможную классификацию (рисунок 15)....
ПРЕОБРАЗОВАНИЕ ДАННЫХ.Лабораторная работа №2 ============================================ Методические указания --------------------- ### Теоретические основы В том или ином виде пакет RapidMinerStudio предназначен для обработки входных данных. Рассмотрим их возможную классификацию (рисунок 15). Рисунок -- Виды входных данных для интеллектуального анализа Простейшим вариантом исходных данных для интеллектуального анализа является дискретный числовой ряд [*x*\[*n*\]]{.math.inline}. Он представляет собой конечную или бесконечную последовательность дискретных отсчетов некого процесса обычно являющегося функцией времени. Если последовательность бесконечная, то речь может идти об обработке ее фрагмента (выборки) конечной длины из [*N*]{.math.inline} отсчетов. Такая обработка может вестись в обычном режиме, когда обрабатываются пакеты изпоследовательных выборокиз [*N*]{.math.inline} отсчетов, так и в скользящем, когда на каждом цикле обработки из выборки исключается первый элемент[*x*\[*n*\]]{.math.inline}, а в ее состав включается элемент [*x*\[*n* + *N* + 1\]]{.math.inline}. Дискретный числовой ряд может быть как детерминированным, так и случайным. Исходя из целей обучения, а также, принимая во внимание соображения по предстоящему тестированию создаваемого программного обеспечения, удобно использовать детерминированные временные ряды. В этом случае результат работы системы хорошо интерпретируется пользователем. Предполагается, если преобразование входных данных во входные задано очевидным математическим оператором, то и результат работы системы легко проверяется. В таблице 1 приведены варианты задания различных дискретных последовательностей, которые могут быть использованы для исследований. Память ЭВМ представляет собой последовательность скомпонованных из триггеров самостоятельных ячеек размером один или два байта. Как следствие, информация в памяти вычислительной установки хранится в виде двоичных чисел. Каждая ячейка имеет свой номер, который обычно называют ее адресом. Максимально допустимое количество адресов в составе компьютера может быть достаточно большим, но, в силу особенностей конструкции вычислительной установки, кратным числу [2^*n*^]{.math.inline}.Таблицы обрабатываемых пакетом RapidMinerданных размещаются в памяти вычислительной установки в строго определенном формате. В терминологии RapidMiner строки называются examples, а колонки attributes. Каждая колонка имеет стандартный набор собственных параметров.Иногда их также называют атрибутами. Использовать конкретный физический адрес памяти для обращения к конкретной ячейке оказывается неудобным. В практике программирования традиционно применяется прием, использующий так называемые идентификаторы. Под идентификатором понимается символическое имя ячейки памяти. Параметром колонки может быть ее идентификатор (Name). Фактически он представляет собой имя колонки, используемое при выполнении действий с таблицами. Каждая система программирования имеет свои правила составления идентификаторов. В RapidMiner правила составления идентификаторов позволяют записывать идентификаторы как латынью, так и кириллицей строчными и прописными буквами. Еще одним параметром являются так называемый тип данных. Под типом данных обычно понимают способ кодирования информации пользователя в памяти ЭВМ. В зависимости от решаемой задачи приходится хранить или целые и дробные числа, или коды символов. Для хранения единицы данных в зависимости от ее размера может использоваться несколько последовательных ячеек памяти. Целью выполнения лабораторной работы является изучение типов данных, используемых в RapidMiner, а также методов их преобразования от одного типа к другому. Типы данных (Types) RapidMiner во многом совпадает с типами данных, используемыми в языках программирования высокого уровня или системах управления реляционными базами данных и представлен в таблице 2 Количество бит памяти, используемых для хранения единицы данных конкретного типа, представлено в колонке Размер и определяется способом кодирования. Типы данных в RapidMiner имеют иерархию, показанную на рисунке 16. В среде RapidMiner присутствуют числовые(Numeric) и номинальные (Nominal) типы данных. К числовым типам данных относятся целочисленный тип (Integer), вещественный (Real), дат и времени (date, time, date\_time). Номинальные типы данных -- это переменные категориального типа, рассматриваемые как отдельные символы или просто имена. С номинальными типами данных нельзя выполнять арифметические операции. К этим типам относится привычный широко распространенный текстовый тип (Text), а также специальные типы данных предназначенные для хранения категориальных (тоже текстовых) нечисловых значений. К ним относятся тип данных биноминальный (Binominal), хранящий только два различных значения, и полиноминальный (Polynominal) предназначенный для хранения конечного числа значений. Например, цвет радуги является категориальным типом данных, поскольку принимает такие значения, как красный, зеленый, синий и т.д. Важно отметить, что полиномиальное/биноминальное значение всегда является номинальным, но не наоборот. Рисунок -- Типы данных языка RapidMiner Таблица -- Типы данных RapidMiner Название Описание Пример Размер (бит) ------------- ---------------------------------------------------------------------------------------------- ------------------------------------------------ -------------- nominal Все виды текстовых значений полиноминальные и биноминальные) истина / ложь, красный, зеленый, синий, желтый 16 numeric Все виды числовых значений (дата, время, целые и дробные) 23, 11.23, 23.12.2014 17:59 32 integer Целые числа 23, -5 или 11 024 768 32 real Дробные числа 11.23 или -0,0001 64 text Случайный свободный текст без структуры. Позволяет отличать текст от полиноминальных данных. ФИО, название 16 binominal Частный случай текстовых данных допускающий только два значения истина / ложь или да / нет 8 polynominal Частный случай биноминальных данных больше, чем с двумя значениями красный, зеленый, синий, желтый 16 date\_time И дата, и время 23.12.2014 17:59 64 date Дата без времени 23.12.2014 24 time Время без даты 17:59 24 ### Описание инструмента Пакет RapidMinerсоздан с использованием объектно-ориентированной технологии и предусматривает графический метод программирования. С помощью графических возможностей дисплея пользователь составляет программу в виде набора операторов и связей между ними. Связи задают последовательность выполнения алгоритма обмена данными, а сами данные представляют собой стандартные для пакета структуры, оформленные в виде объектовкласса ExampleSet. Общее количество таких операторов достаточно велико и с их полным перечнем можно ознакомиться просматривая содержимое вкладки Operatorsрисунок 5. Учитывая тему настоящей лабораторной работы, в первую очередь имеет смысл изучить содержимое вкладокBlending/ Attributes, которые содержат операторы, необходимые для работы с данными. В дальнейшем программирование будет сводиться к перетаскиванию мышкой на рабочее поле необходимых операторов и установлению соединений. Поскольку каждый тип данных использует свой способ кодирования, при составлении программ иногда приходится делать переход от данных одного типа к другим без потери их смыслового значения. Такой переход называется преобразованием данных. При использовании RapidMiner преобразование данных реализуется за счет набора специальных функций. Их краткое описание представлено в таблице3в том порядке, как они размещены в папке Blending / Attributes / Types, а полное с упорядочением по алфавиту имеется в приложении А. Таблица -- Операторы преобразования данных в RapidMiner Название Краткое описание оператора -------------------------- ------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------ Numerical to Binominal Изменяет тип выбранных числовых атрибутов на биноминальный тип и отображает все значения этих атрибутов как биноминальные значения. Numerical to Polynominal Изменяет тип выбранных числовых атрибутов на полиноминальный тип и. отображает все значения этих атрибутов как полиномиальные значения. Этот оператор просто меняет тип выбранных атрибутов; если вам нужен более сложный метод нормализации, используйте операторы дискретизации. Numerical to Real Изменяет тип выбранных числовых атрибутов на реальный тип и отображает все значения этих атрибутов как значения типа Real. Numerical to Date Преобразует выбранный номинальный атрибут в выбранный тип даты и времени. Номинальные значения преобразуются в значения даты и/или времени. Это преобразование выполняется относительно указанной строки формата даты. Real to Integer Изменяет тип выбранных атрибутов типа Real на целочисленный тип отображает все значения этих атрибутов как целочисленные. Nominal to Binominal Изменяет тип выбранных номинальных атрибутов на биноминальный тип и отображает все значения этих атрибутов как биноминальные. Nominal to Text Изменяет тип выбранных атрибутов на текстовые ипереводит все значения этих атрибутов в соответствующие строковые значения. Nominal to Numerical Изменяет тип выбранных нечисловых атрибутов на числовой тип и отображает все значения этих атрибутов как числовые. Nominal to Date Преобразует выбранный номинальный атрибут в выбранный тип даты и времени. Номинальные значения преобразуются в значения даты и / или времени. Это преобразование выполняется относительно указанной строки формата даты. Text to Nominal Изменяет тип выбранных текстовых атрибутов на номинальный и отображает все значения этих атрибутов как соответствующие номинальные значения. Date to Numerical Изменяет тип выбранного атрибута даты на числовой тип и отображает все значения этого атрибута как числовые значения. Вы можете указать, какой именно компонент даты или времени должен быть извлечен. Вы также можете указать, относительно какой даты или времени должна извлекаться информация о компонентах. Date to Nominal Анализирует значения даты указанного атрибута по отношению к заданной строке формата даты и преобразует значения в номинальные. Parse Numbers Изменяет тип выбранных номинальных атрибутов на числовой тип. Он также отображает все значения этих атрибутов в числовые значения, анализируя числа, если это возможно. Format Numbers Переформатирует выбранные числовые атрибуты в соответствии с указанным форматом и изменяет атрибуты на номинальные. Guess Types Повторно определяет типы значений всех атрибутов входного ExampleSet и изменяет их соответственно. Возможности преобразования типов данных из одного в другой представлены в таблице 4. Таблица -- Варианты преобразования данных в пакете RapidMiner 0 – преобразование бессмысленно 1 – пример преобразования имеется в пособии + – преобразование возможно, но не реализовано, т.к. требуют последовательного применения нескольких операторов - – преобразование невозможно Numerical 0 + 1 + + + + 0 1 1 Integer + 0 1 0/- 0/- 0/- + 0 + + Real + 1 0 0/- 0/- 0/- + 0 + + Date_time + 0 0 0 + + + + + + Date 1 0 0 + 0 + 1 + + + Time + 0 0 + + 0 + + + + Nominal 1 + + + 1 + 0 1 + 1 Text 0 0 0 + + + 1 0 + + Polynominal 1 + + + + + + + 0 + Binominal 1 + + + + + 1 + + 0 Перечисленные операторы имеют один вход exa и несколько вариантов выходов. Подавляющее большинство из них имеет только два выхода exa и ori, а операторы NominaltoBinominal и NominaltoNumerical имеют еще дополнительный выход pre (рисунок 17). ![](media/image2.png) Рисунок -- Варианты операторов преобразования данных в RapidMiner Во всех вариантах операторов вход exa (exampleset) предполагает структуру данных класса ExampleSet. В качестве входных данных также могут использоваться либо набор данных из репозитория, либо выходные данные других операторов. Во входном набореExampleSet должен иметь хотя бы один атрибут того типа, из которого производится преобразование данных, поскольку при отсутствии такого атрибута использование этого оператора не имеет смысла. Выходной порт exaформирует объектExampleSet с результатами обработки конкретного оператора. На выходной порт ori передается в полном объеме входной набор данных без изменений. Обычно он используется для повторного применения одного и того же ExampleSet в последующих операторах или для просмотра ExampleSet в рабочей области результатов. Если существует еще один выход pre, то онгенерирует модель предварительной обработки (preprocessingmodel), которая содержит информацию о параметрах данного оператора в текущем процессе. Если оператор перемещен в поле Process рабочего окна RapidMiner, то у пользователя появляется возможность настройки его параметров. В правой части рабочего окна становятся доступными имеющие непосредственное отношение к выбранному оператору две вкладки: Parametersи Help(рисунок 18). Каждая из них может быть дополнительно развернута на большую часть экрана. Первая предоставляет возможность индивидуальной настройки каждого оператора, а вторая обеспечивает пользователя необходимой информацией на английском языке. Набор параметров индивидуален для каждого оператора, однако одноименные в рамках пакета RapidMinerпараметры имеют одинаковый смысл. В приложении А приведена упорядоченная по алфавиту таблица с пояснением назначения каждого параметра. В то же время соответствующие пояснения, правда на английском языке, одновременно появляются на вкладке Help. Приложение А содержит таблицы А1 -- А6 с переводом описаний некоторых используемых в пакете операторов, в частности, операторов преобразования типов данных. Рисунок -- Настройка параметров оператора На рисунке 19 показан пример графического программирования в пакете RapidMiner. Операторы языка, оформленные в виде прямоугольников с входными и выходными портами, с помощью мышки устанавливаются в рабочем окно Process. Обычно первым оператором является оператор Retrieveполучить доступ к хранимой информации в репозитории и загрузить ее в процесс. Выход этого оператора, обозначенный как out, также мышкой соединяется с входом следующего оператора, обозначаемого exa. Тогда на этом входе образуется объект данных формата RapidMiner, который в дальнейшем может быть подвергнут обработке в соответствии со свойствами конкретного оператора описанными во вкладке Help в правой нижней части рабочего окна. Как правило, операторы имеют набор собственных параметров, значения которых устанавливаются во вкладка Parameters в правой верхней части рабочего окна.Конкретный вариант настройки таких параметров показан в таблице 5. ![](media/image4.png) Рисунок -- Примеры программирования преобразования данных Таблица -- Настройкипараметров процессов изменения ролей атрибутов Оператор Настройка -------------------------- ---------------------------- --------------- Numerical to Binominal attribute filter type single attribute Гармоническая invert selection false include special attributes false min -10.0 max 10.0 Numerical to Polynominal attribute filter type single attribute Квадратичная invert selection false include special attributes false Real to Integer attribute filter type single attribute Квадратичная invert selection false include special attributes false round values false Результат работы оператора появляется на выходе exa. Соединяя его с входом следующего оператора, можно строить систему последовательной обработки данных. Кроме этого, если существует выходной порт ori, то подключение к нему позволяет получить входной набор данных без обработки оператором. Потребность в преобразовании типов данных возникает при подготовке реальных данных к обработке. Необходимо иметь в виду различие способов хранения числовых и текстовых данных и, как следствие, отличие алгоритмов программирования последующей обработки. Еще одним параметром каждого атрибута является его диапазон изменения (Range). Обычно он вычисляется автоматически для конкретной таблицы и носит информативный характер. В первую очередь он нужен для отыскания случайных выбросов в реальных данных. Параметр атрибута количество отсутствующих значений (Missing) тоже вычисляется автоматически. Параметр фиксирует факт наличия или отсутствие в составе колонки пропущенных данных. Если они присутствуют в таблице, то при составлении алгоритма решения задачи могут дополнительно потребоваться специальные действия. Использование параметра комментарий (Comment) никак не регламентировано. Отдельное значение имеет параметр роль (Role). Онможетбытьпо умолчанию пустым(regular) илиспециальным (special) --label, id, prediction, cluster, weight, batch (рисунок 20). Существует два типа специальных значений -- те, которые описывают всетаблицы и те, которые распространяются на конкретную таблицу (экземпляр). Так, например, задание значения параметра роль (Role) в виде label указывает, что соответствующий атрибут используется для обучения. Такой атрибут может называться «целевой переменной» или «классом». Для указания записи таблицы может использоваться роль id. Она предназначена для создания нового атрибута таблицы, содержащего идентификационные номера строк, предназначенных для идентификации конкретной строки таблицы данных. Значение роли prediction означает, что этот атрибут является результатом прогнозирования. Такие колонки появляются в таблицах после выполнения оператора ApplyModel, например, в результате решения задачи регрессии. Аналогичная ситуация и со значением роли cluster. Атрибут с ролью кластера указывает на принадлежность таблицы с данными к определенному кластеру. Например, оператор k-means добавляет такое значение. Weight-- значение роли, которое используется в сочетании со значением роли label. Атрибут с ролью weight указывает вес примеров по отношению к label. Веса используются в процессах обучения для определения важности примеров. Специальная роль batch указывает на принадлежность атрибута определенному пакету (группе). Рисунок -- Варианты значений параметра (Role) Значение роли userdefined(определяемая пользователем) может быть назначена атрибутувводом в текстовое поле. Конкретную роль нельзя назначать нескольким атрибутам. Атрибуты с пользовательскими ролями игнорируются в процессе обучения. Однако соответствующая колонка остается в пользовательской таблице. В качестве примера был создан процесс ЛР2\_Установить роль (рисунок 21). Его настройки приведены в таблице 6, а результаты работы отображены на рисунке 22. Рисунок -- Пример выполнения операций с ролями Таблица -- Настройка параметров процесса изменения ролей атрибутов- Оператор Настройка --------------------- ---------------------- --------------------- Generate Attributes attribute name Сравнение function expression \[Линейная\]\ 1. Какой смысл параметра Name? 2. Какой смысл параметра Type? 3. Какой смысл параметра Range? 4. Какой смысл параметра Missing? 5. Какой смысл параметра Role? 6. Какой смысл роли label? 7. Какой смысл роли id? 8. Какойсмыслролей prediction, cluster? 9. Какой смысл ролей weight, batch?