Лабораторная работа: Кластеризация с помощью нейронных сетей

w=h.IW{1}; % вывод графиков исходных данных и выявленных центров кластеров

plot(p(1,:),p(2,:),'^r'),grid;

hold on;

plot(w(:,1),w(:,2),'ob');

xlabel('p(1)');

ylabel('p(2)');

A=0.6

B=0.5

p=[A;B];

plot(A,B,'^k')

y=sim(h,p) %Onpoc сети

A =0.6000

B =0.5000

y = (2,1) 1

Результат работы программы представлен на рис. 1. Кроме того, его можно увидеть в командном окне: У= (2,1) 1

Предъявленный вектор отнесен ко второму кластеру. Теперь данный алгоритм применим к реальной (хоть и элементарной) задаче кластеризации. На вход нейронной сети будем подавать данные весоростовых показателей людей и попробуем выявить три класса (кластера):

1) нормальный весоростовой показатель;

2) избыток веса;

3) недостаток веса.

2. %входные данные (первая строка матрицы - рост; вторая - вес)

p=[175 180 182 175 183 176 183 176 183 176 175 180 178 180 178 182 178 182 179 174 172 179;

70 75 100 99 42 48 76 72 40 45 92 96 70 69 95 90 79 82 80 50 96 91] %создаем НС Кохонена с 3 кластерами (нормальный весоростовой показатель, избыток веса и недостаток веса)

h=newc([0 200;0 100],3,.1)

h.trainParam.epochs=500; %3адание количества циклов обучения

h=train(h,p)

w=h.IW{1};

plot(p(1,:),p(2,:),'^r');

hold on;

plot(w(:,1),w(:,2),'ob');

К-во Просмотров: 479
Бесплатно скачать Лабораторная работа: Кластеризация с помощью нейронных сетей