Добавил:
Upload Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
лаба перевод матлаб.docx
Скачиваний:
1
Добавлен:
01.05.2025
Размер:
1 Мб
Скачать
☆

2. Пример создания самоорганизующейся карты.

% Сгенерируем тестовые данные - 1000 случайных точек в диапазоне координат (-1,1) и нанесем их на график:

>> P=rands(2,1000);

>> plot(P(1,:),P(2,:),'+r')

% Создадим самоорганизующуюся карту размером 5 х 6 нейронов:

>> net=newsom([0 1;0 1],[5 6]);

% Нанесем веса нейронов на график. Карта еще не обучилась, поэтому все веса изображены в виде единственной точки

>> plotsom(net.iw{1,1},net.layers{1}.distances)

% Установим количество эпох обучения = 1. Так как данных много, достаточно 1 эпохи обучения. В более сложных ситуациях количество эпох для полной организации карты может составлять 100-200

>> net.trainParam.epochs=1;

% Запустим механизм самообучения

>> net=train(net,P);

TRAINR, Epoch 1/1; TRAINR, Maximum epoch reached.

% Изобразим полученную в результате обучения карту на графике (см. рисунок 22)

>> plotsom(net.iw{1,1},net.layers{1}.distances)

% Теперь если мы сформируем произвольный вектор входа, то самоорганизующаяся карта Кохонена должна указать его принадлежность тому или иному кластеру (классу):

>> p=[0.5;0.3];

>> a=sim(net,p)

a = (16,1) 1

Указанный вектор принадлежит шестнадцатому кластеру.

1 Создайте слой Кохонена для кластеризации входных данных:

1 вариант

2 вариант

3 вариант

4 вариант

5 вариант

x

y

x

y

x

y

x

y

x

y

1

1

7,5

1

1,5

1

1,5

1

1,5

1

2

2

8

2

2,5

2

2,5

2

2,5

2

3

1

8,5

1

2,5

1

2

3

2

3

1,5

10

4,5

4,5

5,5

4,5

5,5

4,5

7

1,5

5

5

3,5

5

4,5

4,5

4,5

4,5

6,5

2

6

4,5

5

5,5

5

5,5

5

5,5

6

1,5

5,5

6

3,5

6

6

6

6

6

6

9

8

10

8

10

8,5

10

2

10

2

10

9

9

9

9

1,5

9

5

6,5

5,5

8,5

1

10

7,5

9

7,5

9

1,5

9

5,5

9,5

2

11

8,5

8

1

8

1

8

1

8

3

10

7,5

10

7,5

10

1

10

1

10

6 вариант

7 вариант

8 вариант

9 вариант

10 вариант

x

y

x

y

x

y

x

y

x

y

1,5

3

1,5

1

1,5

7,5

2

6

1,5

1,5

1

4,5

2,5

2

2,5

1,5

2

7

1

6,5

2

5

2,5

1

6,5

4

5,5

5

4

2,5

7

1,5

5,5

4,5

2

6

8

1

8

4

6,5

2

4,5

4,5

3

7,5

3

8

3,5

1,5

4,5

8

5

5,5

2

9

1

1

1,5

7

6

9

6

6

9

2,5

5

3,5

7

3,5

5

10,5

8,5

10

8

3

8

2

7,5

5

5,5

8,5

1,5

9

2,5

3

4,5

4,5

2,5

2

5,5

9,5

7,5

9

9

4

1,5

2

2

6

1

6

1

8

3

2,5

2

1

8,5

5

4,5

9,5

7,5

10

7,5

5

9

2,5

2,5

1

2 Создайте самообучающуюся карту признаков для кластеризации данных. Тестовые данные сгенерируйте случайным образом в квадрате (-1,1)(-1,1) в количестве:

1 вариант

2 вариант

3 вариант

4 вариант

5 вариант

50

100

150

200

250

6 вариант

7 вариант

8 вариант

9 вариант

10 вариант

300

350

400

450

500