You are on page 1of 9

Міністерство освіти та науки України

Харківський національний університет радіоелектроніки

Лабораторна робота №2
з дисципліни: «Інтелектуальний аналіз даних»
на тему: «СІМЕЙСТВО МЕТОДІВ РОЗБИТТЯ З
ВІЗУАЛІЗАЦІЄЮ РЕЗУЛЬТАТУ РОБОТИ АЛГОРИТМУ»

Виконав
ст. групи ПЗПІ-17-1
Макєєв О.С.

Перевірив
асистент Данієль Я. Д.

Харків 2020
Мета роботи

Ознайомитись з поняттям кластеризації даних та основних методів


кластеризації. Ознайомитись з алгоритмами, що відносяться до сімейства
методів розбиття. Ознайомитись з особливостями використання методу
кластеризації k середніх та побудови дендрограми.

Хід роботи

Для даної роботи було обрано15 варіант.


Умова
Кількість точок – 350
Кількість кластерів – 4
Параметр стандартного відхилення кластерів – 0.8

Спершу створимо та відобразимо точки, над якими відбуватиметься


кластеризація виокристовуючі вхідні параметри. На рисунку 1 зображено
створені точки на площині.

Рисунок 1 – 350 точок на площині


Оберемо випадковим чином центри кластерів серед побудованих
точок(див. рис. 2).

Рисунок 2 – Перші центри кластерів


Тепер потрібно приписати кожну точку до кластеру, щоб визначити,
якому кластеру належатиме точка. Будемо розраховувати евклідову відстань
до кожного центру кластера.

Рисунок 3 – Перші утворені кластери


Як видно з рисунку 3 було створено 4 кластери, які не можна вважати
коректними та готовими для використання.
Розрахуємо новий центр кожного кластера як елемент, ознаки якого
розраховуються як середнє арифметичне ознак об’єктів, що входять у цей
кластер.
На рисунку 4 зображено зміну координат центроїдів.

Рисунок 4 – Зміна координат центроїдів

Тепер можна повторювати дві останні дії (утворення кластерів з точок


на основі евклідової відстані) та зміщення координат центроїду до
геометричного центру новоутворенного кластеру. Припиняємо роботу
алгоритму після того як центроїди перестануть «рухатися» або після 10-ої
ітерації.

Рисунок 5 - Результат роботи алгоритму кластеризації


Після декількох ітерацій центроїди стали стабільними та кластери
перестали змінюватись, що означає стійкість цих кластерів.

Код застосунку

Для написання програми було використана мова програмування python.


Для створення точок із задано кількістю кластерів та праметром
стандартного відхилення кластерів використовується функція з пакету sklearn.

x, y = datasets.make_blobs(n_samples=350,
centers=4, cluster_std=0.8, random_state=1675)

Для розрахунку відстані між точками використовується евклідова


відстань за допомогою формули, взятої з пакету numpy.

def Euclidean_dist(X,Y):
return np.linalg.norm(np.array(X) - np.array(Y))

Для розбиття масиву точок на 4 кластери виконується наступний


алгоритм
first_group=[]
second_group=[]
third_group=[]
fourth_group=[]
for i in range(350):
fir=Euclidean_dist(first_centroids[0],x[i])
sec=Euclidean_dist(first_centroids[1],x[i])
thr=Euclidean_dist(first_centroids[2],x[i])
fth=Euclidean_dist(first_centroids[3],x[i])
if fir<=sec and fir<=thr and fir<=fth:
first_group.append(x[i])
elif sec<=fir and sec<=thr and sec<=fth:
second_group.append(x[i])
elif thr<=fir and thr<=sec and thr<=fth:
third_group.append(x[i])
else:
fourth_group.append(x[i])
Алгоритм кластеризації:
iterations=1
while iterations<10:
new_centroids=New_Means(first_group,second_group,third_
group,fourth_group)
if
Euclidean_dist(new_centroids[0],centroids[0])<0.1 and \
Euclidean_dist(new_centroids[1],centroids[1])<0.1
and \
Euclidean_dist(new_centroids[2],centroids[2])<0.1
and \
Euclidean_dist(new_centroids[3],centroids[3])<0.1:
break;
centroids=new_centroids
first_group,second_group,third_group,fourth_group=New_G
roups(x,centroids)
iterations+=1

Висновок

В даній лабораторній роботі я ознайомився з алгоритмом k-means та


особливостями його застосування. Застосував отримані знання на
кластеризації точок.

