Добавил:
Upload Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:

зелень / 5лаба

.doc
Скачиваний:
5
Добавлен:
20.02.2016
Размер:
60.42 Кб
Скачать

Министерство образования и науки,молодежи и спорта Украины

Государственное высшее учебное заведение Украинский государственный химики-технологический университет

Лабораторная работа №5 «Кластеризация»

Выполнила

ст.группы 4-CKC-5 Пономарёв В.Н. Проверили: Зеленцов Д.Г Новикова Л.В.

Днепропетровск 2012

14. Провести кластеризацию образцов на три кластера:

; ; ; ; ; ; ; ; .

Начальное значение весов: . Норма обучения k = 0,4. В качестве меры приближения принять расстояние между точками.

Код программы:

#include <iostream.h>

#include <conio.h>

#include <math.h>

float Fun( float x1[3], float W[3][3]);

float x1[3]={0.1,0.3-0.4 },x2[3]={0.5,-1.1, 0.7},x3[3]={-0.1,0.5,1.2};

float x4[3]={0.5,1.3, -0.3 },x5[3]={-0.5,-1.1,-0.3},x6[3]={-0.3, 0.3, 0.3};

float x7[3]={-0.5,0.6,-1.3}, x8[3]={0.6, 1.0, 0.7},x9[3]={-0.2, -1.0,-0.4};

float W[3][3]={0.3, 0.2, -0.3, 0.1, -0.1, 0.2, 0.4, 0.3, 0.1};

float d[3];

void main()

{

clrscr();

for ( int e=0; e<6; e++)

{

W[3][3]=Fun(x1,W);

W[3][3]=Fun(x2,W);

W[3][3]=Fun(x3,W);

W[3][3]=Fun(x4,W);

W[3][3]=Fun(x5,W);

W[3][3]=Fun(x6,W);

W[3][3]=Fun(x7,W);

W[3][3]=Fun(x8,W);

W[3][3]=Fun(x9,W);

for (int i=0; i<3; i++)

{{for (int j=0; j<3;j++)

cout<<W[i][j]<<" ";

}

cout<<endl;}

cout<<endl;}

getch();

}

float Fun(float x1[3], float W[3][3])

{

for ( int i=0; i<3; i++)

{ for (int j=0; j<3;j++)

d[i]+=pow((x1[j]-W[j][i]),2);

}

float min=99;

int ind=0;

for ( i=0; i<3; i++)

{

if (d[i]<min)

{

min=d[i];

ind=i;

}

}

for (int j=0; j<3;j++)

{

W[j][ind]=W[j][ind]+0.3*(x1[j]-W[j][ind]);

}

return (W[3][3]);

}

Результат:

Соседние файлы в папке зелень