close

Вход

Забыли?

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

?

Palmov Miftahova Intellektualnyj analiz dannyh metod ukazaniya po lab rabotam 2018

код для вставкиСкачать
Федеральное агентство связи
Федеральное государственное бюджетное образовательное
учреждение высшего образования
Поволжский государственный университет
телекоммуникаций и информатики
Кафедра «Информационные системы и технологии»
Пальмов С.В., Мифтахова А.А.
ИНТЕЛЛЕКТУАЛЬНЫЙ АНАЛИЗ
ДАННЫХ
методические указания
к лабораторным работам по дисциплине
для студентов очной формы обучения направления
«Прикладная информатика»
Самара, ИУНЛ ПГУТИ, 2018
Пальмов С.В., Мифтахова А.А. Методические указания к
лабораторным работам по дисциплине «Интеллектуальный анализ
данных» для студентов очной формы обучения направления
«Информационные системы и технологии». – Самара: ПГУТИ, 2018. –
64 с., ил.
Методические указания предназначены для студентов очного
отделения направления 09.04.03 (Прикладная информатика) по
дисциплине «Интеллектуальный анализ данных». Лабораторный цикл
включает в себя 4 лабораторные работы, выполнение которых
поможет
студентам
изучить
основные
возможности
интеллектуального анализа данных.
Методические
указания
подготовлены
на
кафедре
«Информационные системы и технологии».
Методические указания
рекомендованы к изданию
методическим Советом ПГУТИ
(заседание № 29 от 27.03.2018)
© ФГБОУ ВО ПГУТИ
© ПАЛЬМОВ С.В., МИФТАХОВА А.А.
2018
2
Оглавление
ЛАБОРАТОРНАЯ РАБОТА №1. АНАЛИТИЧЕСКАЯ СИСТЕМА
ORANGE. РАБОТА С ДАННЫМИ. ...................................................... 4
ЛАБОРАТОРНАЯ РАБОТА №2. АНАЛИТИЧЕСКАЯ СИСТЕМА
ORANGE. ВИЗУАЛИЗАЦИЯ. .............................................................. 17
ЛАБОРАТОРНАЯ РАБОТА №3. АНАЛИТИЧЕСКАЯ СИСТЕМА
ORANGE. ПОСТРОЕНИЕ МОДЕЛЕЙ (ЧАСТЬ 1).......................... 35
ЛАБОРАТОРНАЯ РАБОТА №4. АНАЛИТИЧЕСКАЯ СИСТЕМА
ORANGE. ПОСТРОЕНИЕ МОДЕЛЕЙ (ЧАСТЬ 2).......................... 51
3
Лабораторная работа №1. Аналитическая система Orange. Работа
с данными.
Цель работы: Ознакомиться с интерфейсом Orange. Научиться
работать с данными.
Введение
Виджет «File» (Файл) предназначен для загрузки входных
данных. Для доступа к его настройкам дважды щёлкните по нему
левой кнопкой мыши (ЛКМ). Чтобы выбрать файл с входными
данными, щёлкните ЛКМ по кнопке с изображением папки. В секции
«Info» (Информация) отображается информация о загруженном файле.
Кнопка «Report» (Отчёт) располагается в левом нижнем углу.
Виджет «Data Info» (Информация о данных) предназначен для
отображения более детальной информации о наборе данных:
количество записей, количество независимых переменных, их тип
(дискретный, непрерывный, строковый), информация о наличии
зависимой переменной. Для доступа к его настройкам дважды
щёлкните по нему ЛКМ.
Виджет «Data Table» (Таблица данных) позволяет представлять
данные в виде таблицы. В зависимости о величины значения
независимой переменной и её классовой принадлежности, она
отмечается маркером соответствующего размера и цвета.
Виджет «Data Sampler» (Выборка из данных) предназначен для
создания выборок из исходного набора данных. Он содержит
следующие настройки: Sampling Type (Тип выборки): 1) Fixed
proportion of data – задаёт объём выборки в процентах от исходного
набора данных; 2) Fixed sample size – создаёт выборку постоянного
объёма, содержащую N записей (instances). Может также создать
выборку с возвращением (sample with replacement), т.е. выборку, в
которой та или иная запись из исходного набора может встречаться
более одного раза; 3) Cross Validation (кросс-валидация, перекрёстная
проверка, перекрёстная валидация) – делит записи исходного набора
данных на дополнительные подмножества. Необходимо задать число
подмножеств (folds) и указать подмножество, которое будет
использовано в качестве выборки (sample). Replicable sampling
(воспроизводимая выборка) – сохраняет шаблоны выборок, для
последующего применения. Stratify sample – пытается создать
выборку, совпадающую по структуре с исходной. Bootstrap (бутстрэп)
– случайным образом создаёт множество выборок на основе исходной.
4
В данной реализации случайным образом создаёт одну выборку на
основе исходной, равной последней по числу записей. Создать
выборку выбранного типа – кнопка «Sample Data».
Виджет «Rank» (Ранг) выполняет ранжирование данных по
определённым критериям (оценивает степень коррелированности
независимых переменных с зависимой). Доступны следующие
критерии: 1) Information Gain – ожидаемое количество информации
(уменьшение энтропии). 2) Information Gain Ratio (Gain Ratio) –
отношение Information Gain к внутренней ценности (intrinsic value).
Уменьшает предпочтение в пользу переменных с большим
количеством значений, которое присуще критерию Information Gain. 3)
Gini – оценивает неравномерность распределения изучаемого
признака. 4) ANOVA – разность между средним значениями
характеристик в различных классах 5) Хи-квадрат – использует
критерий хи-квадрат для оценки связи между независимой и
зависимой переменными. 6) ReliefF – способность атрибута изменять
классовую принадлежность при условии сильной схожести (similar)
анализируемых данных. 7) FCBF – критерий, основанный на энтропии;
использует меру симметричной неопределённости для определения
зависимостей между признаками.
Виджет «Merge Data» (Объединение данных) позволяет
объединять данные из разных наборов. Используется для
горизонтального объединения двух наборов данных, основываясь на
значениях выбранных атрибутов. Можно выбрать атрибуты из
каждого набора, которые будут объединены в итоговый набор.
Сначала рассматриваются значения объединяемых атрибутов из
первого набора данных и производится поиск совпадающих значений
во втором наборе. Если найдено более одной записи, атрибут
удаляется из списка атрибутов, которые могут быть объединены.
На рис. 1: 1) Информация о данных (набор 1); 2) Информация о
данных (набор 2); 3) Тип объединения: а) Добавить столбцы из набора
2 – выводит все записи из набора 1, к которым присоединены
совпадающие записи из набора 2. Если совпадений нет, то в качестве
значений атрибутов добавляются «?». б) Найти совпадающие строки –
выводит только совпадающие записи. в) Сцепить таблицы, объединить
строки – выводит все записи обоих наборов, даже, если совпадений не
найдено. В этом случае добавляются «?». 4) Перечень атрибутов,
которые могут участвовать в объединении (набор 1). 5) Перечень
атрибутов, которые могут участвовать в объединении (набор 2).
5
Рис. 1. Виджет «Объединение данных»
Виджет «Select Rows» (Выбор строк) позволяет выбирать записи
из набора данных по определённому условию.
Виджет «Concatenate» (Сцепка) предназначен для объединения
(сцепки) двух таблиц.
Рис. 2. Виджет «Сцепка»
Сцепляет наборы данных «вертикально», т.е. два набора 10 и 5
записей будут преобразованы в один, содержащий 15 записей.
На рис. 2: 1) Способ объединения: а) Объединение атрибутов,
появляющихся во всех наборах; б) Пересечение атрибутов во всех
наборах (итоговый набор будет содержать атрибут с меткой класса,
если только не будет конфликтов между классами). 2) Идентификация
источника (можно добавить идентификаторы источника данных).
6
Виджет «Transpose» (Транспонировать) предназначен
транспонирования данных.
Виджет
«Randomize»
(Перемешать)
предназначен
рандомизации данных в наборе данных.
для
для
Рис. 3. Виджет «Перемешать»
На рис. 3: 1) Выбор столбцов, которые будут перемешаны; 2)
Выбор количества записей (в %), которые будут перемешаны; 3) Если
отмечено, данные всегда будут перемешиваться одинаково.
Виджет «Discretize» (Дискретизировать) предназначен для
преобразования
непрерывных
переменных
к
дискретным
(категориальным). Доступны следующие настройки: 1) Дискретизация
по умолчанию: а) Entropy-MDL – нисходящая дискретизация, при
которой
атрибут
рекурсивно
разделяется
на
отрезки,
максимизирующие значение критерия Information Gain. Разделение
производится до тех пор, пока значение Information Gain не станет
ниже минимальной длины описания отрезка. В результате выполнения
такой дискретизации может получится произвольное число
интервалов, в том числе и один, в последнем случае атрибут
отмечается как бесполезный (удаляется). б) Equal-frequency - разделяет
атрибут на указанное количество интервалов, так что каждый из них
содержит примерно одинаковое количество записей. в) Equal-width –
делит данные на  интервалов равной длины ( − )⁄ .
Значение  можно задать вручную. Кроме этого, виджет может
удалить атрибут ли оставить его как есть.
Виджет «Image Viewer» (Просмотр изображений) предназначен
для просмотра изображений, содержащихся в данных.
Виджет «Paint Data» (Нарисовать данные) предназначен для
создания собственных наборов данных.
7
Рис.4. Виджет «Дискретизировать»
Виджет «Continuize» предназначен для преобразования данных к
непрерывному виду. Доступны следующие методы: 1) Target or First
value as base: атрибут будет преобразован в два непрерывных атрибута,
статус=средний, со значениями 0 или 1, показывающим, было ли у
исходного атрибута среднее значение в данном конкретном случае, и,
аналогично, статус=высокий. Следовательно, атрибут с тремя
значениями
преобразуется
в
два
непрерывных
атрибута,
соответствующим ему во всём, за исключением первого значения
атрибута. 2) Most frequent value as base: аналогичен предыдущему, за
исключением того, что выполняется анализ данных и в качестве
базового используется наиболее часто встречающиеся значение. Т.е.,
если у большей части примеров будет значение «среднее», то два
вновь созданных атрибута будут иметь статус=низкий и
статус=высокий. 3) One attribute per value: создаёт три непрерывных
атрибута из трёхзначного дискретного. 4) Ignore multinominal attributes:
удаляет полиномиальные атрибуты из данных. 5) Treat as ordinal:
преобразует атрибут в непрерывный атрибут со значениями 0, 1 и 2. 6)
Divide by number of values: тоже самое, как и предыдущий, за
8
исключением того, что значения нормализованы в диапазоне 0÷1, т.е.
получим значеним 0, 0.5 и 1. Также доступна обработка непрерывных
атрибутов: 1) Leave them as they are: не обрабатывать. 2) Normalize by
span: приводит все значения к диапазону [0, 1]. 3) Normalize by standard
deviation: вычитает среднее и делит на среднеквадратическое
отклонение. Можно выполнить обработку дискретных целевых
атрибутов: 1) Leave them as they are: не обрабатывать. 2) Treat as
ordinal: преобразует атрибут в непрерывный атрибут со значениями 0,
1 и 2. 3) Divide by number of values: тоже самое, как и предыдущий, за
исключением того, что значения нормализованы в диапазоне 0÷1, т.е.
получим значеним 0, 0.5 и 1 4) One class per value: создаёт три
непрерывных атрибута из трёхзначного дискретного. Также можно
задать диапазон значений (value range): 0÷1 или -1÷1.
Виджет «Impute» (Заполнить) предназначен для заполнения
пропущенных значений в данных. Он поддерживает ряд способов
обработки. Можно применить один способ для заполнения пропусков
во всех атрибутах или назначить свой способ для каждого атрибута.
Способы обработки: 1) Don’t impute (не обрабатывать); 2)
Average/Most frequent (использует среднее значение для атрибутов
непрерывного типа или наиболее часто встречающиеся для
дискретных); 3) As a distinct value (создаёт новые значения для замены
пропущенного); 4) Model-based imputer (создаёт модели для
прогнозирования пропущенных значений, основываясь на значениях
других атрибутов); 5) Random values (вычисляет распределение
значений для каждого атрибута, а затем заполняет пропуски, выбирая
значения случайным образом); 6) Удаляет записи, содержащие
пропущенные значения.
Виджет «Outliers» (Выбросы) предназначен для обнаружения
выбросов в данных. Содержит два метода обнаружения выбросов: 1)
Одноклассовый SVM (метод опорных векторов) с нелинейными
ядрами демонстрирует хорошие результаты в случае негауссовских
распределений. 2) Ковариантный оцениватель (estimator) работает
только с гауссовским распределением. Первый метод классифицирует
данные исходя из их схожести \ отличия от базового (core) класса. Nu –
параметр, задающий максимальную границу (в %) для ошибок и
нижнюю границу для опорных векторов (чем больше значение этого
параметра, тем больше записей в наборе будет классифицировано как
выбросы). Kernel coefficient – определяет меру влияния одной записи
на результат. Оптимальное значение зависит от входных данных.
Второй метод «подгоняет» (fits) эллипсы к центральным точкам при
помощи расстояния Махаланобиса. Contamination (засорённость) –
9
процентное содержание выбросов в данных. Support fraction (опорный
коэффициент) – задаёт количество элементов, включаемых в оценку.
Виджет «Create Class» (Создать класс) создаёт новый атрибут
типа «класс» (зависимая переменная) из существующего дискретного
или строкового атрибута. На рис. 5: 1) Выбор исходного столбца. 2)
Здесь задаются имена для значений создаваемого атрибута (Name) и
соответствующие ему имена значении исходного столбца (Substring).
3) Имя создаваемого атрибута. 4) Задаётся способ определения
совпадения имени: с начала строки и чувствительность к регистру. 5)
Создать отчёт. 6) Выполнить
Рис.5. Виджет «Создать класс»
Виджет «Feature Constructor» (Конструктор переменных)
позволяет вручную добавлять свойства (переменные) в набор данных.
Новая переменная может вычисляться на основе существующей или
комбинации нескольких (сложение, вычитание и т.д.). Можно задать
тип переменной (дискретная, непрерывная или строковая) и её
параметры (название, значение, выражение). Для непрерывных
переменных необходимо использовать синтаксис языка Python. На рис.
6: 1) Окно для конструирования переменных. 2) Добавить / удалить
переменную. 3) Имя новой переменной. 4) Запись на языке Python. 5)
Выбор переменной. 6) Выбор функции. 7) Создать отчёт. 8) Применить
изменения.
С дискретными переменным работать несколько сложнее.
Сначала добавьте значения для новой переменной. Затем выберите
10
базовое значение и выражение. В примере на рис. 7 рассматривается
ситуация, в которой создаётся выражение вида «если меньше чем…» и
задаются три условия; программа выводит 0 (который переименован в
«низкое»), если исходное значение меньше 6, 1 («среднее»), если оно
меньше 7 и 2 («высокое») для прочих значений. Обратите внимание,
что в названиях значений использовано нижнее подчёркивание.
Рис. 6. Виджет «Конструктор переменных»
Рис. 7. Виджет «Конструктор переменных».
Работа с дискретными переменными
11
Файл помощи по данному виджету содержит подсказки относительно
синтаксиса языка Python.
Описание программного обеспечения
Данная лабораторная работа должна выполняться при помощи
ПО Orange 3.
Домашнее задание студентам для подготовки к выполнения
лабораторной работы
Изучить по лекциям особенности работы c данными.
Порядок выполнения лабораторной работы
1. Запустите Orange.
2. Создайте новый документ.
3. Перейдите на вкладку «Data».
4. Добавьте на рабочую область виджет «File». С его помощью
загрузите
данные
из
файла
«iris.tab»
(\\Orange3\Lib\sitepackages\Orange\datasets\iris.tab).
5. Откройте окно с настройками. Нажмите на кнопку «Report».
Появится окно с отчётом. Добавьте комментарий в соответствующе
поле. Комментарий должен содержать перевод на русский язык всей
информации, кроме поля «Filename». Сохраните отчёт.
6. Добавьте на рабочую область виджет «Data Info». Соедините
его с предыдущим добавленным виджетом. Для этого наведите
указатель мыши на пунктирную дугу виджета «File», затем, нажав и
удерживая ЛКМ, проведите соединительную дугу до второго виджета.
Откройте настройки виджета «Data Info». Сделайте их скриншот.
Нажмите кнопку «Report». Добавьте комментарий в соответствующе
поле. Комментарий должен содержать перевод на русский язык всей
информации. Сохраните отчёт.
7. Добавьте на рабочую область виджет «Data Table». Соедините
его с виджетом «File». Откройте окно с настройками виджета «Data
Table». Нажмите на кнопку «Report». Появится окно с отчётом.
Сохраните его.
8. Отметьте Visualize numeric values. Дайте письменный ответ на
вопрос: для чего нужна эта опция?
12
9. Добавьте на рабочую область ещё один виджет «File» - «File
(1)». Подключите к нему любой файл, кроме iris.tab, из папки datasets.
Свяжите «File (1)» с «Data Table». Откройте «Data Table». Появилась
вкладка со второй таблицей. Сделайте скриншот. Сохраните его в
отчёт.
10. Добавьте на рабочую область виджеты «Data Sampler» и «Data
Table (1)». Соедините «File» с «Data Sampler», а «Data Table (1)» с
«Data Sampler».
Таблица 1
Последняя
цифра
номера
зачётной
книжки
0
1
2
3
4
5
6
7
8
9
Fixed proportion
of data, %
Fixed
sample
size, шт.
Cross Validation
(number
of
folds\ selected
fold)
30
35
40
45
50
55
60
65
70
75
50
60
70
80
90
100
110
120
130
140
10\1
11\2
12\3
13\4
14\5
15\6
16\7
17\8
18\9
19\10
Сделайте выборку каждого типа из таблицы 1, согласно варианта.
Результаты из «Data Table (1)» сохраните в отчёт.
11. Создайте выборку типа bootstrap. Результаты из «Data Table
(1)» сохраните в отчёт (фрагмент).
12. Добавьте виджет «Select Rows». Подключите его к «File».
Создайте виджет «Data Table (2)». Подключите к нему «Select Rows».
Создайте три выборки: с одним, двумя и тремя условиями. Сохраните
результаты из «Data Table (2)» в отчёт.
13. Добавьте виджет «Rank». Подключите его к «File». Создайте
виджет «Data Table (3)». Подключите к нему «Rank». Сохраните
результаты из «Data Table (3)» в отчёт.
14. Добавьте следующие виджеты: «Merge Data», «Data Table» и
два виджета «File». Переименуйте «Data Table» в «Data Table_zoo», а
13
«File»’ы – в «zoo» и «zoo_with_images». Соедините два последних
виджета с «Merge Data», а его – с «Data Table_zoo». Выполните
объединение тремя возможными способами. Сделайте скриншоты.
Сохраните их в отчет.
15. Добавьте виджет «Concatenate», соедините его с «File»’ми
«zoo» и «zoo_with_images». Добавьте виджет «Data Table». Назовите
его «Data Table_con». Соедините с «Concatenate». Выполните сцепку
таблиц двумя способами. Сделайте скриншоты. Сохраните их в отчёте.
Дайте письменный ответ на вопрос: в чём отличие между этими двумя
методами?
16. Добавьте виджет «Transpose». Соедините его с любым
виджетом «File». Добавьте виджет «Data Table». Назовите его «Data
Table_t». Соедините его с «Transpose». Откройте «Data Table_t».
Сделайте скриншот. Сохраните его в отчёт.
17. Добавьте виджет «Randomize». Настройте его согласно табл.
2. Соедините его с любым виджетом «File». Добавьте виджет «Data
Table». Назовите его «Data Table_r». Соедините его с «Randomize».
Откройте «Data Table_r». Сделайте скриншот. охраните его в отчёт.
Таблица 2
Последняя цифра номера
зачётной книжки
0
1
2
3
4
5
6
7
8
9
Shuffled rows, %
Shuffled columns
30
35
40
45
50
55
60
65
70
75
Classes
Features
Classes
Features
Classes
Features
Classes
Features
Classes
Features
18. Добавьте виджет «Image Viewer». Подключите его к
«zoo_with_images». Откройте «Image Viewer». Сделайте скриншот
страницы с изображениями. Добавьте его в отчёт.
19. Откройте файл «Ирисы.xls» в редакторе таблиц, например,
Excel. Удалите 10 произвольных значений любых переменных.
Сохраните файл под именем «Ирисы1.xls». Добавьте «File».
14
Переименуйте его в «File_im». Загрузите в него информацию из файла
«Ирисы1.xls». Добавьте «Impute». Добавьте «Data Table».
Переименуйте последний виджет в «Data Table_im». Соедините
«File_im» с «Impute», а «Impute» - с «Data Table_im». Примените
поочерёдно следующие способы обработки: «Average/Most frequent»,
«As a distinct value», «Model-based imputer» и «Random values».
Сравните полученные результаты с оригинальным набором
(«Ирисы.xls»). Сделайте выводы об эффективности каждого способа.
20. Добавьте виджеты «Outliers» и «Data Table». Переименуйте
последний в «Data Table Outliers». Соедините виджет «File» (см. п.4) с
«Outliers». «Outliers» соедините «Data Table Outliers». Соединение
настройте так, чтобы в «Data Table Outliers» отображались именно
выбросы. Произведите 5 расчётов выбросов при разных настройках.
Для каждой итерации сделайте скриншоты «Data Table Outliers».
Сохраните их в отчёте.
21. Добавьте виджеты «File» и «Continuize», два виджета «Data
Table». Переименуйте последние два в «Data Table Continuize1» и
«Data Table Continuize2», а «File» - в «File Continuize». Соедините «File
Continuize» с «Data Table Continuize1», «File Continuize» с
«Continuize», а «Continuize» - с «Data Table Continuize2». Подключите
к «File Continuize» файл «heart_disease.tab» (\\Orange3\Lib\sitepackages\Orange\datasets\heart_disease.tab). Попробуйте выполнить
преобразование к непрерывному виду тремя различными способами
(настройки выберите на своё усмотрение). Для каждой из трёх
итераций сделайте скриншоты обеих таблиц, открыв и разместив их на
экране одну над другой. Сравните данные в таблицах. Сделайте
выводы. Запишите их в отчёт. Скриншоты таблиц поместите в отчёт.
22. Добавьте виджет «Create Class». Соедините виджет «File» с
«Create Class». Добавьте виджет «Data Table». Переименуйте его в
«Data Table Create Class». Соедините «Create Class» и «Data Table
Create Class». Создайте новый класс на основании существующего
классового атрибута «Iris». Названия новых значений и нового
атрибута – на Ваше усмотрение. Сделай скриншоты окон виджетов
«Create Class» и «Data Table Create Class». Добавьте их в отчёт.
23. Добавьте виджет «Discretize». Соедините виджет «File» c
«Discretize». Добавьте виджет «Data Table». Переименуйте его в «Data
Table Discretize». Выполните дискретизацию пятью различными
способами (на ваше усмотрение). Поместите в отчёт пять скриншотов
окна виджета «Discretize» и «Data Table Discretize».
24. Добавьте виджет «Feature Constructor». Соедините виджет
«File» c «Feature Constructor». Добавьте виджет «Data Table».
15
Переименуйте его в «Data Table Feature Constructor». Создайте пять
новых переменных (на ваше усмотрение). Переменные не должны
повторяться. Примеры из справочного фала для виджета «Feature
Constructor» использовать нельзя.
Содержание отчёта
1. Титульный лист.
2. Цель работы.
3. Результаты выполнения пунктов: 5 – 24.
4. Выводы о проделанной работе.
Контрольные вопросы
1.
2.
3.
4.
Расскажите про возможности виджетов «File», «Data Info», «Data
Table», «Data Sampler».
Расскажите про возможности виджетов «Rank», «Select Rows»,
«Merge Data», «Concatenate», «Transpose».
Расскажите
про
возможности
виджетов
«Randomize»,
«Discretize», «Image Viewer», «Continuize».
Расскажите про возможности виджетов «Impute», «Outliers»,
«Create Class», «Feature Constructor».
Список литературы
1.
2.
3.
Documentation [Электронный ресурс]. – Режим доступа:
https://orange.biolab.si/docs/.
Пальмов С. В. Интеллектуальные системы и технологии
[Электронный
ресурс].
–
Режим
доступа:
http://elib.psuti.ru/Palmov_Intellektualniye_sistemy_i_tehnologii_met
od_ukaz_k_lab_rabotam.pdf.
Пальмов С. В. Интеллектуальный анализ данных [Электронный
ресурс].
–
Режим
доступа:
http://elib.psuti.ru/Palmov_Intellektualnyj_analiz_dannyh_uchebnoe_
posobie.pdf.
16
Лабораторная работа
Визуализация.
№2.
Аналитическая
система
Orange.
Цель работы: Ознакомиться с интерфейсом Orange. Научиться
визуализировать данные при помощи базовых виджетов.
Введение
Виджет «Paint Data» предназначен для создания собственных
наборов данных.
Рис. 8. Виджет «Нарисовать данные»
На рис. 8: 1) Названия осей и выбор класса, для которого будут
нарисованы данные. Классы можно добавлять и удалять. Чтобы
17
создать набор данных без классов (для обучения без учителя),
используйте только один класс. 2) Инструмент для рисования. Может
быть следующих видов: Brush (позволяет добавить большое
количество данных за раз) и Put (добавление по одной за раз). Select –
выбрать нарисованный элемент. Выбранный элемент можно удалить
(нажать на клавиатуре «Delete» или «Backspace»). Перераспределить
данные можно при помощи Jitter (рассеять) или Magnet (сместить к
указанной точке). Radius – задать радиус появления символов, Intensity
– задать частоту появления символов, Symbol – задать размер
символов. 3) К данному виджету можно подключить некие входные
данные (отображаются только первые два столбца); Reset to Input Data
позволяет сбросить всё то, что было добавлено упомянутым входным
данным. 4) Сохраняет нарисованное как картинку. 5) Создать отчёт. 6)
Автоматически передают информацию в связанные виджеты (если
активно).
Виджет «Box Plot» (Ящик с усами) - показывает распределения
значений переменных. Может быть использован для быстрого анализа
данных на предмет аномалий таких, как дублирующиеся значения
(например, серый и серый), выбросов и т.д.
Рис. 9. Виджет «Ящик с усами»
На рис. 9: 1) Выберите переменную для отображения. Их можно
упорядочить по релевантности (важности), отметив соответствующий
пункт, при помощи критерия хи-квадрат или ANOVA. 2) Выберите
Subgroups, чтобы отобразить на диаграмме информацию о дискретных
подгруппах. 3) Когда записи сгруппированы по подгруппам, можно
18
изменить режим отображения. Отметка напротив Annotate отобразит
минимальное, максимальное, среднее значения и медиану. Compare
medians и Compare means – сравнивает медианы и средние значения.
Для непрерывных атрибутов:
Рис. 10
4) Среднее значение (тёмно-синяя вертикальная линия). 5)
Граничные значения для среднеквадратического отклонения (СКО).
Светло-синяя полоса - графическое отображение СКО. 6) Медиана
(жёлтая вертикальная линия). Тонкая синяя линяя – область между
первым (25%) квантилем и третьи (75%) квантилем, в то время, как
тонкая пунктирная линия представляет весь диапазон значений (от
минимального до максимального значения в наборе данных для
выбранного параметра).
Рис. 11
Для дискретных атрибутов (рис. 11) полосы представляют
количество записей, в которых встречается определённое значение
атрибута.
Виджет
«Distributions»
(Распределения)
отображает
распределение значений дискретных или непрерывных атрибутов.
19
Если данные содержат зависимую переменные (class variable),
распределения могут зависеть от класса.
Для дискретных атрибутов граф, отображаемый этим виджетом,
показывает, как часто (т.е., в каком количестве записей) значение
каждого атрибута появляется в данных. Если данные содержат
зависимую переменную, будет отображено распределение классов для
каждого из значений атрибутов (см. рис. 12).
Рис. 12. Виджет «Распределения»
На рис. 12: 1) Список переменных, для которых доступен просмотр
распределения. 2) Bin continuous variables – если отмечено, то виджет
дискретизирует непрерывные переменные, разбив их на интервалы.
Количество интервалов задаётся перемещением ползунка Precision.
Или, для непрерывных переменных, можно задать уровень
сглаживания кривых распределения. 3) Виджет можно настроить на
отображение распределения значений только записей, относящихся к
определённым классам (Group by). Show relative frequencies – включает
процентное отображение данных. 4) Показывает вероятности. 5)
Сохраняет граф как картинку. 6) Создать отчёт.
20
Для непрерывных атрибутов значения атрибутов отображаются
как график функций. Вероятности появления определённых значений
зависимой переменной для непрерывных атрибутов определяется при
помощи гауссовской оценки плотности, а внешний вид кривой
задаётся перемещением ползунка Precision.
Виджет «Scatter Plot» (Диаграмма рассеяния) обеспечивает
двухмерную визуализацию рассеяния для непрерывных и дискретных
атрибутов. Данные изображаются как множество точек, у каждой из
которых есть значение по оси абсцисс (ось x), определяющее её
положение на горизонтальной оси, и значение ординаты (ось y),
определяющее её положение на вертикальной оси. В левой части
виджета расположены настройки, дающие доступ к изменению цвета,
размера и формы точек, названию осей, максимальному размеру точек
и их флуктуации (jittering).
Рис. 13. Виджет «Диаграмма рассеяния»
На рис. 13: 1) Выбор атрибутов для x и y. Существует
возможность подбора лучших проекций данных (кнопка «Find
21
Informative Projections»). Эта опция ранжирует пары атрибутов
согласно средней точности классификации и выводит список лучших
вариантов. Их можно параллельно отобразить на диаграмме.
Настройте флуктуацию, чтобы избежать наложения точек. Если Jitter
continuous values отмечено, то записи с непрерывными значениями
переменных буду рассеяны, согласно настройкам Jittering. 2) Задать
цвет точек (для непрерывных переменных доступны только оттенки
серого), их метку, форму и размер. Задать для всех символов размер и
прозрачность. 3) Настройка свойств диаграммы: а) показать легенду б)
показать сетку в) показать данные при наведении указателя мыши г)
показать плотность распределения классов д) показать линию
регрессии (рисует линию регрессии для пары непрерывных
переменны) е) пометить только выделенные точки (позволяет выбрать
определённые записи и пометить их) 4) Выбрать, увеличить,
передвинуть вид, сбросить увеличение. Увеличить \ уменьшить –
нажать кнопку «Zoom», навести курсор мыши на область диаграммы и
вращать колесо мыши. 5) Применить изменения. 6) Сохранить как
картинку 7) Создать отчёт.
Для дискретных атрибутов, флуктуация (jittering) позволяет
разрешить проблему наложения точек с одинаковыми значениями по
обеим координатным осям, а также нагляднее представить
группировку записей в данных. В примере (см. ниже) построена
диаграмма для набора данных «Titanic», отображающая пол
пассажиров и класс, которым они путешествовали; без флуктуации на
диаграмме было бы только 8 точек.
Далее приведён пример диаграммы рассеяния с включёнными
опциями «Show class density» (показать плотность распределения
классов) и «Show regression line» (показать линию регрессии).
Интеллектуальная визуализация данных
Если набор данных содержит большое количество атрибутов, то
вручную перебрать все возможные их сочетания в поисках
представляющих интерес пар сложно. В данном виджете реализована
интеллектуальная
визуализация
данных
(«Find
Informative
Projections»). Её задача состоит в нахождении таких проекций
диаграммы рассеяния, где записи чётко разделены.
Чтобы получить доступ к этой возможности, нажмите кнопку
«Find Informative Projections». Появится окно. В нём нажмите кнопку
«Start». В области отображения результатов упомянутого окна
22
появится список пар атрибутов, упорядоченных согласно точности
обеспечиваемой ими классификации.
Выбор (Selection)
Может быть использован для задания подгрупп вручную.
Удерживайте Shift при нажатии на точки, для создания новых
подгрупп. Добавление к текущей подгруппе – Shift+Ctrl при нажатии
на точку. Если к данному виджету присоединён виджет «Data Table»,
то в него будут добавляться выделенные точки-записи. При этом в
таблицу автоматически будет включён столбец «Group» (номер
группы).
Рис. 14. Виджет «Диаграмма рассеяния». Набор данных «Titanic».
Анализ данных (Explorative Data Analysis)
«Диаграмма рассеяния» поддерживает масштабирование рабочей
области и ручной выбор записей. Инструмент по умолчанию – «Select»
позволяет выбирать точки-записи в прямоугольной области. «Pan»
позволяет перемещаться по рабочей области. «Zoom» позволяет
масштабировать рабочую область. «Reset zoom» устанавливает
23
масштаб в исходное состояние. Если к данному виджету присоединён
виджет «Data Table», то применение инструмента «Select» на группе
точек отправит их в таблицу.
Рис. 15. Виджет «Диаграмма рассеяния».
Набор данных «Ирисы Фишера».
Виджет «Sieve Diagram» (сетчатая диаграмма, паркетная
диаграмма) - это графический метод для визуализации частот в
таблице с группировкой по двум признакам и сравнения их с
ожидаемыми частотами, исходя из предположения о их
независимости.
Размер
каждой
прямоугольной
области
пропорционален ожидаемой частоте, в то время как наблюдаемые
частоты показаны посредством множества прямоугольников,
заполняющих каждую прямоугольную область. Разница между
наблюдаемой и ожидаемой частотой (пропорциональна стандартным
остаткам Пирсона) отображается посредством разной цветовой
окраски прямоугольных областей. Там, где отклонение от
независимости положительное, - синий цвет, где отрицательно –
красный.
24
Рис. 16. Виджет «Сетчатая диаграмма»
На рис. 16: 1) Выбор атрибутов для отображения на диаграмме. 2)
Подбор лучшей комбинации атрибутов. 3) Сохранить изображение. 4)
Создать отчёт.
Виджет «Mosaic Display» (Мозаичный визуализатор). Позволяет
более эффективно изучить взаимосвязи между различными
переменными. Является графическим представлением таблицы с
группировкой по двум признакам или таблицы сопряжённости
признаков.
На рис. 17: 1) Выбор переменных для представления. 2) Выбор
внутренней расцветки. Можно задать цвет исходя из значений класса
или использовать остаток Пирсона. Если стоит отметка напротив
«Compare with total», то при сравнении будут использованы все записи.
3) Сохранить как рисунок. 4) Создать отчёт.
25
Тонкая вертикальная полоска (появляется при активации «Compare
with total») – графическая визуализация количества ожидаемых
значений параметра.
Рис. 17. Виджет «Мозаичный визуализатор»
Виджет «FreeViz» использует подход, позаимствованный в
физике элементарных частиц: точки одного класса притягиваются друг
к другу, а разных классов – отталкиваются. Результирующие силы
оказывают воздействие на «точки опоры» атрибутов, т.е. на единичные
векторы каждой пространственной оси. Точки перемещаться не могут
(представляют собой проекции в пространстве проекций), но «точки
опоры» могут, так что процесс оптимизации представляет собой поиск
экстремума (максимума), при котором пространственные оси с
точками на них будут находится в состоянии равновесия. Кнопка
«Optimize» используется для запуска процесса оптимизации. Результат
оптимизации зависит от первоначального расположения осей, которые
могут быть расположены по окружности, в произвольном порядке или
настроены вручную. Последнее работает на любой стадии
оптимизации. Разработчики Orange рекомендуют «покрутить»
26
вручную оси, чтобы посмотреть, как изменение положения одной оси
влияет на другие. В любой линейной проекции, проекции единичных
векторов, которые имеют небольшую длину, по сравнению с другими,
показывают, что ассоциированные с ними атрибуты, не очень
информативны при решении большинства задач. Эти векторы можно
скрыть, использую ползунок «Radius» (панель «Show anchors»).
Рис. 18. Виджет «FreeViz»
На рис. 18: 1) Доступны два начальных положения осей:
случайное и круговое. Оптимизация перемещает оси в оптимальное
положение. 2) Настройка цвета отображаемых точек (для дискретных
переменных – цветные, для непрерывных – оттенки серого). Задание
метки, формы и размера точек. Задание размера символа и
прозрачности. 3) Оси внутри окружности скрыты. Радиус окружности
настраивается при помощи ползунка. 4) Настройка свойств
отображения: 4а) Настройка флуктуации для предотвращения
наложения точек; 4б) Отобразить легенду; 4в) Выделить цветом на
27
графе распределение значений по классам; 4г) Помечать только
выделенные точки (позволяет выбирать отдельные записи в данных и
помечать их). 5) Выбор, масштаб, сдвиг и вписать в границы – опции
для исследования графа. 6) Включает автоматическую отправку
результатов в присоединённые виджеты. 7) Сохраняет изображение в
файл. 8) Создать отчёт.
Чтобы вручную повернуть ось, наведите курсор мыши на ось,
курсор изменит вид. Удерживая нажатой ЛКМ, передвигайте ось в
нужном направлении.
Виджет «Linear Projection» (Линейная проекция) отображает
линейную проекцию данных, содержащих поле «класс». Он
поддерживает различные типы проекций такие, как: круговой,
линейный дискриминантный анализ, метод главных компонент,
настраиваемая проекция.
Рис. 19. Виджет «Линейная проекция»
На рис. 19: 1) Отображаемые в проекции оси и другие доступные
для отображения оси. 2) Оптимизация проекции (кнопка «Suggest
Features»). Эта функция упорядочивает атрибуты по средней точности
классификации и выводит группу лучших. 3) Выбор типа проекции:
28
круговая, линейный дискриминантный анализ, метод главных
компонент, настраиваемый (загрузить из другого виджета) 4)
Настройка отображения (аналогична виджету «FreeViz»). 5) Выбор,
масштаб, сдвиг и вписать в границы – опции для исследования графа.
6) Включает автоматическую отправку результатов в присоединённые
виджеты. 7) Сохраняет изображение в файл. 8) Создать отчёт.
Виджет «Radviz» - это нелинейный многомерный способ
визуализации, который позволяет отображать данные, описываемые
тремя
и
более
переменными,
в
двухмерной
проекции.
Визуализируемые переменные представляются посредством точек,
расположенных в пределах окружности. Каждая точка – это отдельная
запись. Чтобы пояснить расположение точек, можно привести
следующую аналогию: каждая точка удерживается на месте
пружинами, которые присоединены к «якорям»-переменным.
Упругость
каждой
пружины
пропорциональна
значению
соответствующей переменной, так что точки фиксируются в позиции,
где силы пружин уравновешивают друг друга. До выполнения
визуализации, значения переменных переводятся в интервал [0;1]. Чем
ближе к «якорям», тем значение переменных больше. Настройки
данного виджета аналогичны «FreeViz» и «Linear Projection».
Виджет «Heat Map» (Тепловая карта) - графический метод
визуализации значений атрибутов по классам в двухсторонней
матрице. Работает только с наборами данных, содержащими
непрерывные переменные. Значения представлены посредством
оттенков цветов: чем выше определённое значение, тем темнее
представляющий её оттенок. Комбинируя классы и атрибуты по осям x
и y, можно определить «силу» значений атрибутов, т.е. найти
типичные значения (для дискретного) или диапазоны (для
непрерывного) класса.
На рис. 20: 1) Цветовая схема. Low и High – параметры для
цветовой палитры (первый – для атрибутов с низкими значениями,
второй – для атрибутов с высокими значениями). 2) Слияние данных.
3) Сортировка столбцов и строк: No Sorting (отображает атрибуты так
же, как и в наборе данных); Clustering (кластеризация данных по
степени подобия); Clustering with ordered leaves (максимизирует сумму
подобий соседних элементов). 4) Настройки аннотации и легенды 5)
Учитывать соотношение сторон (каждое значение отображается в виде
квадрата). 6) Включает автоматическую отправку результатов в
присоединённые виджеты. 7) Сохраняет изображение в файл. 8)
Создать отчёт.
29
Рис.20. Виджет «Тепловая карта»
Виджет
«Silhouette
Plot»
обеспечивает
графическое
представление единообразия данных внутри кластера и даёт
пользователю инструмент для визуальной оценки качества кластера.
Silhouette score показывает, на сколько похож объект из некоторого
кластера на объекты этого кластера, по сравнению с объектами прочих
кластеров. Он нужен для построения silhouette plot. Silhouette score
близкий к единице показывает, что запись располагается ближе к
30
центру кластера, а записи с silhouette score близкими к нулю находятся
на границе кластеров.
Рис. 21. Виджет «Silhouette Plot»
На рис. 21: 1) Выбор метрики расстояний. Можно выбрать из: а)
Евклидовой («прямая линия», расстояние между двумя точками). б)
Расстояние городских кварталов (Manhattan) (сумма абсолютных
разностей по всем атрибутам). 2) Выбор метки кластера. Можно
выбрать, группировать записи по кластерам или нет. 3) Настройки
отображения: выбор толщины столбца и отображение подписей. 4)
Сохранить как рисунок. 5) Создать отчёт. 6) Выход а) Добавить
silhouette score («хорошие» кластеры обладают более высокими
значениями silhouette score) б) Передать результаты в присоединённые
виджеты. 7) Созданный «Silhouette Plot».
31
Описание программного обеспечения
Данная лабораторная работа должна выполняться при помощи
ПО Orange 3.
Домашнее задание студентам для подготовки к выполнения
лабораторной работы
Изучить по литературе особенности визуализации данных.
Порядок выполнения лабораторной работы
1. Добавьте на рабочую область виджет «File». С его помощью
загрузите
данные
из
файла
«iris.tab»
(\\Orange3\Lib\sitepackages\Orange\datasets\iris.tab). Добавьте на рабочую область виджет
«Paint Data» (вкладка «Data»). Добавьте виджет «Data Table».
Переименуйте его в «Data Table Paint Data». Соедините «File» с «Paint
Data», а «Paint Data» с «Data Table Paint Data». Сделайте скриншоты
окон виджетов «Paint Data» и «Data Table Paint Data». Сохраните их в
отчёт.
2. Добавьте новые данные к каждому из классов. Используйте
для этого разные инструменты. Сделайте скриншоты окон виджетов
«Paint Data» и «Data Table Paint Data». Сохраните их в отчёт. Ответьте
письменно на вопрос: на сколько записей увеличился исходный набор
данных?
3. Отключите виджет «File» от «Paint Data». Нарисуйте
произвольны набор данных. Сделайте скриншоты окон виджетов
«Paint Data» и «Data Table Paint Data». Сохраните их в отчёт.
4. Добавьте виджет «Box Plot». Соедините его с «File». Сделайте
скриншоты диаграмм для всех переменных. Сохраните их в отчёте.
5. Добавьте виджет «Distributions». Соедините его с виджетом
«File». Постройте пять разных диаграмм. Сделайте скриншоты.
Сохраните в отчёте. Каждый скриншот снабдите описанием (какие
настройки были использованы и чему они равны).
6. Добавьте виджет «Scatter Plot». Соедините его с виджетом
«File». Добавьте виджет «Data Table», назовите его «Data Table Scatter
Plot». Соедините «Scatter Plot» с «Data Table Scatter Plot». Создайте 5
разных диаграмм, используя различные инструменты виджета «Scatter
Plot». Сделайте скриншоты виджетов «Scatter Plot» и «Data Table
Scatter Plot». Сохраните их в отчёт.
32
7. Добавьте виджет «Sieve Diagram». Соедините его с виджетом
«File». Добавьте виджет «Data Table», назовите его «Data Table Sieve
Diagram». Соедините «Sieve Diagram» с «Data Table Sieve Diagram».
Создайте 5 разных диаграмм, используя различные комбинации
атрибутов (кнопка «Score Combinations»). Сделайте скриншоты
виджета «Sieve Diagram». Сохраните их в отчёт.
8. Добавьте виджет «Mosaic Display». Соедините его с виджетом
«File». Добавьте виджет «Data Table», назовите его «Data Table Mosaic
Display». Соедините «Mosaic Display» с «Data Table Mosaic Display».
Создайте 5 разных визуализаций, используя различные комбинации
атрибутов (кнопка «Find Informative Mosaic»). Сделайте скриншоты
виджета «Mosaic Display». Сохраните их в отчёт.
9. Добавьте виджет «FreeViz». Соедините его с виджетом «File».
Добавьте виджет «Data Table», назовите его «Data Table FreeViz».
Соедините «FreeViz» с «Data Table FreeViz». Создайте 5 разных
визуализаций, используя различные комбинации атрибутов. Каждую
из визуализаций снабдите описанием, поясняющим суть сделанных
настроек. Сделайте скриншоты виджета. Сохраните их в отчёт.
10. Добавьте виджет «Linear Projection». Соедините его с
виджетом «File». Добавьте виджет «Data Table», назовите его «Data
Table Linear Projection». Соедините «Linear Projection» с «Data Table
Linear Projection». Создайте 5 разных визуализаций, используя
различные комбинации атрибутов. Каждую из визуализаций снабдите
описанием, поясняющим суть сделанных настроек. Сделайте
скриншоты виджета. Сохраните их в отчёт.
11. Добавьте виджет «Radviz». Соедините его с виджетом «File».
Добавьте виджет «Data Table», назовите его «Data Table Radviz».
Соедините «Radviz» с «Data Table Radviz». Создайте 5 разных
визуализаций, используя различные комбинации атрибутов. Каждую
из визуализаций снабдите описанием, поясняющим суть сделанных
настроек. Сделайте скриншоты виджета. Сохраните их в отчёт.
12. Добавьте виджет «Heat Map». Соедините его с виджетом
«File». Добавьте виджет «Data Table», назовите его «Data Table Heat
Map». Соедините «Heat Map» с «Data Table Heat Map». Создайте 5
разных визуализаций, используя различные комбинации атрибутов.
Каждую из визуализаций снабдите описанием, поясняющим суть
сделанных настроек. Сделайте скриншоты виджета. Сохраните их в
отчёт.
13. Добавьте виджет «Silhouette Plot». Соедините его с виджетом
«File». Добавьте виджет «Data Table», назовите его «Data Table
Silhouette Plot». Соедините «Heat Map» с «Data Table Silhouette Plot».
33
Создайте 5 разных визуализаций, используя различные комбинации
атрибутов. Каждую из визуализаций снабдите описанием,
поясняющим суть сделанных настроек. Сделайте скриншоты виджета.
Сохраните их в отчёт.
Содержание отчёта
1. Титульный лист.
2. Цель работы.
3. Результаты выполнения пунктов: 1 – 13.
4. Выводы о проделанной работе.
Контрольные вопросы
1.
2.
3.
4.
Расскажите про возможности виджетов «Paint Data», «Box Plot»,
«Distributions».
Расскажите про возможности виджетов «Scatter Plot», «Sieve
Diagram», «Mosaic Display».
Расскажите про возможности виджетов «FreeViz», «Linear
Projection»
Расскажите про возможности виджетов «Radviz», «Heat Map».
«Silhouette Plot».
Список литературы
1.
2.
3.
Documentation [Электронный ресурс]. – Режим доступа:
https://orange.biolab.si/docs/.
Пальмов С. В. Интеллектуальные системы и технологии
[Электронный
ресурс].
–
Режим
доступа:
http://elib.psuti.ru/Palmov_Intellektualniye_sistemy_i_tehnologii_met
od_ukaz_k_lab_rabotam.pdf.
Пальмов С. В. Интеллектуальный анализ данных [Электронный
ресурс].
–
Режим
доступа:
http://elib.psuti.ru/Palmov_Intellektualnyj_analiz_dannyh_uchebnoe_
posobie.pdf.
34
Лабораторная работа №3. Аналитическая
Построение моделей (часть 1).
система
Orange.
Цель работы: Ознакомиться с интерфейсом Orange. Научиться
строить модели на основе данных при помощи базовых виджетов.
Введение
Виджет «Constant» (Константа) выявляет самый часто
встречающейся класс или среднее значения для обучающего набора
данных. Этот алгоритм (learner) формирует модель, которая
определяет наиболее часто встречающийся класс при решении задачи
классификации или среднее значение в случае решения задачи
регрессии.
При
выполнении
классификации,
когда
производится
прогнозирование значения зависимой (class) переменной (в
комбинации с виджетом «Predictions»), виджет возвращает значения
относительных частот встречаемости классов в обучающем наборе
данных. В случае двух или более часто встречающихся классов,
классификатор выбирает класс случайным образом, но всегда
возвращает одно и то же значение класса для конкретного примера.
При решении задачи регрессии возвращается среднее значение
зависимой переменной.
Этот виджет обычно используется как основа для построения
сложных моделей.
Рис. 22. Виджет «Константа»
Виджет предоставляет пользователю две опции: 1) Имя, которое
будет присвоено результатам его работы при отображении их в других
виджетах. По умолчанию это «Constant». 2) Создать отчёт. 3)
Применить изменения автоматически (если отмечено).
Виджет «Predictions» (Прогнозы) отображает результаты
обработки данных прогностической моделью (моделями).
35
На вход виджета подаётся набор данных и один или более
предикторов (классификаторов, а не обучающих алгоритмов).
Выходом являются данные и прогнозы.
Рис. 23. Виджет «Прогнозы»
На рис. 23: 1) Информация о входном наборе данных. 2)
Пользователь может выбрать опции для классификации. Если
отмечено Show predicted class, то в добавочной таблице будет
представлена информация о прогнозируемом классе. Если отмечено
Show predicted probabilities, то в добавочной таблице будет
представлена информация о вероятность прогнозов. Пользователь
также может выбрать класс, для которого будет выведена информация
о прогнозе в добавочной таблице. Опция Draw distribution bars
добавляет визуализацию значений параметров в ячейках. 3) Show full
dataset – если отмечено, то пользователь может добавить всю таблицу
данных. 4) Выбор требуемого выхода. 5) Добавочная таблица. 6)
Создать отчёт.
Несмотря на свою простоту, виджет позволяет проводить
достаточно полезный анализ результатов работы прогностических
моделей.
Виджет «CN2 Rule Induction» – выводит правила из данных,
используя алгоритм CN2. Алгоритм CN2 – это методика
классификации, созданная для эффективного вывода простых и
понятных правил вида «если…то...», даже в случае зашумлённых
данных. CN2 Rule Induction решает только задачу классификации.
36
Рис. 24. Виджет «CN2 Rule Induction»
На рис. 24: 1) Имя, которое будет присвоено результатам его
работы при отображении их в других виджетах. По умолчанию это
CN2 Rule Induction. 2) Упорядоченность правил: а) Упорядоченные:
выводит упорядоченные правила (список решений (decision list)).
Производится поиск условий правил и в часть «следствие» помещается
значение наиболее вероятного класса. б) Неупорядоченный: выводит
неупорядоченные правила (набор правил). Формирует правила
индивидуально для каждого класса. 3) Алгоритм покрытия: а)
Исключающий: после того, как запись из набора данных «попала по
действие» некоего правила, она исключается из дальнейшего
рассмотрения. б) Взвешенный: после того, как запись из набора
данных «попала по действие» некоего правила, её вес уменьшается
(умножение на гамму) и, следовательно, снижается её влияние на
последующие итерации алгоритма. 4) Поиск правил: а) Вид оценки: а]
Энтропия (мера непредсказуемости данных). b] Точность Лапласа. c]
Взвешенная относительная точность. б) «Ширина угла»: запоминает
лучшее правило и отслеживает фиксированное количество
37
альтернатив (угол). 5) Фильтрация правил: а) Минимальное покрытие:
находит правила, которые распространяются хотя бы на некоторое
минимальное количество записей. б) Максимальная длина правила:
задаёт максимальное количество условий в обнаруживаемых правилах.
в) Альфа по умолчанию: проверка статистической значимости
правила, чтобы отсечь более детализированные (с меньшей
поддержкой), исходя из первоначального распределения классов. г)
Родительская альфа (parent alpha): проверка статистической
значимости правила, чтобы отсечь более детализированные (с
меньшей поддержкой), исходя из распределения родительского класса.
6) Передача результатов работы в последующие виджеты.
Виджет «CN2 Rule Viewer» (Просмотрщик CN2 правил)
отображает CN2 классификационные правила. Если к нему также
подключены и внешние данные, может проанализировать, какие из
записей подходят под условия.
Рис. 25. Виджет «Просмотрщик CN2 правил»
На рис. 25: 1) Восстановить исходный порядок выведенных
правил. 2) Когда правил много и они сложные, можно использовать
компактный вид. 3) Сформировать отчёт. Правила можно скопировать
(Ctrl+C).
Виджет «kNN» использует алгоритм k ближайших соседей, чтобы
найти k ближайших примеров из обучающего набора данных. Класс,
который встречается среди них чаще всего, будет результирующим.
38
Рис. 26. Виджет «kNN»
На рис. 26: 1) Имя, которое будет присвоено результатам его
работы при отображении их в других виджетах. По умолчанию это
kNN. 2) Задаётся количество ближайших соседей, метрика
определения расстояния и вес. Метрики могут быть: а) Евклидово
расстояние («прямая линия», расстояние между двумя точками). б)
Манхэтаннское (сумма абсолютных разностей по всем атрибутам). в)
Расстояние Чебышева (наибольшая из абсолютных разностей между
атрибутами). г) Расстояние Махаланобиса (мера расстояния между
векторами случайных величин, обобщающая понятие евклидова
расстояния. Предложено индийским статистиком Махаланобисом в
1936 году. С помощью расстояния Махаланобиса можно определять
сходство неизвестной и известной выборки. Оно отличается от
расстояния Евклида тем, что учитывает корреляции между
переменными и инвариантно к масштабу). Вес: а) Постоянный: все
векторы имеют одинаковый вес. б) Переменный: с ростом расстояния
вес вектора уменьшается. 3) Создать отчёт. 4) Применить изменения
автоматически.
Виджет «Test & Score» (Тестирование и оценка) тестирует
прогностические модели (learning algorithms). Доступны различные
схемы формирования выборок, включая отдельные данные для
тестирования. Виджет реализует две функции. Во-первых, он выводит
таблицу с различными метриками оценки эффективности работы
прогностических моделей, например, точность классификации и AUC
(площадь под ROC-кривой).
39
Замечание 1:
ROC-кривая (receiver operating characteristic, рабочая характеристика
приёмника) - график, позволяющий оценить качество бинарной
классификации, отображает соотношение между долей объектов от
общего количества носителей признака, верно классифицированных
как несущих признак, (true positive rate, TPR, называемой
чувствительностью алгоритма классификации) и долей объектов от
общего количества объектов, не несущих признака, ошибочно
классифицированных как несущих признак (false positive rate, FPR,
величина 1 - FPR называется специфичностью алгоритма
классификации) при варьировании порога решающего правила.
Также известна как кривая ошибок. Анализ классификаций с
применением ROC-кривых называется ROC-анализом.
Количественную интерпретацию ROC даёт показатель AUC (area
under ROC curve, площадь под ROC-кривой) - площадь, ограниченная
ROC-кривой и осью доли ложных положительных классификаций. Чем
выше показатель AUC, тем качественнее классификатор, при этом
значение 0,5 демонстрирует непригодность выбранного метода
классификации (соответствует случайному гаданию). Значение менее
0,5 говорит, что классификатор действует с точностью до
наоборот: если положительные назвать отрицательными и
наоборот, классификатор будет работать лучше.
Замечание 2:
Ошибки первого рода (type I errors, α errors, false positives) и ошибки
второго рода (type II errors, β errors, false negatives) в
математической статистике - это ключевые понятия задач
проверки статистических гипотез. Тем не менее, данные понятия
часто используются и в других областях, когда речь идёт о принятии
«бинарного» решения (да / нет) на основе некоего критерия (теста,
проверки, измерения), который с некоторой вероятностью может
давать ложный результат.
Замечание 3:
Задача классификации состоит в том, чтобы относить ранее
неизвестные сущности к тому или иному классу. Примером такой
задачи может быть постановка диагноза по медицинским анализам.
В этом случае есть два класса результатов: положительный
(positive) и отрицательный (negative). Тогда на выходе
классификатора может наблюдаться четыре различных ситуации:
40
Если результат классификации положительный, и истинное значение
тоже положительное, то речь идёт об истинно-положительном
значении (true-positive, TP)
Если результат классификации положительный, но истинное
значение отрицательное, то речь идёт о ложно-положительном
значении (false-positive, FP)
Если результат классификации отрицательный, и истинное значение
тоже отрицательное, то речь идёт об истинно-отрицательном
значении (true-negative, TN)
Если результат классификации отрицательный, но истинное
значение положительно, то речь идёт о ложно-отрицательном
значении (false-negative, FN)
Возвращаясь к примеру, с тестом на какое-либо заболевание,
предположим, что врач на основе каких-либо медицинских анализов
собирается поставить диагноз рака или его отсутствие. Тогда:
true-positive, TP — пациент болен раком, диагноз положительный
false-positive, FP — пациент здоров, диагноз положительный
true-negative, TN — пациент здоров, диагноз отрицательный
false-negative, FN — пациент болен раком, диагноз отрицательный
Четыре возможных выхода могут быть сформулированы и
оформлены в виде таблицы сопряжённости размера 2×2.
Тогда значение Sen = TP / (TP + FN), способность алгоритма
«видеть» больных, называется чувствительность, Spe = TN / ( TN +
FP) - специфичность, способность алгоритма не принимать здоровых
за больных.
Бывает, что классификатор выдаёт не бит «здоров-болен», а число:
«явно здоров» - «скорее всего, здоров» - «неопределённо» - «скорее
всего, больной» - «явно больной». Это лучше, но всё равно набор
принимаемых решений конечный, а зачастую и бинарный: отправлять
ли пациента на дообследование? Должен ли сработать толкатель,
сбрасывающий деталь в контейнер с браком? В таком случае, меняя
порог, можно варьировать чувствительность и специфичность: чем
выше одно, тем ниже другое.
Пробежимся порогом от −∞ до ∞ и нанесём на график
соответствующие X = 1 − Spe и Y = Sen - это и будет ROC-кривая.
Когда порог −∞, классификатор считает всех больными, Sen = 1, 1 –
Spe = 1. Когда +∞ - все «здоровые», Sen = 0, 1 – Spe = 0. Так что ROCкривая всегда идёт от (0,0) до (1,1).
41
Во-вторых, он выводит оценки, которые могут быть
использованы в других виджетах для анализа производительности
классификаторов, такие как ROC-анализ или матрица несоответствий.
Виджет может быть подключён более чем к одному виджету.
Рис. 27. Виджет «Тестирование и оценка»
На рис. 27: 1) Виджет поддерживает различные методы
формирования выборок: а) Перекрёстная проверка (Cross validation)
разбивает набор данных на определённое количество групп (folds),
обычно 5 или 10. Алгоритм тестируется посредством использования
записей из одной группы; модель строится на основании данных из
других выборок, а данные из выбранной группы классифицируются
построенной моделью. Таким образом обрабатываются все узлы. б)
Исключение по одному (Leave-one-out) – подобен перекрёстной
проверке, но обрабатывает по одной записи за раз (а не все, как при
перекрёстной проверке) из группы. Этот метод, безусловно, очень
стабилен,
надёжен…
и
очень
медленно
работает.
в)
Рандомизированная выборка (Random sampling) случайным образом
делит набор данных на обучающий и тестовый наборы в заданной
пропорции (например, 70:30); эта процедура повторяется заданное
количество раз. г) Тестирование на обучающем наборе данных (Test on
train data) использует весь набор данных сначала для обучения, а
42
потом для тестирования. Этот метод практически всегда даёт
ошибочные результаты. д) Тестирование на тестовых данных (Test on
test data): предыдущий метод использует данные только из сигнала
Data. Чтобы подключить другой набор данных с тестовыми примерами
(записи из другого файла или виджета), нужно выбрать сигнал Separate
Test Data в информационном канале и выбрать Test для тестовых
данных. 2) Только Test on test data требует указать класс, например,
наличие заболевания или разновидность ирисов Iris setosa. Когда класс
не указан, метод возвращает среднее значение. Конкретный класс
выбирается из выпадающего списка. 3) Создать отчёт 4) Виджет
вычисляет значения различных статистических показателей:
Классификация: а) AUC – см. выше. б) точность классификации
(classification accuracy) – процент правильно классифицированных
примеров. в) F1 – взвешенное гармоническое среднее модуля точности
или возврат (recall) г) Точность (precision) – процент истинноположительных среди примеров, классифицированных положительно,
например, процент Iris virginica классифицированных как Iris virginica.
д) Возврат (recall) процент истинно-положительных среди всех
положительных примеров в данных, например, количество больных
среди всех диагностированных как больные. Регрессия: а)
среднеквадратичная ошибка (MSE) показывает средний квадрат
ошибки или отклонения (разницу между оценкой (моделью) и тем, что
оцениваем (моделируем)). б) средне квадратическое (RMSE) –
квадратный корень из среднего арифметического квадратов набора
чисел (степень неидеальности оценки (модели) по отношению к
данным). в) среднее абсолютное отклонение (MAE) – используется для
измерения того, насколько близок прогноз к реальному результату
(т.е., для оценки точности прогноза). г) коэффициент детерминации
(R2) - это доля дисперсии зависимой переменной, объясняемая
рассматриваемой моделью зависимости, то есть объясняющими
переменными. Более точно - это единица минус доля необъяснённой
дисперсии (дисперсии случайной ошибки модели, или условной по
факторам дисперсии зависимой переменной) в дисперсии зависимой
переменной. Его рассматривают как универсальную меру зависимости
одной случайной величины от множества других. В частном случае
линейной зависимости является квадратом так называемого
множественного коэффициента корреляции между зависимой
переменной и объясняющими переменными. В частности, для модели
парной линейной регрессии коэффициент детерминации равен
квадрату обычного коэффициента корреляции между y и x.
43
Виджет «Tree» (Дерево) - это простой алгоритм, который делит
данные на подмножества, стараясь добиться выполнения условия
«одно подмножество – один класс». «Tree» - внутренняя разработка
авторов Orange. Может работать с дискретными и непрерывными
наборами данных. Может решать задачи классификации и регрессии.
Рис. 28. Виджет «Дерево»
На рис. 28: 1) Имя, которое будет присвоено результатам его
работы при отображении их в других виджетах. По умолчанию это
«Tree». 2) Параметры дерева: а) Induce binary tree – строит бинарное
дерево (узел может быть поделён только на два подузла). б) Min.
number of instances in leaves – если отмечено, то определяет
минимальное количество записей, которое может оказаться в листе
после выполнения разбиения. в) Do not split subsets smaller than –
запрещает алгоритму разбивать узлы (множества), содержащие
меньше указанного количества записей. г) Limit the maximal tree depth
– ограничивает глубину классификационного дерева указанным
количеством узлов. 3) Stop when majority reaches [%] – прекращается
построение дерева, когда обработано n% записей. 4) Создать отчёт.
Виджет «Tree Viewer» (Просмотрщик дерева) - это
универсальный виджет с двухмерной визуализацией для деревьев
классификации и регрессии.
44
Рис. 29. Виджет «Просмотрщик дерева»
На рис. 29: 1) Информация о входных данных. 2) Настройки
отображения: а) Масштаб. б) Ширина дерева. в) Выбор глубины
дерева. г) Выбор ширины связей между узлами: г1) равная ширина г2)
relative to root – чем дальше от корня, тем тоньше (т.е., зависит от
количества записей в узле) г3) relative to parent – то же самое, только
относительно родительского узла. д) Задать целевой класс, который
можно изменять, выбирая из доступных для текущего набора данных.
3) Сохранить граф дерева как картинку. 4) Создать отчёт.
Виджет «Logistic Regression» (Логистическая регрессия) создаёт
модель «Логистическая регрессия» на основе набора данных.
Используется только при решении задачи классификации.
Рис. 30. Виджет «Логистическая регрессия»
На рис. 30: 1) Имя, которое будет присвоено результатам его
работы при отображении их в других виджетах. По умолчанию это
45
«Logistic Regression». 2) Тип регуляризации (L1 или L2). L1 – метод
Лассо (заключается во введении ограничения на норму вектора
коэффициентов модели, что приводит к обращению в 0 некоторых
коэффициентов модели; норма вектора евклидова пространства –
арифметический квадратный корень из скалярного квадрата вектора).
L2 – регуляризация Тихонова (алгоритм, позволяющий находить
приближённое решение некорректно поставленных операторных задач
вида Ax = u в виде xδ = R(uδ, α), где R(uδ, α) – регуляризирующий
оператор. Он должен гарантировать, что при приближении uδ к
точному значению uT при δ → 0 приближённое значение xδ стремилось
бы к желаемому точному решению xT уравнения Ax = uT). 3)
Применить изменения.
Регуляризация - метод добавления некоторой дополнительной
информации к условию с целью решить некорректно поставленную
задачу или предотвратить переобучение. Эта информация часто
имеет вид штрафа за сложность модели. Переобучение в
большинстве случаев проявляется в том, что в получающихся
многочленах слишком большие коэффициенты. Соответственно, и
бороться с этим можно довольно естественным способом: нужно
просто добавить в целевую функцию штраф, который бы наказывал
модель за слишком большие коэффициенты.
Виджет «Confusion Matrix» (Матрица ошибок) рассчитывает
количество / процент правильно распознанных записей. Виджет, как
правило, получает результаты оценок (результаты работы
прогностических моделей) из «Test & Score».
На рис. 30: 1) Когда результаты анализа содержат данные многих
алгоритмов, можно выбрать нужный в списке Learners. На скриншоте
показана матрица ошибок для моделей «Дерево» и «Наивный
байесовский классификатор» обученных и протестированных на
наборе данных «iris». В правой части виджета содержится матрица для
«Дерево». Каждая строк соответствует «правильному» классу, а
каждый столбец – спрогнозированному классу. Например, четыре
записи класса Iris-versicolor были ошибочно классифицированы как
Iris-virginica. В крайнем правом столбце приведено количество записей
каждого класса (50 ирисов в каждом из трёх классов), а в самой
последней строке представлено число записей, отнесённых к
определённому
классу
(например,
48
записей
были
к
классифицированы как virginica).
46
Рис. 31. Виджет «Матрица ошибок»
2) В выпадающем списке Show выбираются данные, которые будут
отображаться в матрице: а) Number of instances – показывает
информацию о правильно и ошибочно классифицированных записях в
числовом виде. б) Proportions of predicted – показывает, как много
записей было классифицировано, например, как Iris-versicolor, в
процентах; из таблицы видно, что 0% было отнесено к setosa, 88,7% versicolor и 11,3% - virginica. в) Proportions of actual – показывает
обратную информацию – процент правильно классифицированных. 3)
Select можно настроить желаемый формат выходных данных: а) Select
Correct – отправляет все правильно классифицированные записи на
выход (выбирает записи из диагонали матрицы). б) Select Misclassified
– выбирает ошибочно классифицированные записи. в) Clear Selection –
очистить. 4) Когда выбранные записи отправляются в следующий
виджет, к ним можно добавить новый атрибут (атрибуты) такие, как
спрогнозированные классы и их вероятности, если отмечены
соответствующие опции. 5) Отправить автоматически. 6) Создать
отчёт.
47
Описание программного обеспечения
Данная лабораторная работа должна выполняться при помощи
ПО Orange 3.
Домашнее задание студентам для подготовки к выполнения
лабораторной работы
Изучить по литературе особенности построения моделей на
основе данных.
Порядок выполнения лабораторной работы
1. Добавьте на рабочую область виджет «File». С его помощью
загрузите данные из файла «housing.tab» (\\Orange3\Lib\sitepackages\Orange\datasets\housing.tab). Переименуйте его в «File
Housing». Добавьте на рабочую область виджет «Constant» (вкладка
«Model»). Добавьте виджет «Predictions» (вкладка «Evaluate»).
Переименуйте его в «Predictions Constant». Соедините «File Housing» с
«Predictions Constant» и «Constant», а «Constant» с «Predictions
Constant». Сделайте скриншот окна виджета «Predictions Constant».
Сохраните его в отчёт. Сделайте вывод относительно точности
результатов, полученных при помощи данного виджета.
2. Добавьте на рабочую область виджет «File». С его помощью
загрузите данные из файла «titanic.tab» (\\Orange3\Lib\sitepackages\Orange\datasets\titanic.tab). Переименуйте виджет «File» в
«File CN2». Добавьте на рабочую область виджеты «CN2 Rule
Induction» (вкладка «Model») и «CN2 Rule Viewer» (вкладка
«Visualize»). Соедините «File CN2» с «CN2 Rule Induction», а «CN2
Rule Induction» с «CN2 Rule Viewer». Создайте 5 разных наборов
правил, используя различные комбинации параметров виджета «CN2
Rule Induction». Скопируйте правила в отчёт. Сделайте выводы о
качестве полученных наборов правил.
3. Добавьте на рабочую область виджет «File». С его помощью
загрузите
данные
из
файла
«iris.tab»
(\\Orange3\Lib\sitepackages\Orange\datasets\iris.tab). Переименуйте его в «File Iris».
Добавьте на рабочую область виджет «Constant». Переименуйте его в
«Constant Iris». Добавьте на рабочую область виджеты «kNN» и «Test
& Score». Соедините «File Iris», «Constant Iris» и «kNN» с «Test &
Score». Выполните кластеризацию 5 различными способами (разные
48
настройки виджета «kNN»). Для каждого способа кластеризации
проведите сравнение с результатами работы виджета «Constant Iris»
при помощи виджета «Test & Score». Выполните по две итерации
сравнения каждого способа кластеризации (разные настройки виджета
«Test & Score»). Сделайте скриншоты окон виджетов. Сохраните их в
отчёт. Сделайте вывод относительно полученных результатов.
4. Отключите виджет «kNN» от «Test & Score». Добавьте виджет
«Predictions» Переименуйте его в «Predictions kNN». Соедините «kNN»
и «Predictions kNN». Соедините «File Housing» со входами виджетов
«kNN» и «Predictions kNN». Выполните кластеризацию 5 различными
способами (разные настройки виджета «kNN»). Сделайте скриншоты
окон виджетов «kNN» и «Predictions kNN». Сохраните их в отчёт.
Сделайте вывод относительно полученных результатов.
5. Добавьте виджеты «Tree» и «Tree Viewer». Соедините «File
Iris» с «Tree», а «Tree» - с «Tree Viewer». Постройте 5 деревьев с
различными настройками. Сделайте скриншоты виджета «Tree»,
сохраните 5 картинок графа дерева в «Tree Viewer». Скриншоты и
картинки добавьте в отчёт. Сделайте выводы о полученных
результатах.
6. Отключите от виджета «Test & Score» все прочие виджеты.
Добавьте виджет «Confusion Matrix». Соедините выход «Test & Score»
со входом «Confusion Matrix». Соедините «File Iris» с входом «Test &
Score». Отключите «Tree» от прочих виджетов. Подключите его ко
входу «Test & Score». Добавьте виджет «Logistic Regression» и
соедините его с «Test & Score». Задайте разные настройки для
виджетов «Test & Score» и «Logistic Regression», сделайте скриншоты
окон виджетов, сохраните в отчёт (проделайте пять раз для каждого
виджета), сделайте выводы.
Содержание отчёта
1. Титульный лист.
2. Цель работы.
3. Результаты выполнения пунктов: 1 – 6.
4. Выводы о проделанной работе.
49
Контрольные вопросы
1.
2.
3.
4.
5.
Расскажите про возможности виджетов «Predictions» и
«Constant».
Расскажите про возможности виджетов «CN2 Rule Viewer» и
«CN2 Rule Induction».
Расскажите про возможности виджетов «kNN» и «Test & Score».
Расскажите про возможности виджетов «Tree» и «Tree Viewer».
Расскажите про возможности виджетов «Logistic Regression» и
«Confusion Matrix».
Список литературы
1.
2.
3.
Documentation [Электронный ресурс]. – Режим доступа:
https://orange.biolab.si/docs/.
Пальмов С. В. Интеллектуальные системы и технологии
[Электронный
ресурс].
–
Режим
доступа:
http://elib.psuti.ru/Palmov_Intellektualniye_sistemy_i_tehnologii_met
od_ukaz_k_lab_rabotam.pdf.
Пальмов С. В. Интеллектуальный анализ данных [Электронный
ресурс].
–
Режим
доступа:
http://elib.psuti.ru/Palmov_Intellektualnyj_analiz_dannyh_uchebnoe_
posobie.pdf.
50
Лабораторная работа №4. Аналитическая
Построение моделей (часть 2).
система
Orange.
Цель работы: Ознакомиться с интерфейсом Orange. Научиться
строить модели на основе данных при помощи базовых виджетов.
Введение
Виджет «Random Forest» (Случайный лес) - это метод на основе
обучения ансамблем, используемый для классификации, регрессии и
других задач. Случайный лес создаёт набор деревьев решений. Каждое
дерево строится на основе бутстреп-выборки из обучающего набора
данных. По ходу формирования отдельных деревьев, создаётся
случайный поднабор (поэтому «случайный») атрибутов, из которого
выбирается лучший атрибут для выполнения разбиения. Итоговый
результат основывается на учёте результатов голосования всех
деревьев, составляющих лес.
Рис. 32. Виджет «Случайный лес»
На рис. 32: 1) Задаёт имя модели. По умолчанию «Random
Forest». 2) Определяет, как много деревьев решений будет в лесу
(Number of tree in the forest), и как много атрибутов будет случайным
51
образом выбираться для рассмотрения в каждом узле. Если количество
атрибутов не задано (отсутствует отметка рядом с Number of attributes),
то оно выбирается равным квадратному корню из числа атрибутов в
наборе данных. Можно также зафиксировать начальное число при
генерации дерева (Fixed seed for random generator), что позволяет
формировать повторяющиеся результаты. 3) Изначально было
предложено выращивать деревья без использования предварительного
отсечения (pre-punning), но, поскольку, за прошедшее время такой
подход продемонстрировал неплохие результаты (также он
увеличивает скорость работы алгоритма), можно задать глубину
дерева (Limit depth of individual trees). Ещё одной настройкой
предварительного отсечения является возможность выбирать размер
подмножества, которое будет разбито (Do not split subsets smaller than),
т.е., например, не разбивать подмножества-узлы, содержащие менее 5
записей. 4) Создать отчёт. 5) Отправить в присоединённые виджеты.
Виджет «Linear Regression» (Линейная регрессия) создаёт
линейную прогностическую модель на основе входных данных.
Модель может выявлять закономерности между предиктором xi и
зависимой переменной y. Дополнительно, доступны метод Лассо
(Lasso) и регуляризация Тихонова (Ridge). Линейная регрессия решает
только задачу регрессии.
Рис. 33. Виджет «Линейная регрессия»
На рис. 33: 1) Название прогностической модели. 2) Выбор типа
модели: а) без регуляризации. б) регуляризация по Тихонову. в) метод
52
Lasso. г) Elastic net regularization (комбинация предыдущих двух). 3)
Создать отчёт. 4) Отправить данные в последующие виджеты.
Виджет «Pythagorean Tree» реализует деревья Пифагора –
плоские фракталы, которые можно использовать для отображения
основных древовидных иерархий. В случае Orange, они используются
для визуализации и исследования древовидных моделей, таких как
«Tree».
Рис. 34. Виджет «Дерево Пифагора»
На рис. 34: 1) Информация о входной древовидной модели. 2)
Параметры визуализации: а) Глубина – настройка глубины
отображаемых деревьев. б) Целевой класс (для классификационных
деревьев) – насыщенность цвета узлов дерева соответствует
вероятности появления этого класса. Если выбрано None, то цвет узла
будет показывать наиболее вероятный класс. в) Цвет узла (для
деревьев регрессии) – цвет узла соответствует среднему значению или
стандартному отклонению значения класса для записей обучающего
набора в узле. г) Размер – задаёт метод для расчёта размера квадрата,
представляющего узел дерева. Normal – размер узда будет
пропорционален размеру подмножества из обучающего набора данных
в узле. Square root и Logarithmic – модификации метода расчёта. д) Log
scale factor – доступен только при выборе модификации Logarithmic.
53
Позволяет настраивать масштаб логарифмической шкалы в интервале
от 1 до 10. 3) Свойства отображения: а) Enable tooltips – отображает
информацию при наведении курсора мыши. б) Show legend –
показывает цветовую легенду. 4) Отчётность: а) Сохранить
изображение. б) Создать отчёт
Виджет «Pythagorean Forest» (Лес Пифагора) отображает все
деревья решений, созданные в виджете «Random Forest». Если к
«Pythagorean Forest» подключён «Pythagorean Tree», то выбрав
определённое дерево в «Pythagorean Forest», его можно подробнее
рассмотреть в «Pythagorean Tree». Лучшим считается то дерево,
которое имеет короткие и окрашенные в насыщенные оттенки цветов
ветки.
Виджет может применяться при решении задач классификации и
регрессии. Классификация требует наличия дискретной целевой
переменной в наборе данных, а регрессия – непрерывной целевой
переменной.
Рис. 35. Виджет «Лес Пифагора»
На рис. 35: 1) Входная информация 2) Параметры отображения: а)
Глубина (depth): задаёт глубину деревьев б) Целевой класс (target
class): задаёт цветовую схему: None – дерево будет белым. Если на
вход подаются деревья классификации, можно «раскрасить» узлы в
соответствии с их классами. Если на вход подаются деревья регрессии:
Class mean – раскрасить узлы деревьев исходя из среднего значения
класса, а Standard deviation – раскрасит дерево исходя из стандартного
отклонения узлов в) Размер (size): задаёт размер узлов. Normal –
54
размер узла определяется размером подмножества, содержащегося в
узле. Square root и Logarithmic – модификации метода расчёта размера
узла. г) Масштаб (zoom) – масштабирование. 3) Сохранить
изображение (save image) – сохранить результаты визуализации в виде
рисунка 4) Отчёт (report) – создать отчёт.
Виджет «SVM» (Support vector machine, метод опорных векторов)
– метод машинного обучения, который разделяет пространство
атрибутов посредством гиперплоскости, тем самым максимизируя
разницу между записями различных классов или значений классов.
Метод часто позволяет получить результаты, отличающиеся высокой
достоверностью. При решении задач регрессии, SVM реализует
линейную регрессию в пространстве атрибутов высокой размерности,
используя ε-нечувствительную функцию потерь.
Функция потерь  (, ) называется ε-нечувствительной функцией
потерь. Эта функция равна нулю, если абсолютное значение
отклонения выхода системы оценивания y от желаемого отклика не
превышает ε, и величине отклонения за вычетом ε – в остальных
случаях.
Точность работы зависит от C (цена нарушения ограничений), ε и
параметров типа ядра. Виджет формирует прогнозы для классов при
помощи SVM-регрессии. Решает задачи классификации и регрессии.
На рис. 36: 1) Имя виджета 2) Тип SVM. SVM и ν-SVM
основываются на различных способах минимизации функции ошибки.
В правой части задаются пороги ошибок. а) SVM: Cost: штраф за
потери (используется в задачах классификации и регрессии). ε:
параметр для эпсилон-SVR (R – регрессия) модели, используется в
задачах регрессии. Задаёт меру отличия от истинных значений, в
рамках которой штраф к прогнозируемым значениям не применяется.
б) ν-SVM: Cost: штраф за потери (используется в задачах регрессии). ν:
параметр для ν-SVR модели, используется при решении задач
классификации и регрессии. Верхняя граница доли ошибок обучения и
нижняя граница доли опорных векторов. 3) Тип ядра – это функция,
преобразующая пространство атрибутов в пространство новых
характеристик, которые соответствуют гиперплоскости максимальной
разницы. Это позволяет алгоритму создавать модели со следующими
типами ядер: линейное, полиномиальное, RBF (радиальная базисная
функция) и сигмоида.
55
Рис. 36. Виджет «SVM»
Типы ядер задаются соответствующими функциями. Они используют
следующие константы: а) g (gamma) – рекомендованное значение 1 / k,
где k – это количество атрибутов; однако обучающее множество может
отсутствовать, поэтому значение по умолчанию равно нулю и
пользователь может задать значение вручную) б) с (с0) – по
умолчанию 0 в) d (degree) – значение по умолчанию 3. 4) Задать
предполагаемое отклонение от предполагаемого значения (поле
Numerical Tolerance (допуск)) и максимальное количество итераций
(Iteration Limit). 5) Создать отчёт 6) Применить изменения
Виджет «Naive Bayes» строит модель наивного байесовского
классификатора на основе некоторого набора данных.
56
Рис. 37. Виджет «Наивный байесовский классификатор»
У виджет есть две опции: задать имя виджета, под которым он будет
появляться в других виджетах, и создать отчёт.
Виджет «AdaBoost» (сокращение от «adaptive boosting»,
адаптивное улучшение) реализует упомянутый алгоритм машинного
обучения. Он может использоваться для улучшения эффективности
других алгоритмов. Это достигается за счёт улучшения слабых
классификаторов. AdaBoost решает задачи классификации и регрессии.
Рис. 38. Виджет «AdaBoost»
57
На рис. 38: 1) Задать имя виджета 2) Настроить параметры. Базовый
оцениватель – это дерево и можно задать: а) Количество оценивателей
(number of estimators) б) Скорость обучения (learning rate) – определяет
меру замещения старой информации новой информацией (0 – агент
ничему не обучается, 1 – учитывает только самую последнюю
информацию) в) Зафиксировать начальное число для генератора
случайных чисел (Fixed seed for random generator) – позволяет
получать повторяющиеся результаты. 3) Методы бустинга: а)
Классификационный
алгоритм
(если
на
вход
подан
классификационный алгоритм): SAMME (обновляет веса базового
оценивателя результатами классификации) или SAMME.R (обновляет
веса базового оценивателя оценками вероятности) б) Регрессионная
функция потерь (если на вход подан регрессионный алгоритм):
Линейная, Квадратичная, Экспоненциальная. 4) Создать отчёт 5)
Применить изменения.
Виджет «Neural Network» - строит нейронные сети.
Рис. 39. Виджет «Нейронная сеть»
На рис. 39: 1) Имя виджета 2) Параметры модели: а) Количество
нейронов на скрытый слой: например, нейронная сеть из трёх слоёв
может быть описана так: 2, 3, 2. б) активационная функция для
скрытого слоя: Identity: полезна при решении линейной задачи о
назначениях в узких местах; Logistic: логистическая сигмоида; tanh:
58
гиперболический тангенс; ReLu: блок линейной ректификации. в)
Решатель для оптимизации веса: L-BFGS-B (ограниченное
использование памяти в многомерном кубе): оптимизатор в семействе
квазиньютоновских методов; SGD: стохастический градиентный
спуск; Adam: стохастический оптимизатор, основанный на градиенте.
г) Alpha: L2 штраф (регуляризационный термин) д) Max iterations:
максимальное количество итераций. 3) Создать отчёт 4) Применить
изменения.
Виджет «Stochastic Gradient Descent» (SGD) использует
стохастический градиентный спуск, минимизирующий выбранную
функцию потерь при помощи линейной функции. Алгоритм
аппроксимирует «настоящий» градиент, рассматривая один пример за
раз, и параллельно обновляя модель, основанную на градиенте
функции потерь. Для регрессии, он возвращает предиктор в виде точек
минимума сумм, M-оцениватели (M-estimators). Они особенно
эффективны при обработке разряжённых и объёмных данных.
На рис. 40: 1) Задать имя виджета 2) Параметры алгоритма.
Классификационная функция потерь: а) Hinge (кусочно-линейная
функция потерь) – линейный SVM. б) Logistic Regression
(логистическая регрессия) - логистическая регрессия SGD в) Modified
Huber (модифицированная функция потерь Хьюбера) – сглаженные
потери, допускающие выбросы и нетребовательные к вероятностным
оценкам. г) Square Hinge (квадратичная кусочно-линейная функция
потерь) д) Perceptron (персептрон) - линейная функция потерь
реализованная
посредством
персептрона.
е)
Squared
Loss
(квадратичная ошибка) – «подгонка» под обычный метод наименьших
квадратов ж) Huber (функция потерь Хьюбера) - используется в
устойчивой регрессии, которая менее чувствительна к выбросам, чем
квадратичная ошибка. з) Epsilon insensitive (эпсилон нечувствительная)
– игнорирует ошибки внутри ε. и) Squared epsilon insensitive
(квадратичная эпсилон нечувствительная) – ошибки возведены в
квадрат вне ε-области. 3) Регуляризационные нормы для
предотвращения переобучения: а) Нет б) Lasso (L1) (L1, ведёт к
разреженным результатам) в) Ridge (L2) (L2, стандартный
регуляризатор) г) Elastic net (смесь двух норм штрафов). Сила
регуляризации определяет меру применения регуляризации (чем
меньше регуляризуем, тем больше мы разрешаем модели
подстраиваться под данные), а mixing parameter (параметр
смешивания) определяет меру использования L1 и L2 (1 – используем
L1). 4) Параметры обучения: а) Скорость обучения: Постоянная
59
(постоянная для всех эпох), Оптимальная (эвристика, предложенная
Leon Bottou), Шкала обратных величин (скорость обучения обратна
Рис. 40. Виджет «Стохастический градиентный спуск»
пропорциональна количеству итераций) б) Начальная исходная
скорость обучения в) Показатель шкалы обратных величин: убывание
скорости обучения. г) Число итераций: число проходов по
обучающему множеству д) Перемешивать данные после каждой
итерации – порядок следования записей меняется после каждой
итерации е) Зафиксировать начальное число при случайном
перемешивании 7) Создать отчёт 8) Применить изменения.
60
Описание программного обеспечения
Данная лабораторная работа должна выполняться при помощи
ПО Orange 3.
Домашнее задание студентам для подготовки к выполнения
лабораторной работы
Изучить по литературе особенности построения моделей на
основе данных.
Порядок выполнения лабораторной работы
1. Добавьте на рабочую область виджет «File». С его помощью
загрузите
данные
из
файла
«iris.tab»
(\\Orange3\Lib\sitepackages\Orange\datasets\iris.tab). Переименуйте его в «File Iris».
Добавьте виджеты «Predictions», «Tree» и «Random Forest».
Переименуйте первый в «Predictions RF». Соедините «File Iris» с
«Random Forest», «Predictions RF» и «Tree». Соедините «Random
Forest» и «Tree» с «Predictions RF». Постройте пять различных
ансамблей деревьев решений. Сделайте скриншоты виджета «Random
Forest» и «Predictions RF». Поместите их в отчёт. Сделайте выводы о
полученных результатах.
2. Добавьте к конструкции из п.1 два виджета: «Pythagorean
Forest» и «Pythagorean Tree». Первый подключите к выходу «Random
Forest», а второй – к выходу «Pythagorean Forest». Сделайте 5
скриншотов окон обоих новых виджетов (с разными настройками; 5
скриншотов для каждого виджета). Поместите их в отчёт. Сделайте
выводы о полученных результатах.
3. Добавьте виджет «SVM». Добавьте виджет «Scatter Plot».
Переименуйте его в «Scatter Plot SVM». Соедините «File Iris» с
«SVM», а «SVM» с «Scatter Plot SVM». Соедините «File Iris» с «Scatter
Plot SVM». Постройте пять разных моделей при помощи виджета
«SVM». Сделайте скриншоты окна виджета. Поместите их в отчёт.
Сделайте выводы о полученных результатах.
4. Добавьте виджеты «Naive Bayes», «Test & Score» и «Random
Forest». Соедините «File Iris» с «Test & Score». Соедините «Naive
Bayes» и «Random Forest» со входом «Test & Score». Проделайте пять
экспериментов, внося изменения в настройки всех виджетов, кроме
61
«File Iris». Сделайте скриншоты окон виджетов. Поместите их в отчёт.
Сделайте выводы о полученных результатах.
5. Добавьте на рабочую область виджет «File». С его помощью
загрузите данные из файла «housing.tab» (\\Orange3\Lib\sitepackages\Orange\datasets\housing.tab). Переименуйте его в «File
Housing». Добавьте виджеты «AdaBoost», «Tree» и «Predictions».
Соедините «File Housing» с «AdaBoost», «Tree» и «Predictions».
Соедините «AdaBoost» и «Tree» с «Predictions». Проведите пять
экспериментов внося изменения в настройки всех виджетов, кроме
«File Housing». Сделайте скриншоты окон виджетов. Поместите их в
отчёт. Сделайте выводы о полученных результатах.
6. Добавьте виджеты «Neural Networks» и «Predictions».
Подключите «File Iris» к «Neural Networks» и «Predictions».
Подключите «Neural Networks» к «Predictions». Проделайте пять
экспериментов, внося изменения в настройки всех виджетов, кроме
«File Iris». Сделайте скриншоты окон виджетов. Поместите их в отчёт.
Сделайте выводы о полученных результатах.
7. Добавьте виджеты «Stochastic Gradient Descent», «Tree» и
«Test & Score». Подключите «File Iris», «Stochastic Gradient Descent» и
«Tree» к «Test & Score». Проделайте пять экспериментов, внося
изменения в настройки всех виджетов, кроме «File Iris». Сделайте
скриншоты окон виджетов. Поместите их в отчёт. Сделайте выводы о
полученных результатах.
Содержание отчёта
1. Титульный лист.
2. Цель работы.
3. Результаты выполнения пунктов: 1 – 7.
4. Выводы о проделанной работе.
Контрольные вопросы
1.
2.
3.
4.
Расскажите про возможности виджетов «Random Forest»
«Pythagorean Forest».
Расскажите про возможности виджетов «Pythagorean Tree»
«SVM».
Расскажите про возможности виджетов «Naive Bayes»
«AdaBoost».
Расскажите про возможности виджетов «Neural Networks»
«Stochastic Gradient Descent».
62
и
и
и
и
Список литературы
1.
2.
3.
Documentation [Электронный ресурс]. – Режим доступа:
https://orange.biolab.si/docs/.
Пальмов С. В. Интеллектуальные системы и технологии
[Электронный
ресурс].
–
Режим
доступа:
http://elib.psuti.ru/Palmov_Intellektualniye_sistemy_i_tehnologii_met
od_ukaz_k_lab_rabotam.pdf.
Пальмов С. В. Интеллектуальный анализ данных [Электронный
ресурс].
–
Режим
доступа:
http://elib.psuti.ru/Palmov_Intellektualnyj_analiz_dannyh_uchebnoe_
posobie.pdf.
63
64
Документ
Категория
Без категории
Просмотров
70
Размер файла
2 172 Кб
Теги
lab, metod, analiz, rabota, dannye, 2018, ukazaniya, miftahova, palmov, intellektualnye
1/--страниц
Пожаловаться на содержимое документа