Контрольні запитання
1. Що таке інтелектуальний аналіз даних?
Інтелектуальний аналіз даних (Data Mining) це сучасна концепція
аналізу даних, яка припускає, що дані можуть бути неточними, неповними
(містити пропуски), суперечливими, різнорідними, непрямими, і при цьому
мати гігантські обсяги. Тому розуміння даних в конкретних програмах вимагає
значних інтелектуальних зусиль. В інтелектуальному аналізі даних
застосовується математичний апарат для виявлення закономірностей і
тенденцій, що існують в даних. Зазвичай, такі закономірності не можна
виявити при традиційному перегляді даних, оскільки зв'язки занадто складні,
або через надмірні обсяги даних. Побудова моделі інтелектуального аналізу
даних є частиною більш масштабного процесу, в який входять всі завдання,
від формулювання питань щодо даних і створення моделі для відповідей на ці
питання до розгортання моделі в робочому середовищі. Інтелектуальний
аналіз даних - це обробка інформації та виявлення в ній моделей і тенденцій,
які допомагають приймати рішення.
2. Що таке кластеризація даних?
Кластерний аналіз (кластеризація) – це технологія, що дозволяє
розподілити вхідні дані на класи – групи однотипних екземплярів
вибірки, або кластери – компактні області групування екземплярів вибірки у
просторі ознак.
2. У чому полягає задача кластеризації? Наведіть практичний
приклад?
Задача кластеризації полягає в розбитті об’єктів з x на декілька
кластерів, у яких об’єкти більш схожі між собою, ніж з об’єктами інших
кластерів. У метричному просторі «схожість» звичайно визначають
через відстань. Застосовується, наприклад, при сегментації картинок та
фотографій для, наприклад, відокремлення лиця на фото.
4. Опишіть етапи кластерного аналізу. Наведіть практичні приклади.
Незалежно від предмета вивчення застосування кластерного аналізу
припускає наступні етапи:
- Відбір вибірки для кластеризації. Мається на увазі, що має сенс
кластеризувати тільки кількісні дані.
- Визначення безлічі змінних, за якими будуть оцінюватися об'єкти у
вибірці, тобто простору ознак.
- Обчислення значень тієї чи іншої міри подібності (або відмінності)
між об'єктами.
- Застосування методу кластерного аналізу для створення груп схожих
об'єктів.
- Перевірка достовірності результатів кластерного рішення.
Наприклад, в біоінформатиці за допомогою неї аналізуються складні
мережі взаємодіючих генів, що складаються часом з сотень або навіть тисяч
елементів. Кластерний аналіз дозволяє виділити підмережі, вузькі місця,
концентратори і інші приховані властивості досліджуваної системи, що
дозволяє в кінцевому рахунку дізнатися внесок кожного гена в формування
досліджуваного феномену.
5. Що таке навчання з учителем і без учителя?
При навчанні з учителем нейронна мережа навчається на розміченому
наборі даних і пророкує відповіді, які використовуються для оцінки точності
алгоритму на навчальних даних. При навчанні без учителя модель
використовує нерозмічену дані, з яких алгоритм самостійно намагається
витягти ознаки і залежності.
6. До якого типу навчання належить задача кластеризації? Чому?
Завдання кластеризації відноситься до широкого класу задач навчання
без учителя, так як кількість початковіх параметрів не задана та їм не
приписуються характеристики, по яким можна навчити модель.
7. На які класи поділяють алгоритми кластеризації?
Умовно алгоритми кластеризації поділяють на алгоритми:
- Ймовірнісного підходу
- підходу на основі штучного інтелекту
- логічного підходу
- теорико-графового підходу
- ієрархічного підходу
- та інші
8. Опишіть алгоритм роботи методу k-means.
- серед усіх точок обирається k точок, які будуть стартовими
центроїдами
- усі точки розподіляються по кластерам, обираючи той, відстань до
чийого центру (центроїду) найменша
- новими центроїдами становляться точки, у якої кожна координата є
середнім арифметичним усіх координат точок, що входять до кластеру
- пункти 2 та 3 повторюються до тих пір, поки центроїди не перестануть
рухатися під час ітерацій або після певної кількості ітерацій.
9. Яким чином відбувається поділ на кластери при використанні
методу k-means? Усі точки розподіляються по кластерам, обираючи той,
відстань до чийого центру (центроїду) найменша
10. Яким чином знаходять центроїд кластеру при використанні методу
k-means? Новими центроїдами становляться точки, у якої кожна
координата є середнім арифметичним усіх координат точок, що входять до
кластеру

You might also like