ДОСЛІДЖЕННЯ АЛГОРИТМІВ РОЗПІЗНАВАННЯ ОБРАЗІВ. АЛГОРИТМ МАКСИМIННОЇ ВIДСТАНI.

Інформація про навчальний заклад

ВУЗ:
Національний університет Львівська політехніка
Інститут:
Не вказано
Факультет:
Не вказано
Кафедра:
Кафедра САПР

Інформація про роботу

Рік:
2007
Тип роботи:
Лабораторна робота
Предмет:
Інші
Група:
КН-214

Частина тексту файла (без зображень, графіків і формул):

МIНIСТЕРСТВО ОСВIТИ І НАУКИ УКРАЇНИ Національний унiверситет "Львiвська полiтехнiка" Кафедра САПР  ЗВІТ до лабораторної роботи № 8 на тему: ДОСЛІДЖЕННЯ АЛГОРИТМІВ РОЗПІЗНАВАННЯ ОБРАЗІВ. АЛГОРИТМ МАКСИМIННОЇ ВIДСТАНI Виконав: Гр. КН-214 Перевірив: Денисюк П. Ю. Львiв 2007 1.Мета роботи Вивчити принципи роботи алгоритму k-внутрішніх групових середніх розпізнавання образів. 2. Короткі теоретичні відомості Алгоритм k-внутрішніх групових середніх розпізнавання образів КРОК 1. Вибираються к початкових центрiв кластерiв Z1(1), Z2(1),...,Zk(1). Цей вибір здiйснюється довiльно i, звичайно, в якостi початкових центрiв використовуються першi k результатiв вибiрки з заданої множини образiв. КРОК 2. На k-му кроцi iтерацiї задана множина образiв розподiляється по k кластерах за таким правилом : XєSj(k), якщо ||X-Zj(k)||<=||X-Zj(k)||, для всiх i=1,2,...,k, i(j, де Sj(k) - множина образiв, якi входять в кластер з центром Zj(k). У випадку рiвностi рiшення приймаються довiльним чином. КРОК 3. На основi результатів кроку 2 визначаються новi центри кластерiв Zj(k+1), j=1,2,...,k, виходячи з умови, що сума квадратiв вiдстаней мiж усiма образами, що належать множині Sj(k), i новiм центром кластера повинна бути мiнiмальною. Iншими словами, новi центри кластерiв Zj(k+1) вибираються таким чином, щоб мiнiмiзувати показник якостi Jj=(||X-Zj(k+1)||^2, j=1,2,...,k. XєSj(k) Центр Zj(k+1), що забезпечує мiнiмiзацiю показника якостi, є, по сутi, вибiрковим середнiм, визначеним по множинi Sj(k). Вiдповiдно, новi центри кластерiв визначаються як: Zj(k+1)=(1/Nj)(X, j=1,2,...,k, XЄSj(k), де Nj- число вибiркових образiв, що входять в множину типу Sj(k). Очевидно, що назва алгоритму "К внутрiшнiх групових" визначається способом, прийнятим для послiдовної корекцiї призначення центрiв кластерiв. КРОК 4. Рiвнiсть Zj(k+1) при j=1,2,...,k є умовою збiжностi алгоритму, i при її досягненнi виконання алгоритму припиняється. Iнакше, крок 2. Якiсть залежить: вiд кiлькостi вибираємих центрiв кластерiв; вiд вибору початкових центрiв кластерiв; вiд послiдовностi проглядання образiв; вiд геометричної особливостi даних. Практичне застосування алгоритму вимагає проведення експериментiв, пов'язаних iз вибором рiзних значень параметра k i початковим розмiщенням центрiв кластерiв. 3. Текст програми #include <stdio.h> #include <conio.h> #include <stdlib.h> #include <math.h> #include <graphics.h> #define np 12 #define nc 4 struct point { float x,y; int cluster; }; struct st_cl { float x,y; }; float get_distance(point, st_cl); void show_clusters (st_cl *); void show_points (point *); void main (void) { clrscr(); point mas[np]; st_cl cl[nc], cl2[nc]; printf("\n Enter points\n"); for (int i=0;i<np;i++) { scanf(" %f",&mas[i].x); scanf(" %f",&mas[i].y); mas[i].cluster=10; }; for (i=0;i<nc;i++) { cl[i].x=mas[i].x; cl[i].y=mas[i].y; } int key=1; while (key) { for (i=0;i<np;i++) { float d=get_distance(mas[i],cl[0]); mas[i].cluster=0; for (int j=1;j<nc;j++) if (get_distance(mas[i],cl[j])<d) {mas[i].cluster=j; d=get_distance(mas[i],cl[j]);} } for (int j=0;j<nc;j++) { float ax=0, ay=0; int counter=0; for (i=0;i<np;i++) if (mas[i].cluster==j) { ax+=mas[i].x; ay+=mas[i].y; counter++; } cl[j].x=ax/counter; cl[j].y=ay/counter; } key=0; for (i=0;i<nc;i++) if ((cl2[i].x!=cl[i].x) || (cl2[i].y!=cl[i].y)) key=1; for (i=0;i<nc;i++) cl2[i]=cl[i]; } show_clusters(cl); getch(); } float get_distance(point p1, st_cl p2) { return sqrt((p1.x-p2.x)*(p1.x-p2.x)+(p1.y-p2.y)*(p1.y-p2.y)); } void show_clusters (st_cl * cl) { printf("\n CLUSTERS\n"); for (int i=0;i<nc;i++) printf(" cluster %d - ( %f : %f ) \n",i,(cl+i)->x,(cl+i)->y); } void show_points (point * mas) { printf("\n POINTS\n"); for (int i=0;i<np;i++) printf(" (%f:%f) cluster - %d \n",(mas+i)->x,(mas+i)->y,(mas+i)->cluster); } 4. Висновок Виконавши лабораторну роботу, я вивчив принципи роботи алгоритму k-внутрішніх групових середніх розпізнавання образів.
Антиботан аватар за замовчуванням

01.01.1970 03:01-

Коментарі

Ви не можете залишити коментар. Для цього, будь ласка, увійдіть або зареєструйтесь.

Ділись своїми роботами та отримуй миттєві бонуси!

Маєш корисні навчальні матеріали, які припадають пилом на твоєму комп'ютері? Розрахункові, лабораторні, практичні чи контрольні роботи — завантажуй їх прямо зараз і одразу отримуй бали на свій рахунок! Заархівуй всі файли в один .zip (до 100 МБ) або завантажуй кожен файл окремо. Внесок у спільноту – це легкий спосіб допомогти іншим та отримати додаткові можливості на сайті. Твої старі роботи можуть приносити тобі нові нагороди!
Нічого не вибрано
0%

Оголошення від адміністратора

Антиботан аватар за замовчуванням

Подякувати Студентському архіву довільною сумою

Admin

26.02.2023 12:38

Дякуємо, що користуєтесь нашим архівом!