БЕЛОРУССКИЙ ГОСУДАРСТВЕННЫЙ УНИВЕРСИТЕТ
ФАКУЛЬТЕТ РАДИОФИЗИКИ И КОМПЬЮТЕРНЫХ ТЕХНОЛОГИЙ
Кафедра системного анализа и компьютерного моделирования
Н. Н. Яцков, И. П. Шингарв
ИНТЕЛЛЕКТУАЛЬНЫЙ
АНАЛИЗ ДАННЫХ
Методические указания
к лабораторным работам
Для студентов специальностей
1-31 04 02 «Радиофизика», 1-98 01 01 «Компьютерная безопасность», 1-31 03 07 «Прикладная информатика»
МИНСК 2012 УДК 604.8 (076.5) ББК 32.813 Я93 Рекомендовано cоветом факультета радиофизики и компьютерных технологий 19 июня 2012 г., протокол № 12 Рецензент кандидат технических наук, доцент В. И. Микулович Яцков, Н. Н.
Я93 Интеллектуальный анализ данных: метод. указания к лабораторным работам / Н. Н. Яцков, И. П. Шингарв. – Минск: БГУ, 2012. – 51 с.
Методические указания предназначены для проведения лабораторного практикума по курсу «Интеллектуальный анализ данных»
для студентов факультета радиофизики и компьютерных технологий.
Содержит учебный материал по методам обработки и анализа многомерных наборов данных.
УДК 604.8 (076.5) ББК 32. © Яцков Н. Н., Шингарв И. П., © БГУ,
ВВЕДЕНИЕ
Настоящее издание представляет собой руководство к лабораторному практикуму по курсу «Интеллектуальный анализ данных». Лабораторные работы выполняются в интегрированной вычислительной среде MATLAB.Цель настоящего практикума – научить студента применять методы интеллектуального анализа данных для решения ряда прикладных задач обработки и анализа многомерных наборов данных на примере использования среды MATLAB. Тематика практикума охватывает алгоритмы нелинейного метода наименьших квадратов, метода главных компонент, методов стохастического поиска экстремумов функции, а также применение нейронных сетей для кластеризации и классификации данных. Приведенные справочные теоретические сведения содержат достаточный объем информации, исключающий необходимость прибегать другим источникам литературы в ходе выполнения практических работ.
Прилагается компакт-диск, содержащий файлы заданий и приложений к лабораторному практикуму.
ЛАБОРАТОРНАЯ РАБОТА №
ОСНОВЫ РАБОТЫ В MATLAB
Цель работы. Изучение элементов языка, основных функций и среды MATLAB. Решение систем линейных уравнений. Создание пользовательских функций и построение их графиков в среде MATLAB. Изучение генератора базовой случайной величины.Краткие сведения. Система MATLAB (MATrix LABoratoty) предназначена для выполнения научных и инженерных расчетов на компьютере.
С ее помощью эффективно решаются задачи вычислительной математики, линейной алгебры, математической статистики и математического моделирования (символьная математика, уравнения в частных производных, численное интегрирование, аппроксимация, решение оптимизационных задач). В состав MATLAB входит несколько десятков специализированных пакетов (Toolbox), предназначенных для обработки данных в различных областях науки и техники (системы управления, нечеткие системы, нейронные сети, цифровая обработка сигналов и изображений, анализ временных рядов).
MATLAB – это одновременно и операционная среда и язык программирования. Язык интерпретатора команд MATLAB прост и легко поддается изучению. Из командной строки можно вызвать отдельную команду или программу (последовательность команд), оформленную в виде mфайла.
Загрузка системы MATLAB и работа в главном окне 1.
Загрузить MATLAB: кнопка Пуск / Программы / MATLAB. Создать на доступном диске собственную папку: имя папки набирайте латинскими буквами. Текущей папкой среды MATLAB назначьте свою созданную папку (см. рис. 1.1).
Рис. 1.1. Окно текущей папки среды MATLAB Вычисления можно производить прямо в командном окне. Для этого в главном окне после символа >> наберите любые арифметические действия. Результат будет сохранен в автоматически созданной переменной ans.
При выполнении большого количества вычислений (например, при реализации некоторого алгоритма) работать в подобном режиме не всегда удобно. В таких случаях следует оформить вычисления в виде m-файлов.
Задание 1. Выполните произвольные вычисления в командном окне, попробуйте использовать различные арифметические операции и задайте с помощью круглых скобок приоритет их выполнения.
M-файлы, как правило, содержат последовательность команд. Фактически в m-файле содержится код пользовательской программы, который удобно редактировать и дополнять.
Для создания m-файла следует зайти в меню File\ New\ M-file. В результате открывается текстовый редактор MATLAB, предназначенный для создания и редактирования подобных файлов.
Теперь следует сохранить m-файл: в меню редактора File\ Save as…\, в диалоговом окне задать имя файла\ OK.
В созданном m-файле можно запрограммировать любые арифметические вычисления. Они будут сохранены в этом файле, и их можно выполнить на другом компьютере, на котором установлен MATLAB.
Полезно включать в m-файл функцию path, которая задат путь поиска функций и файлов, к которым происходит обращение.
Например, в текущей папке содержится папка Functions, в которой находится файл myfunc.m. Чтобы вызвать функцию myfunc необходимо указать путь для ее поиска: path('Functions/',path) ВНИМАНИЕ! Имя файла не должно начинаться с цифры, содержать пробелы. Для задания имени файла следует использовать только латинские буквы.
Задание 2. Создайте m-файл с произвольным именем. Сохраните его в своей рабочей папке.
Использование справочной системы MATLAB содержит большое число встроенных математических функций. Для того, чтобы пользоваться встроенной функцией необходимо знать, какие параметры и в какой последовательности следует в не передавать. Справку о встроенной функции можно получить набрав в командном окне команду help и далее имя используемой функции (например, sin): help sin. Вызов расширенной справки производится из главного меню MATLAB: Help\ Product help (или нажать клавишу F1). Поиск нужной функции осуществляется в строке поиска по некоторому ключевому слову.
Задание 3. Получите справку по следующим операциям и функциям: ^, asin, inv, plot.
Вспомогательные функции Очистка экрана с помощью clc. С помощью команды clc можно очистить видимое содержимое командного окна системы MATLAB. Для этого в главном окне необходимо просто набрать clc и нажать клавишу Ввод (Enter) – экран очистится от всех введенных записей.
Очистка рабочего пространства. Рабочее пространство системы MATLAB (Workspace) – специально зарезервированная область оперативной памяти, в которой хранятся значения переменных, вычисляемых в рамках текущего сеанса.
С помощью команды clear all произведите очитку рабочего пространства системы MATLAB – сотрите из оперативной памяти все вычисленные значения переменных.
Задание 4. Произведите очистку экрана и рабочего пространства.
Работа с векторами и матрицами Объявление векторов и матриц. Объявление векторов и матриц производится следующим образом:
M=[1 2 3 4 5; 6 7 8 9 10; 11 12 13 14 15]; % Создание матрицы Если после объявления вектора (или матрицы) поставить точку с запятой (;), то результат V (или M) будет вычислен, но значения переменных выводится в командное окно не будут.
Доступ к отдельным элементам вектора и матрицы. Доступ к отдельному элементу вектора: V(3) – третий элемент вектора V.
Доступ к отдельному элементу матрицы: M(2,3) – элемент матрицы из второй строки и третьего столбца матрицы M.
Доступ ко всему третьему столбцу матрицы M: M(:,3).
Доступ ко всей второй строке матрицы M: M(2,:).
Добавление и удаление столбцов матрицы. Добавление строки к матрице:
S=[1 2 3 4 5];
M=[M;S];
Добавление столбца к матрице (используется запятая вместо точки с запятой в последнем операторе):
S=[1; 2; 3];
M=[M,S];
Удаление всего третьего столбца матрицы M: M(:,3)=[ ].
Удаление всей второй строки матрицы M: M(2,:)=[ ].
Нахождение максимального и минимального элементов матрицы Пусть дана матрица C. С помощью функций min, max можно находить минимальные и максимальные элементы по строкам, по столбцам и по всей матрице:
min(C,[ ],1) – вектор минимальных элементов, найденных по столбцу, min(C,[ ],2) – вектор минимальных элементов, найденных по строке (аналогично для функции max).
Для поиска минимального и максимального элемента по всей матрице соответствующая функция (min или max) применяется два раза.
Задание 5. Введите в test_matrix.m описанные выше процедуры объявления вектора и матрицы, процедуры доступа к элементам вектора и матрицы, поиск минимального и максимального элемента в матрице. Просмотрите результат в командном окне.
Добавьте в test_matrix.m код, добавляющий и удаляющий вектор к матрице.
Задание 6. Объявите матрицу C размерности 5 строк на 5 столбцов с произвольными элементами. С помощью функций min, max найдите минимальные и максимальные элементы по строкам, по столбцам и по всей матрице.
Добавьте соответствующий код в файл test_matrix.m.
Многомерные массивы Многомерные массивы – массивы с размерностью больше двух (рис. 1.2). Для доступа к элементу такого массива необходимо задавать три и более индекса.
Для объявления, например, трехмерного массива состоящего Рис. 1.2. Схематическое представление из нулей следует вызвать функцию zeros():
A = zeros(2,3,4);
В результате получится трехмерный массив (пространственная матрица), состоящий из двумерных матриц.
Доступ к элементу осуществляется путем указания индексов для трехмерного массива: A(номер строки, номер столбца, номер матрицы):
A(1,2,1).
Размер массива. Размер вектора, матрицы или многомерного массива можно узнать, вызвав функцию size():
size(A);
Транспонирование вектора. Транспонирование вектора и матрицы осуществляется помощью операции ':
b=[1 2 3 4];
s=b’;
Арифметические операции с векторами и матрицами По умолчанию все действия (+, –, *, /, ^ - возведение в степень) выполняются над матрицами по правилам линейной алгебры.
a=[2 3 4 5];
b=[1 2 3 4];
c=a+b;
Для поэлементного перемножения двух векторов необходимо использовать оператор точка:
d=a.*b;
В результате перемножения вектора на вектор по правилам линейной алгебры получаем число (вектор b при этом надо транспонировать):
a=[2 3 4 5];
b=[1 2 3 4];
c=a*(b');
Следует помнить, что для выполнения действий над элементами матриц, перед знаками *, /, ^ необходимо дополнительно поставить точку.
Массивы строковых переменных Создание строковой переменной производится с использованием одинарных кавычек Distance = 'euclidean' Создание массива строковых переменных производится с помощью массива ячеек (cell array) Distances = {'euclidean','cityblock','minkowski'} Задание 7. Получить решение x заданной системы линейных уравнений вида A* x = B, где A – квадратная матрица n n, B – вектор размерности n. Решение данной системы уравнений можно получить, набрав строку кода x =inv(A)*B, причем предварительно следует задать значения матрицы А и вектора В, функция inv() – вычисляет обратную матрицу для матрицы A.
Для случая A=[2 1; 3 4] и B=[4; 11] решите уравнение A* x = B. Обратите внимание, что вектор B – состоит из одного столбца (используется разделитель столбцов матрицы точка с запятой (;)).
Проверьте найденное решение, подставив его в исходное уравнение.
Добавьте в test_matrix.m соответствующий код.
10. Работа с графикой Пример программы, реализующей построение графика функции sin.
x=0:0.1:6.28; % Объявление вектора аргумента 1. Для каких задач обработки экспериментальных данных используется нелинейный метод наименьших квадратов?
2. В чем состоит суть метода наименьших квадратов?
3. Запишите вид выражения для целевой функции в НМНК.
4. Чему равны веса в выражении для целевой функции v2()?
5. Чему равно число степеней свободы v в выражении для нормированного v2?
6. Каким образом вычислить доверительный интервал для оцененного параметра ?
7. Для каких целей используются функции MATLAB: fopen, load, path, fscanf, nlinfit, nlparci, chi2inv, tinv, diag?
ЛАБОРАТОРНАЯ РАБОТА №
МЕТОД ГЛАВНЫХ КОМПОНЕНТ
Цель работы. Практическое освоение метода главных компонент для решения задач снижения размерности и визуализации многомерных данных.
КРАТКИЕ СВЕДЕНИЯ
Во многих экспериментах по обработке многомерных данных приходится сталкиваться с задачами связанными с наглядным представлением данных (визуализация данных), снижением размерности данных без существенной потери информативности данных или (сжатием данных), стремлением к лаконизму исследуемых данных (упрощение данных). Для решения подобных задач используются методы, в которых снижение размерности пространства происходит одновременно с его преобразованием. Это – метод главных компонент, факторный анализ, канонический анализ. Характерной особенностью данных методов является то, что происходит выбор и оценка значимости не отдельных переменных, а информативных по совокупности групп переменных. В данной работе рассматривается метод главных компонент.В общем виде задача снижения размерности признакового пространства может быть сформулирована следующим образом. Пусть многомерные данные представлены N - числом исследуемых объектов n1, n2, …, nN (табл. 3.1), каждый из которых ni = (xi1, xi2, …, xiK), i = 1,…, K, характеризуется набором из K – признаков X1,…, XK (измеряемых характеристик объектов).
Необходимо определить такое линейное преобразование, задаваемое матрицей A, в результате действия которого исходные данные выражаются набором (матрицей) главных компонент Z = (Z1, Z2, …, ZK), где первые