Элементы кластерного анализа. Метод k-средних

Страницы работы

Содержание работы

Министерство образования и науки Украины

Национальный аэрокосмический университет им. Н.Е. Жуковского «ХАИ»

Кафедра 304

Лабораторная работа № 7

по дисциплине «Анализ данных»

Выполнила студентка   гр. 335  Старцева А.В.

Проверила  аспирант каф. 304 Соколова Е.О.

Харьков

2014

Элементы кластерного анализа

Метод k-средних

Постановка задачи.Рассмотреть элементы кластерного анализа на примере ирисов Фишера. Требуется реализовать алгоритм k-средних в виде компьютерной программы. Оценить полученные результаты.

Набор данных получается из файла данных "iris.dat '. Этот набор данных был собран ботаником Андерсон и содержит случайные образцы цветов, принадлежащих к трем видам ирисов setosa, лишай, и virginica. Для каждого из видов, 50 наблюдения для чашелистник длины чашелистиков, ширине, длине лепестка, и лепесток шириной записаны.

Набор данных разбивается на три группы названных setosa, лишай, и virginica. Это показано в следующем фрагменте кода.

Данные, которые будут кластерные 4-мерных данных и представляет длину чашелистиков, чашелистиков ширина, длина лепестка, а лепесток ширину. От каждого из трех групп (setosa, лишай и virginica), две характеристики (например, чашелистник длина по сравнению с чашелистник ширина) цветов наносятся в 2-мерном участке. Это делается с помощью следующий фрагмент кода. На каждом шаге итерации, кластерные центры и точка ранг членства обновляются и целевая функция минимизируется, чтобы найти лучшее место для кластеров. Процесс останавливается, когда максимальное число итераций достигнуто, или когда целью улучшения функции между двумя последовательными итераций меньше минимального размера, указанного улучшение.

load iris.dat

setosa = iris((iris(:,5)==1),:);        % данных для setosa

versicolor = iris((iris(:,5)==2),:);    % данных для лишай

virginica = iris((iris(:,5)==3),:);     % данных для virginica

obsv_n = size(iris, 1);                 % общее число наблюдений

Characteristics = {'sepal length','sepal width','petal length','petal width'};

pairs = [1 2; 1 3; 1 4; 2 3; 2 4; 3 4];

h = figure;

for j = 1:6,

    x = pairs(j, 1);

    y = pairs(j, 2);

    subplot(2,3,j);

    plot([setosa(:,x) versicolor(:,x) virginica(:,x)],...

         [setosa(:,y) versicolor(:,y) virginica(:,y)], '.');

    xlabel(Characteristics{x},'FontSize',10);

    ylabel(Characteristics{y},'FontSize',10);

end

cluster_n = 3;                          % Количество кластеров

expo = 2.0;                             % Экспонента U

max_iter = 100;                         % Макс.  итерация

min_impro = 1e-6;                       % Мин.  улучшение

% Инициализации нечеткой раздел

U = initfcm(cluster_n, obsv_n);

 % График данные, если окно цифра закрыт

if ishghandle(h)

    figure(h);

else

    for j = 1:6,

        x = pairs(j, 1);

        y = pairs(j, 2);

        subplot(2,3,j);

        plot([setosa(:,x) versicolor(:,x) virginica(:,x)],...

             [setosa(:,y) versicolor(:,y) virginica(:,y)], '.');

        xlabel(Characteristics{x},'FontSize',10);

        ylabel(Characteristics{y},'FontSize',10);

    end

end

 % Итерации

for i = 1:max_iter,

    [U, center, obj] = stepfcm(iris, U, cluster_n, expo);

    fprintf('Iteration count = %d, obj. fcn = %f\n', i, obj);

    % Центры Обновить

    if i>1 && (abs(obj - lastobj) < min_impro)

        for j = 1:6,

            subplot(2,3,j);

            for k = 1:cluster_n,

                text(center(k, pairs(j,1)), center(k,pairs(j,2)), int2str(k), 'FontWeight', 'bold');

            end

        end

        break;

    elseif i==1

        for j = 1:6,

            subplot(2,3,j);

            for k = 1:cluster_n,

                text(center(k, pairs(j,1)), center(k,pairs(j,2)), int2str(k), 'color', [0.5 0.5 0.5]);

            end

        end

    end

    lastobj = obj;

end

>> Untitled4

Iteration count = 1, obj. fcn = 28858.122927

Iteration count = 2, obj. fcn = 20630.279236

Iteration count = 3, obj. fcn = 13991.757133

Iteration count = 4, obj. fcn = 8376.023429

Iteration count = 5, obj. fcn = 6789.945484

Iteration count = 6, obj. fcn = 6378.219364

Iteration count = 7, obj. fcn = 6205.147592

Iteration count = 8, obj. fcn = 6125.249246

Iteration count = 9, obj. fcn = 6088.297601

Iteration count = 10, obj. fcn = 6071.590995

Iteration count = 11, obj. fcn = 6064.222106

Iteration count = 12, obj. fcn = 6061.035582

Iteration count = 13, obj. fcn = 6059.676957

Iteration count = 14, obj. fcn = 6059.103196

Iteration count = 15, obj. fcn = 6058.862415

Iteration count = 16, obj. fcn = 6058.761785

Iteration count = 17, obj. fcn = 6058.719840

Iteration count = 18, obj. fcn = 6058.702387

Iteration count = 19, obj. fcn = 6058.695133

Iteration count = 20, obj. fcn = 6058.692120

Iteration count = 21, obj. fcn = 6058.690869

Iteration count = 22, obj. fcn = 6058.690350

Iteration count = 23, obj. fcn = 6058.690135

Iteration count = 24, obj. fcn = 6058.690045

Iteration count = 25, obj. fcn = 6058.690008

Iteration count = 26, obj. fcn = 6058.689993

Iteration count = 27, obj. fcn = 6058.689987

Iteration count = 28, obj. fcn = 6058.689984

Iteration count = 29, obj. fcn = 6058.689983

Iteration count = 30, obj. fcn = 6058.689982

                

Похожие материалы

Информация о работе

Предмет:
Анализ данных
Тип:
Отчеты по лабораторным работам
Размер файла:
80 Kb
Скачали:
0