МИНОБРНАУКИ РОССИИ
––––––––––––––––––––––––––––––––––––
Санкт-Петербургский государственный электротехнический университет «ЛЭТИ»
––––––––––––––––––––––––––––––––––––
ОБРАБОТКА ДАННЫХ В СРЕДЕ MATLAB
Методические указания к практическим и лабораторным занятиям
Санкт-Петербург Издательство СПбГЭТУ «ЛЭТИ»
2013
УДК 615.47:004.93
Обработка данных в среде MATLAB: Методические указания к практическим и лабораторным занятиям / Сост.: А. П. Немирко, Л. А. Манило. СПб.: Изд-во СПбГЭТУ «ЛЭТИ», 2013. 35 с.
Содержат описания лабораторных работ по выполнению математических расчетов, связанных с автоматическим анализом биомедицинских данных, с использованием программного пакета MATLAB.
Предназначены для студентов, обучающихся по направлению подготовки бакалавров и магистров 201000 «Биотехнические системы и технологии», а также могут быть полезны научным работникам и инженерам, специализирующимся в области компьютерной обработки биомедицинских данных.
Утверждено редакционно-издательским советом университета
в качестве методических указаний
© СПбГЭТУ «ЛЭТИ», 2013
2
Данные методические указания1 предназначены для помощи студентам при выполнении практических и лабораторных занятий по обработке данных в среде MATLAB. Основное направление работ – анализ объектов, описываемых многомерными данными. Поэтому в данные указания включено описание методов сравнения одномерных и многомерных данных, сведение многомерного описания к одномерному и двумерному случаю (метод главных компонент и дискриминантный анализ Фишера), методы классификации данных. Для успешного выполнения работ учащимся может потребоваться использование дополнительных учебных пособий (см. список рекомендуемой литературы). Студентам необходима предварительная подготовка к каждому занятию, включающая ознакомление с рассматриваемыми методами обработки биомедицинских данных, а также с теми функциями и возможностями MATLAB, которые используются в данной работе.
Перед началом занятий необходимо организовать на жестком диске компьютера отдельную папку, которая будет использоваться в качестве рабочей. В эту папку перед началом работы должны записываться необходимые для её выполнения исходные файлы, а в ходе выполнения работы – создаваемые программы, а также полученные результаты (графики и файлы с данными). Ввиду того что пакет MATLAB не адаптирован к русскому шрифту, следует избегать использования русских букв как в именах переменных или файлов, так и в текстовых надписях, а также в комментариях к программам. Кроме того, имена файлов не должны начинаться с цифр.
1. ПРЕДСТАВЛЕНИЕ ДАННЫХ
Цели работы: получение навыков работы с массивами данных в системе MATLAB; вычисление статистических параметров массивов и исследование статистической связи между массивами.
Основные положения
В дальнейшем будут использоваться два вида данных: искусственные статистические данные, генерируемые системой MATLAB, и реальные данные, также извлекаемые из пакета MATLAB.
1 Работа выполнялась при финансовой поддержке РФФИ (гранты № 12-01-00583 и 13-01-00540) и Министерства образования и науки РФ (государственный контракт № 16.522.12.2016 от 10.10.2012 г.).
3
Статистические данные
Пример 1.1
Данные (по 10 реализаций каждого класса) по трем классам генерируются с помощью функции генерации из нормального закона R = normrnd(MU, SIGMA,m,n), где MU – среднее, SIGMA – среднеквадратичное отклонение (СКО), m, n – количества строк и столбцов матрицы R. Параметры распределений по трем классам назначим так, как показано в табл. 1.1.
|
|
|
|
|
Таблица 1.1 |
|
|
|
|
|
|
|
|
Класс |
|
Среднее значение |
|
СКО |
||
1-й признак |
2-й признак |
3-й признак |
4-й признак |
|||
|
|
|||||
1-й класс, A |
m = 5 |
m = 4 |
m = 7 |
m = 2 |
δ = 1 |
|
2-й класс, B |
m = 3 |
m = 5 |
m = 4 |
m = 3 |
δ = 2 |
|
3-й класс, C |
m = 7 |
m = 6 |
m = 3 |
m = 2 |
δ = 1 |
|
Могут использоваться и другие генераторы случайных чисел, например randn(n,m), в результате которого выдается матрица размерностью (n × m), в каждом столбце которой генерируются отсчеты нормального распределения с нулевым средним и единичной дисперсией.
1-й класс формируется следующим образом:
a11=normrnd(5,1,10,1); % генерация столбца 1-го признака a12=normrnd(4,1,10,1); % генерация столбца 2-го признака a13=normrnd(7,1,10,1); % генерация столбца 3-го признака a14=normrnd(2,1,10,1); % генерация столбца 4-го признака a1=[a11 a12 a13 a14] % матрица 10 х 4 первого класса
Аналогично для 2-го и 3-го классов формируются матрицы a2 и a3.
a21=normrnd(3,2,10,1);
a22=normrnd(5,2,10,1);
a23=normrnd(4,2,10,1);
a24=normrnd(3,2,10,1);
a2=[a21 a22 a23 a24]; % матрица 10 х 4 второго класса a31=normrnd(7,1,10,1);
a32=normrnd(6,1,10,1);
a33=normrnd(3,1,10,1);
a34=normrnd(2,1,10,1);
a3=[a31 a32 a33 a34]; % матрица 10 х 4 третьего класса
Объединив все матрицы в одну a=[a1;a2;a3], получим результирующую матрицу a размерностью 30 × 4, первые 10 строк которой описывают 1-й класс, вторые – 2- й класс и третьи 3-й, причем все объекты описываются по 4-м признакам:
4
a=[a1;a2;a3];
Теперь получим групповую матрицу g, в которой запишем соответствующие наименования классов для каждого наблюдения. Классов всего три: A, B, C.
gg=['A'; 'A'; 'A'; 'A'; 'A'; 'A'; 'A'; 'A'; 'A'; 'A'; 'B'; 'B'; 'B'; 'B'; 'B'; 'B'; 'B'; 'B'; 'B'; 'B'; 'C';'C'; 'C'; 'C'; 'C'; 'C'; 'C'; 'C'; 'C'; 'C'];
% gg – символьная матрица g=cellstr(gg);
%cellstr – функция, преобразующая символьную матрицу
%в матрицу строк
%g – матрица элементов (строк); ее размерность равна 30х1;
%первые 10 строк матрицы g равны ‘A’, вторые – ‘B’, третьи –
%‘C’
Получение экспериментальных данных из пакета MATLAB («Ирисы Фишера»)
Пример 1.2
Ирисы Фишера – это набор данных для задачи классификации, на примере которого Рональд Фишер (английский ученый, один из основоположников математической генетики) в 1936 г. продемонстрировал работу разработанного им метода дискриминантного анализа. Ирисы Фишера состоят из данных о 150 экземплярах ириса, по 50 экземпляров трёх видов – ириса щетинистого, ириса виргинского и ириса разноцветного. Для каждого экземпляра измерялись четыре характеристики: длина чашелистика; ширина чашелистика; длина лепестка; ширина лепестка. Данные по ирисам Фишера вошли в состав системы MATLAB и могут использоваться для иллюстраций работы алгоритмов классификации. В матрицах системы MATLAB, содержащих статистические данные, строки используются для представления наблюдений, а столбцы – для представления измеренных переменных.
Строка
load fisheriris % Данные по ирисам Фишера
загружает переменную измерений (meas) и переменную видов (species) в рабочую область MATLAB. Переменная измерений представляет собой числовую матрицу размерностью 150 × 4, в которой представлены 150 наблюдений 4 различных измеренных переменных (по столбцам: длина чашелистика, ширина чашелистика, длина лепестка, ширина лепестка соответственно). Наблюдения в измерениях принадлежат трем различным видам ирисов: щетинистый (setosa), разноцветный (versicolor) и виргинский (virginica). Данные
5