Кластеризація. Базові алгоритми кластеризації. Адаптивний метод кластеризації
Міністерство
Освіти
і Науки
України
Національний
університет “Львівська
політехніка”
Кафедра
автоматизованих систем управління
Методичні вказівки
до лабораторної роботи № 6
«Кластеризація. Базові алгоритми кластеризації.
Адаптивний метод кластеризації»
з дисципліни
«Інтелектуальний аналіз даних»
для студентів базового напрямку підготовки по спеціальності
“Комп’ютерні науки” (шифр 0804)
Л
ьвів-2012
Методичні вказівки до лабораторної роботи №:6 “Кластеризація. Базові алгоритми кластеризації.
Адаптивний метод кластеризації ” дисципліни “Інтелектуальний аналіз даних” для студентів спеціальності - шифр 0804 “Комп’ютерні науки”/ Укл. доц. Ковівчак Я.В., Львів: Національний університет “Львівська політехніка”, 2012.
Методичні вказівки обговорено та схвалено на засіданні кафедри АСУ Протокол № ___________ від «___»___________2012 р.
Завідувач кафедрою АСУ ______________ Медиковський М. О.
Методичні вказівки обговорено та схвалено на засіданні методичної комісії базового напрямку підготовки
Протокол № ___________ від «___»___________2012 р.
Лабораторна робота № 6
Кластеризація. Методи кластеризації. Адаптивний метод кластеризації.
Мета: Ознайомлення з основними алгоритмом кластеризації. Робота з адаптивним методом.
Завдання: Навчитись використовувати адаптивний метод кластеризації для розв’язання задач кластерного аналізу.
1. Теоретична частина
Мета: Ознайомлення з поняттям кластерного аналізу та існуючими алгоритмами кластеризації
Завдання: Дати визначення поняттю кластеризації, розглянути існуючі алгоритми кластеризації, надати детальний опис адаптивному методу кластеризації.
Вступ
Кластеризацією є розбиття множини даних на групи за схожими ознаками. Кластеризація використовується при вирішенні різноманітних задач обробки даних, в тому числі при розпізнаванні образів, машинному навчанні, автоматичної класифікації, виробленні стратегій керування і т. д.
До цих пір не було знайдено якогось універсального алгоритму, який був би ефективним на даних різної природи. В основному використовуються ітеративні методи кластеризації, які базуються на апріорному завданні кількості кластерів і деякому виборі початкового розбиття. При цьому результат їх застосування істотно залежить від правильності оцінки кількості кластерів.
Стійкість кластеризації показує, наскільки різними виходять результуючі розбиття на групи після багаторазового застосування алгоритмів кластеризації для одних і тих же даних. Тут наводиться короткий огляд основних методів, що дозволяють оцінити стійкість кластеризації, яка пов'язана з дійсною кількістю кластерів. Описано методи на основі індексів, які порівнюють внутрішні і зовнішні дисперсії кластерів. Також описані алгоритми, що використовують функції стійкості, які визначають відповідність призначених кластерів для вибіркових елементів множини.
Обчислювальна складність відомих алгоритмів дослідження стійкості кластеризації істотно зростає при збільшенні потужності досліджуваної безлічі даних. Також більшість з них недостатньо математично обґрунтовані. У статті розглядається кілька завадостійких алгоритмів, які можуть працювати на множинах довільної структури.
Завдання кластеризації
Кластеризацію можна визначити як процес об'єднання даних у групи за схожими ознаками. Ця задача є однією з фундаментальних в області аналізу даних і Data Mining. Список областей, в яких застосовується кластеризація, дуже широкий: сегментація зображень, прогнозування, аналіз текстів, стиснення даних і багато інших. На сучасному етапі кластеризація часто виступає першим кроком при аналізі даних. Після виділення схожих груп застосовуються інші методи. Для кожної групи будується окрема модель. Рішення задач кластеризації використовуються в таких наукових напрямках, як статистика, розпізнавання образів, машинне навчання, автоматична класифікація, вироблення стратегій управління, моделювання філогенії організмів і інших. Однак варто розрізняти класифікацію та кластеризацію. Класифікацією називається віднесення кожного елемента в певний клас із заздалегідь відомими параметрами, отриманими на етапі навчання. При цьому число класів суворо обмежена. Кластеризація - це розбиття множини даних на кластери. Кластерами будемо називати підмножини, параметри яких заздалегідь невідомі. Кількість кластерів може бути довільним або фіксованим.
Цілі кластеризації можуть бути різними залежно від особливостей конкретної прикладної задачі:
Зрозуміти структуру множини об'єктів Xℓ, розбивши його на групи схожих об'єктів. Спростити подальшу обробку даних і прийняття рішень, працюючи з кожним кластером окремо (стратегія «розділяй і володарюй»).
Скоротити обсяг даних, що зберігаються в разі надвеликої вибірки Xℓ, залишивши по одному найбільш типовому представнику від кожного кластера.
Виділити нетипові об'єкти, які не підходять до жодного з кластерів. Цю задачу називають однокласовою класифікацією, виявленням нетиповості або новизни (novelty detection).
У першому випадку число кластерів намагаються зробити поменше. У другому випадку важливіше забезпечити високу ступінь схожості об'єктів усередині кожного кластера, а кластерів може бути скільки завгодно. У третьому випадку найбільший інтерес представляють окремі об'єкти, які не вписуються ні в один з кластерів.
У всіх цих випадках може застосовуватися ієрархічна кластеризація, коли великі кластери дробляться на більш дрібні, ті в свою чергу дробляться ще дрібніше, і т.д. Такі завдання називаються завданнями таксономії (taxonomy). Результатом таксономії є не просте розбиття множини об'єктів на кластери, а деревоподібна ієрархічна структура. Замість номера кластера об'єкт характеризується перерахуванням всіх кластерів, яким він належить, від великого до дрібного. Класичним прикладом таксономії на основі подібності є систематизація живих істот, запропонована Карлом Ліннеєм в середині XVIII століття. У сучасному поданні біологічна ієрархія має близько 30 рівнів, 7 із них вважаються основними: царство, тип, клас, загін, сімейство, рід, вид. Таксономії будуються в багатьох областях знань, щоб упорядкувати інформацію про велику кількість об'єктів.
Основна суть алгоритмів кластеризації полягає в наступному. Є навчальна послідовність (набір даних) {x1, ..., xn} Є X і функція відстані між об'єктами р(х, х'). Потрібно розбити послідовність на непересічні підмножини (які називаються кластерами) так, щоб кожен кластер складався з об'єктів, близьких по метриці р, а об'єкти різних кластерів істотно відрізнялися. Алгоритм кластеризації - це функція а: X → Y, яка будь-якого об'єкта х Є X ставить у відповідність мітку кластера уi Є Y. Безліч міток Y заздалегідь невідомо.
На теперішній момент число методів розбиття груп об'єктів на кластери досить велике — кілька десятків алгоритмів і ще більше їх модифікацій.
У кластеризації виділяють два основних підходи: декомпозиція (неієрархічних), коли кожен об'єкт пов'язаний тільки з однією групою, і кластеризація на основі ієрархій (ієрархічний), коли кожна група більшого розміру складається з груп меншого розміру.
Класичні ієрархічні алгоритми працюють тільки з категорійними атрибутами, коли будується повне дерево вкладених кластерів. Тут поширені агломеративні (об'єднавчі) методи побудови ієрархій кластерів. У них проводиться послідовне об'єднання вихідних об'єктів і відповідне послідовне зменшення числа кластерів. Також існують розділові техніки, коли кластери розділяються. При цьому спочатку передбачається, що в системі тільки один кластер. Ієрархічні алгоритми забезпечують порівняно високу якість кластеризації. Більшість з них мають складність O (n2).
Неієрархічні алгоритми ґрунтуються на оптимізації деякої цільової функції, що визначає оптимальне в певному сенсі розбиття множини об'єктів на кластери. У цій групі популярні алгоритми сімейства k-середніх (k-means), які в якості цільової функції використовують суму квадратів зважених відхилень координат об'єктів від центрів шуканих кластерів. Кластери шукаються сферичної або еліпсоїдної форми.
Рішення задачі кластеризації принципово неоднозначно, оскільки не існує однозначно найкращого критерію якості кластеризації, число кластерів, як правило, невідомо заздалегідь і встановлюється відповідно до деякого суб'єктивним критерієм, а також результат кластеризації в багатьох алгоритмах істотно залежить від метрики, вибір якої найчастіше суб'єктивний і визначається експертом.
Таким чином, не існує єдиного універсального алгоритму кластеризації. При використанні будь-якого алгоритму важливо розуміти його достоїнства і недоліки, враховувати природу даних, з якими він краще працює і здатність до масштабованості.
Кластеризація даних включає в себе наступні етапи:
Виділення характеристик
Визначення метрики
Розбиття об’єктів на групи
Представлення результатів
Формальна постановка задачі
Дано - набір даних з наступними властивостями
кожен екземпляр даних виражається чітким числовим значенням;
клас для кожного конкретного екземпляра даних невідомий.
Знайти:
спосіб порівняння даних між собою (міру подібності);
спосіб кластеризації;
розбиття даних по кластерам.
Формально задача кластеризації описується таким чином.
Дано безліч об'єктів даних I, кожен з яких представлений набором атрибутів. Потрібно побудувати безліч кластерів С і відображення F безлічі I на безліч С, тобто F: I → С. Відображення F задає модель даних, яка є рішенням задачі. Якість рішення задачі визначається кількістю вірно класифікованих об'єктів даних. Безліч I визначимо наступним чином:
I = {i1, i2, …, ij, …, in}, (1.1)
де ij - досліджуваний об'єкт.
Для початку необхідно вибрати властивості, які характеризують наші об'єкти. Ними можуть бути кількісні характеристики (координати, інтервали...), якісні характеристики (колір, статус, військове звання ...) і т.д.
Потім варто спробувати зменшити розмірність простору характеристичних векторів, тобто виділити найбільш важливі властивості об'єктів. Зменшення розмірності прискорює процес кластеризації та в ряді випадків дозволяє візуально оцінювати її результати.
Виділені характеристики варто нормалізувати.
Прикладом такого безлічі може бути набір даних про іриси, з якими в середині 30-х рр.. минулого сторіччя працював відомий статист Р. А. Фішер (ці дані часто називають іриси Фішера). Він розглянув три класи ірисів Iris setosa, Iris versicolor та Iris virginica. Для кожного з них було представлено по 50 екземплярів з різними значеннями чотирьох параметрів: довжина і ширина чашолисника, довжина і ширина пелюстки. У табл. 1.1 представлені дані по п'ять примірників для кожного класу.
Таблиця 1.1
№ |
Довжина чашолистків |
Ширина чашолистків |
Довжина пелюсток |
Ширина пелюстки |
Класс |
1 |
5,1 |
3,5 |
1,4 |
0,2 |
Iris setosa |
2 |
4,9 |
3,0 |
1,4 |
0,2 |
Iris setosa |
3 |
4,7 |
3,2 |
1,3 |
0,2 |
Iris setosa |
4 |
4,6 |
3,1 |
1,5 |
0,2 |
Iris setosa |
5 |
5,0 |
3,6 |
1,4 |
0,2 |
Iris setosa |
51 |
7,0 |
3,2 |
4,7 |
1,4 |
Iris versicolor |
52 |
6,4 |
3,2 |
4,5 |
1,5 |
Iris versicolor |
53 |
6,9 |
3,1 |
4,9 |
1,5 |
Iris versicolor |
54 |
5,5 |
2,3 |
4,0 |
1,3 |
Iris versicolor |
55 |
6,5 |
2,8 |
4,6 |
1,5 |
Iris versicolor |
101 |
6,3 |
3,3 |
6,0 |
2,5 |
Iris virginica |
102 |
5,8 |
2,7 |
5,1 |
1,9 |
Iris virginica |
103 |
7,1 |
3,0 |
5,9 |
2,1 |
Iris virginica |
104 |
6,3 |
2,9 |
5,6 |
1,8 |
Iris virginica |
105 |
6,5 |
3,0 |
5,8 |
2,2 |
Iris virginica |
Кожен з об'єктів характеризується набором параметрів:
ij = {x1,xi2, …, xj, …, xn} (1.2)
У прикладі з ірисами, як уже зазначалося, такими параметрами є довжина І ширина чашолисника, довжина І ширина пелюстки.
Кожна змінна хh, може приймати значення з деякої множини:
xh = {v1h, v2h,…}. (1.3)
У даному прикладі значеннями є дійсні числа.
Завдання кластеризації полягає в побудові безлічі:
С= {с1,с2, ... ,сk, ... ,cg) (1.4)
Тут ск— кластер, що містить схожі один на одного об'єкти з безлічі:
Ck = {ij, ip | ij Є I, ip Є I и d(ij, ip) < δ (1.5)
де δ - величина, що визначає міру близькості для включення об'єктів в один кластер; d (ij, ip) - міра близькості між об'єктами, звана відстанню.
Ненегативне значення d (ij, ip) називається відстанню між елементами ij і ip якщо виконуються наступні умови:
d(ij, ip) > 0, для всіх ij, iр. (1.6)
d(ij, ip) = 0, тоді і тільки тоді, коли ij = iр. (1.7)
d(ij, ip)) = d(ip, ii) (1.8)
d(ij, ip) < d(ij, ir) + d(ir, ip) (1.9)
Якщо відстань d (ii, ip) менше деякого значення про, то говорять, що елементи близькі і поміщаються в один кластер. В іншому випадку говорять, що елементи відмінні один від одного і їх поміщають в різні кластери.
Більшість популярних алгоритмів, що вирішують завдання кластеризації, використовують як формат вхідних даних матрицю відмінності D. Рядки і стовпці матриці відповідають елементам множини I Елементами матриці є значення d (ii, ip) у рядку j і стовпці p. Очевидно, що на головній діагоналі значення будуть дорівнюють нулю:
(1.10)
Більшість алгоритмів працюють з симетричними матрицями. Якщо матриця несиметрична, то її можна привести до симетричного увазі шляхом наступного перетворення:
(D + Dm) / 2 (1.11)
