Vysoká škola ekonomická v Praze Fakulta informatiky a statistiky
SHLUKOVÁ ANALÝZA ROZSÁHLÝCH SOUBORŮ DAT: nové postupy založené na metodě k-průměrů
Disertační práce
Doktorand:
RNDr. Marta Žambochová
Školitel:
prof. Ing. Hana Řezanková, CSc.
Obor:
Statistika
Praha, květen 2010
Prohlášení Prohlašuji, že disertační práci na téma „Shluková analýza rozsáhlých souborů dat: nové postupy založené na metodě k-průměrů“ jsem vypracovala samostatně. Použitou literaturu a podkladové materiály uvádím v přiloženém seznamu literatury.
V Praze dne
................................................... podpis
2
Abstrakt Shluková analýza se stala jedním z hlavních nástrojů používaných při získávání znalostí z dat, které je označováno jako data mining. V této nové oblasti analýzy dat se často zpracovávají datové soubory velkých rozměrů, a to jak co do počtu sledovaných objektů, tak co do počtu proměnných, kterými jsou objekty charakterizovány. Pro shlukování dat bylo vyvinuto mnoho metod. Jednou z často používaných technik je metoda k-průměrů. Jejím základem je hledání nejlepšího přiřazení objektů do shluků na principu inicializačního rozdělení objektů a následného postupného přerozdělování s využitím optimalizační funkce. Cílem této disertační práce bylo jednak porovnání vybraných existujících variant metody k-průměrů, detailní charakteristika jejich pozitivních a negativních vlastností, jednak návrh nových modifikací této metody a jejich experimentální srovnání s již existujícími přístupy. Tyto cíle byly splněny. Ve své práci jsem se zaměřila na modifikace metod k-průměrů pro shlukování velkého počtu objektů, konkrétně na algoritmy BIRCH k-průměrů, filtrovací, dvoufázový a k-průměrů++. Experimentálně jsem sledovala časovou náročnost jednotlivých algoritmů, vliv inicializačních rozdělení, vliv odlehlých objektů a validitu výsledných shluků. Při experimentech byly použity dva reálné datové soubory a dále několik souborů generovaných. V závěru práce jsou shrnuty společné a rozdílné rysy zkoumaných variant metody k-průměrů s důrazem na výše uvedená hlediska. Přínosem práce je tedy kromě zhodnocení současných variant metody k-průměrů především návrh výše uvedených nových modifikací, jejich naprogramování a experimentální ověření. Modifikace přinesly zejména urychlení výpočtu způsobené zjednodušením práce s účelovou funkcí a kritérií ukončení programu. Aplikování hlavní myšlenky algoritmu k-průměrů++ do jiných variant metody k-průměrů přineslo lepší výsledky shlukování z hlediska variability. Nejzásadnější z navržených změn je modifikace filtrovacího algoritmu, která přináší zcela novou vlastnost této metody, a to odhalení odlehlých objektů. Součástí práce je CD, které obsahuje zdrojové kódy jednotlivých programů vytvořených ve vývojovém prostředí MATLAB. Programy byly vytvořeny speciálně pro účely této práce a jsou určeny pro experimentální použití. CD také obsahuje datové soubory využívané k jednotlivým pokusům.
Klíčová slova: shluková analýza, velké soubory dat, metoda k-průměrů, časová náročnost zpracování, inicializační rozdělení do shluků, odlehlé objekty
3
Abstract Cluster analysis has become one of the main tools used in extracting knowledge from data, which is known as data mining. In this area of data analysis, data of large dimensions are often processed, both in the number of objects and in the number of variables, which characterize the objects. Many methods for data clustering have been developed. One of the most widely used is a k-means method, which is suitable for clustering data sets containing large number of objects. It is based on finding the best clustering in relation to the initial distribution of objects into clusters and subsequent step-by-step redistribution of objects belonging to the clusters by the optimization function. The aim of this Ph.D. thesis was a comparison of selected variants of existing k-means methods, detailed characterization of their positive and negative characteristics, new alternatives of this method and experimental comparisons with existing approaches. These objectives were met. I focused on modifications of the k-means method for clustering of large number of objects in my work, specifically on the algorithms BIRCH k-means, filtering, k-means++ and two-phases. I watched the time complexity of algorithms, the effect of initialization distribution and outliers, the validity of the resulting clusters. Two real data files and some generated data sets were used. The common and different features of method, which are under investigation, are summarized at the end of the work. The main aim and benefit of the work is to devise my modifications, solving the bottlenecks of the basic procedure and of the existing variants, their programming and verification. Some modifications brought accelerate the processing. The application of the main ideas of algorithm k-means++ brought to other variants of k-means method better results of clustering. The most significant of the proposed changes is a modification of the filtering algorithm, which brings an entirely new feature of the algorithm, which is the detection of outliers. The accompanying CD is enclosed. It includes the source code of programs written in MATLAB development environment. Programs were created specifically for the purpose of this work and are intended for experimental use. The CD also contains the data files used for various experiments.
Key words: cluster analysis, large data sets, k-means method, time-consuming of the process, initial distribution of objects into clusters, outliers
4
Obsah Úvod .............................................................................................................. 8 Seznam použitých symbolů......................................................................... 13 1
Shluková analýza a velké soubory dat ................................................. 13 1.1
SHLUKOVÁ ANALÝZA ...................................................................................... 15
1.1.1 Reprezentace vstupních dat ........................................................................ 16 1.1.2 Předzpracování dat..................................................................................... 16 1.1.3 Míry podobnosti a nepodobnosti ................................................................ 17 1.1.4 Metody shlukové analýzy ............................................................................ 22 1.2
PROBLEMATIKA VELKÝCH SOUBORŮ DAT ........................................................ 24
1.2.1 Metody rozkladu ......................................................................................... 26 1.2.2 Shlukování pomocí minimální kostry.......................................................... 27 1.2.3 Varianta algoritmu CLARANS pro velké datové soubory .......................... 28 1.2.4 Algoritmus BIRCH...................................................................................... 31 1.2.5 Algoritmy ISODATA a ISOCLUS ............................................................... 40 1.3
2
MOŽNOSTI SROVNÁNÍ VÝSLEDKŮ SHLUKOVÁNÍ ............................................... 43
Metoda k-průměrů ................................................................................ 46 2.1
METODA K-CENTROIDŮ ................................................................................... 46
2.1.1 Euklidovská vzdálenost ............................................................................... 47 2.1.2 Manhattanská vzdálenost............................................................................ 48 2.1.3 Čebyševova vzdálenost ............................................................................... 49 2.2
MATEMATICKÝ POPIS ZADÁNÍ METODY K-PRŮMĚRŮ........................................ 50
2.3
ALGORITMUS K-PRŮMĚRŮ ............................................................................... 51
2.4
SNIŽOVÁNÍ VÝPOČETNÍ NÁROČNOSTI ALGORITMU ........................................... 53
2.5
ODSTRANĚNÍ VLIVU INICIALIZAČNÍHO ROZDĚLENÍ........................................... 57
2.6
SNÍŽENÍ VLIVU ODLEHLÝCH OBJEKTŮ .............................................................. 59
5
2.7
3
VLIV POŘADÍ OBJEKTŮ ..................................................................................... 60
Alternativy metody k-průměrů ............................................................. 61 3.1
ALGORITMUS BIRCH K-PRŮMĚRŮ .................................................................. 62
3.1.1 Implementace algoritmu BIRCH k-průměrů............................................... 64 3.1.2 Provedené experimenty............................................................................... 65 3.1.3 Shrnutí......................................................................................................... 77 3.2
FILTROVACÍ ALGORITMUS................................................................................ 78
3.2.1 Mrkd-stromy................................................................................................ 78 3.2.2 Hlavní principy a postup filtrovacího algoritmu ........................................ 79 3.2.3 Modifikovaný filtrovací algoritmus (MFA)................................................. 82 3.2.4 Implementace filtrovacích algoritmů.......................................................... 89 3.2.5 Provedené experimenty............................................................................... 90 3.2.6 Shrnutí......................................................................................................... 99 3.3
ALGORITMUS K-PRŮMĚRŮ++ .......................................................................... 100
3.3.1 Implementace algoritmu k-průměrů++ ...................................................... 101 3.3.2 Provedené experimenty............................................................................. 101 3.3.3 Shrnutí....................................................................................................... 106 3.4
DVOUFÁZOVÝ ALGORITMUS K-PRŮMĚRŮ....................................................... 108
3.4.1 Postup první fáze ...................................................................................... 108 3.4.2 Postup druhé fáze...................................................................................... 109 3.4.3 Implementace dvoufázového algoritmu k-průměrů .................................. 110 3.4.4 Provedené experimenty............................................................................. 111 3.4.5 Shrnutí....................................................................................................... 117
4
Závěrečné srovnání alternativ metody k-průměrů ............................. 119 4.1
POPIS DAT ...................................................................................................... 120
4.1.1 Soubor VOWEL......................................................................................... 120 4.1.2 Soubor IRIS............................................................................................... 121 4.1.3 Soubor GENER ......................................................................................... 122 4.1.4 Soubor GENER1 ....................................................................................... 123 4.1.5 Soubor VILIKUS ....................................................................................... 127
6
4.2
PROVEDENÉ EXPERIMENTY ............................................................................ 127
4.2.1 Časová náročnost algoritmu..................................................................... 127 4.2.2 Snížení vlivu inicializačního rozdělení ..................................................... 129 4.2.3 Snížení vlivu odlehlých objektů................................................................. 133 4.2.4 Srovnání validity shlukování pomocí různých metod ............................... 135
5
Závěr................................................................................................... 138
Základní pojmy z teorie grafů ................................................................... 142 Literatura ................................................................................................... 147 Přílohy: Výsledky experimentálních zpracování ...................................... 153
7
Úvod Moderní doba je charakterizována explozí velkého objemu dat shromažďovaných v databázích. Rychlý rozvoj informačních technologií toto ukládání dat stále více usnadňuje. Uchovávání dat se stává přístupnější a levnější. Výsledkem jsou velké databázové soubory v různých odvětvích, jako je průmysl, věda či administrativa. Tento proces vedl ke vzniku a rozvoji nového oboru na rozhraní informatiky, statistiky, strojového učení a matematiky, oboru zvaného data mining, který se zabývá získáváním informací z databází. Cílem je hledání vztahů v datech a jejich vlastností. Pomocí technik zahrnutých v oblasti data mining se v rozsáhlých datových souborech hledají nové, předem jednoduše neodhadnutelné informace a vztahy využitelné například při rozhodování firmy. Pravděpodobně nejvýstižnější definici formuloval se svými spolupracovníky v roce 1996 Usama Fayyad v článcích [16] či [17] navazujících na předchozí dílo [20]. Nejrozšířenější je využití v oblasti marketingu, pojišťovnictví a telekomunikací, ale i v mnoha dalších oblastech, jako jsou medicína, biologie, chemie, astronomie, strojírenství či finance. Podrobný popis najdeme například v [52]. Nástroje pro data mining využívají celou řadu relativně různorodých statistických i nestatistických metod, jako jsou lineární regrese, logistická regrese, shluková analýza, neuronové sítě, genetické algoritmy, klasifikační stromy, detekce odchylek či odhalení závislostí a rozdílů. Data mining nenahrazuje, ale doplňuje dosud užívané postupy vyhodnocování hromadných dat. Jde však o komplexnější proces, než „prosté“ výše uvedené metody, viz například [52]. Jednou z hlavních metod používaných v oblasti data mining je shluková analýza, která je zařazována mezi klasifikační postupy. Obecně je klasifikace metodou pro rozřazování dat do skupin podle různých hledisek, případně některých známých přiřazení. Pokud jsou tato přiřazení předem známa alespoň pro vzorek dat, můžeme vytvořit klasifikační model. Častý je však případ klasifikace, kdy žádná výsledná přiřazení předem známa nejsou a úlohou klasifikace je jejich nalezení. Používanou technikou v takovýchto případech je shluková analýza, která zahrnuje celou řadu přístupů a metod.
8
Shlukování je důležitá technika pro odhalování struktury dat. Zabývá se zejména podobností datových objektů. Dělí množinu datových objektů do několika skupin (shluků) tak, aby si objekty uvnitř jednotlivých shluků byly co nejvíce podobny a objekty z různých shluků si byly podobny co nejméně. Přitom každý datový objekt je popsán vektorem hodnot jednotlivých proměnných. Výsledky analýzy závisí na volbě proměnných, zvolené míře podobnosti mezi datovými objekty a shluky a na zvoleném algoritmu výpočtu. Pomocí takto nalezených shluků pak můžeme lépe vyšetřit strukturu dat a s jednotlivým shlukem můžeme následně pracovat souhrnně jako s jedním objektem. Nalezené shluky ale vystihují strukturu dat pouze z pohledu vybraných proměnných. Nevhodný výběr proměnných může vést k zavádějícím závěrům. Shluková analýza je běžným nástrojem používaným při marketingových průzkumech. Autoři v článku [50] popisují její využití například pro klasifikaci světových obchodů, k určení typologie zákazníků, či k identifikaci výhod, které upřednostňují zákazníci při výběru produktu finanční pomoci. V článku [35] je navržen praktický nástroj založený na principu shlukování objektů pro hodnocení segmentů trhu cestovního ruchu z hlediska očekávané ekonomické návratnosti. Jiné využití shlukové analýzy pro zpracování obzvláště velkých datových souborů je uvedeno v [48]. V práci je popsána problematika vyhodnocování fair value1 z portfolií v oblasti životního pojištění. Z důvodu velkého množství smluv životního pojištění vstupujících do zpracování (v ČR se jedná o řádově desetitisíce až statisíce, v zahraničí až o milióny smluv) není možno výpočty provádět pro každou pojistnou smlouvu zvlášť. Pomocí shlukové analýzy je možno nalézt skupiny (shluky) vzájemně podobných smluv a další výpočty poté provádět pouze s reprezentanty těchto skupin. Autoři článků [7] a [8] se zabývají shlukováním velkého počtu denních ionosferických křivek charakterizovaných pomocí 24 hodnot získaných v rozmezí let 1958 až 1998. Výsledkem jejich zkoumání bylo potvrzení předpokladu, že se denní ionosferické křivky shlukují dle zeměpisné šířky. Kromě datových objektů je možné shlukovat také proměnné, což se může uplatnit například při zjišťování typických prvků v obrázcích a následném hledání 1
Za fair value se dá s jistou měrou zjednodušení označit suma diskontovaných výnosů a nákladů. Tento ukazatel je považován za nezkreslený odhad tržní ceny portfolia, viz [48].
9
podobných obrázků, viz [61]. Podobná aplikace shlukování je využívána například při vyhledávání relevantních informací z velkého množství dokumentů, jenž je popsáno například v [53]. V tomto případě je každý dokument reprezentován řádově 100 – 1 000 slov (proměnných), jejichž počet je redukován například pomocí shlukování proměnných. Výsledkem shlukování je nalezení typických slov, které následně umožní výběr dokumentů obsahujících požadované informace. Shlukování dokumentů využívá například oficiální internetový portál vlády USA k automatickému uspořádání svých výsledků hledání dle požadavků uživatele a nalezení souvisejících témat (viz [88]) . V dnešní době jsou požadavky na metody shlukové analýzy následující:
schopnost efektivně zpracovávat rozsáhlé datové soubory,
možnost pracovat s různými typy proměnných (kvantitativní, kategoriální, binární) a především pracovat s kombinacemi proměnných různých typů,
nízké nároky na doménové znalosti (např. počet shluků),
schopnost nalézt shluky, které nabývají při grafickém zobrazení různého tvaru (konvexních i nekonvexních obrazců),
schopnost pracovat s datovými soubory s chybějícími údaji,
schopnost pracovat s datovými soubory s odlehlými údaji,
nezávislost na pořadí vstupních dat,
schopnost práce s vektory značných rozměrů (tj. s daty popisovanými velkým počtem proměnných),
schopnost shlukovat i s ohledem na specifikovaná omezení,
interpretovatelnost a užitečnost výsledků.
Současné metody obvykle splňují jen některé z výše uvedených požadavků. Disertační práce se zaměřuje na metody určené pro shlukování velkého množství objektů. Cílem je hlubší analýza jedné ze speciálních skupin shlukovacích algoritmů, technik založených na principu metody k-průměrů, tj. technik určených pouze pro zpracování kvantitativních dat. Pozornost je věnována dosud chybějícímu porovnání vybraných existujících alternativ a detailní charakteristice jejich pozitivních i negativních vlastností. V neposlední řadě je cílem práce návrh nových modifikací algoritmu
10
k-průměrů, jejich detailní popis, ověření jejich funkčnosti a časové náročnosti, vysvětlení jejich výhod i nevýhod a srovnání s již existujícími alternativami. Jednotlivé algoritmy byly naprogramovány a jejich ověřování a vzájemné porovnávání bylo provedeno na speciálně vygenerovaných datech i na reálných datových souborech. Práce je členěna do pěti základních kapitol. V první kapitole se věnuji problematice velkých souborů dat a shlukové analýze v obecném smyslu. Zvláště pak se zaměřuji na použitelné míry podobnosti, základní principy jednotlivých metodologických skupin a rozbor některých vybraných metod pro shlukování velkých datových souborů. Druhá kapitola je zaměřena na detailní rozbor metody k-průměrů, její výhody a nevýhody. V této kapitole jsou popsány možnosti odstranění, nebo alespoň zmírnění některých nevýhod a jsou zde uvedeny modifikované metody k-průměrů, jejichž vznik byl motivován nápravou těchto nedostatků. Jednotlivé části třetí kapitoly obsahují detailní popis některých algoritmů, které jsou založeny na principu metody k-průměrů (dále budou tyto metody označovány jako alternativy metody k-průměrů) a které byly navrženy pro analýzu rozsáhlých datových souborů, a jejich hlubší analýzu. Součástí této kapitoly je i návrh nových modifikací těchto alternativ. Při navrhování jednotlivých modifikací jsem se zaměřila na řešení vybraných problematických stavů a situací jednotlivých alternativ základní metody k-průměrů. Zajímala mne především schopnost detekce odlehlých objektů spolu se schopností algoritmů zpracovat co nejefektivněji datové soubory obsahující velký počet objektů. Efektivity algoritmů bylo dosaženo mimo jiné využitím různých typů stromů. Příkladem je MFA, navržená modifikace umožňující detekci odlehlých objektů efektivním způsobem využívajícím mrkd-stromů (viz část 3.2.3). I mnoho dalších návrhů je založeno na kombinaci existujících alternativ základního algoritmu umožňujících řešení některého z problémů základní metody a variant využívajících stromů. Jednou z takovýchto kombinací je propojení algoritmu k-průměrů++ s filtrovacím algoritmem (viz části 3.2, 3.3 a kapitola 4). Hlavní důraz je v kapitole kladen na vysvětlení podstaty algoritmů, analýzu jejich časové náročnosti, chování v závislosti na volbě parametrů daného algoritmu a na různém typu dat. K experimentálnímu ověření byly využity vlastní programy vytvořené pro účely této práce. Popis všech implementací je rovněž součástí třetí kapitoly, programy jsou uloženy na přiloženém CD. Obsahem čtvrté kapitoly je vzájemné porovnání některých
11
popsaných variant, a to především z hlediska časové náročnosti a kvality shlukování. Závěrečná, pátá kapitola shrnuje výsledky celé práce. Z hlediska vlastního přínosu jsou nejdůležitější kapitoly 3 a 4. Dále následuje kapitola obsahující vysvětlení vybraných pojmů z teorie grafů užívaných v textu. Následuje seznam použité literatury. Na závěr je připojeno několik příloh obsahujících dílčí tabulky s údaji z jednotlivých experimentů. Údaje obsažené v těchto tabulkách byly využity při vytváření grafů a tabulek uvedených v práci.
12
Seznam použitých symbolů X
matice dat
n
počet objektů (počet řádků v matici dat)
d
počet proměnných (počet sloupců v matici dat) d
R
množina uspořádaných d-tic reálných čísel
x, resp. y
objekt (vektor)
xi
i-tý objekt (řádek matice dat)
xj, resp. xij
j-tá složka vektoru (prvek matice)
x
aritmetický průměr objektů xi, i = 1, ..., n
x
x
2
2 2
euklidovská norma čtvercová euklidovská norma
S(x, y)
míra podobnosti mezi objekty x a y
D(x, y)
míra nepodobnosti mezi objekty x a y
k, resp. k
počet shluků
kmax
prahová hodnota pro počet shluků
C
množina shluků
Cl
l-tý shluk
nc
počet objektů ve shluku
nl
počet objektů ve shluku Cl
LS
vektorový součet souřadnic všech objektů ve shluku
SS
vektorový součet druhých mocnin souřadnic objektů ve shluku
c
centroid
cl
centroid náležející shluku Cl
K
množina centroidů
min(x, K)
vzdálenost objektu x od jemu nejbližšího centroidu z množiny K
ml
medoid náležející shluku Cl
M
množina medoidů
c(x)
centroid nejbližší objektu x
m(x)
medoid nejbližší objektu x
13
Q(C)
hodnota účelové funkce pro množinu shluků C
Q
minimální dosažená hodnota účelové funkce v dané úloze
q
kvalita shluku
p
pořadí iterace
MD
míra nesouhlasu
E
entropie
Hubertovo
L
prahová hodnota pro počet objektů ve shluku
R
prahová hodnota variability shluku
G
graf
v
vrchol (uzel) grafu G
V
množina vrcholů grafu G
H
hyperkvádr, H R d
14
1 Shluková analýza a velké soubory dat Jak již bylo zmíněno v úvodu, v poslední době vzrůstá potřeba analýzy dat velmi velkého objemu. Tato kapitola obsahuje stručný popis základních principů shlukové analýzy, zvláště pak použití shlukové analýzy při zpracování velkých datových souborů. Detailněji je tato problematika popsána například v [14], [26], [37], [38], [51], [54], [55], [56] či [78].
1.1 Shluková analýza Shluková analýza se zabývá zejména podobností datových objektů. Dělí množinu datových objektů do několika skupin (shluků) tak, aby si objekty uvnitř jednotlivých shluků byly co nejvíce podobny a objekty z různých shluků si byly podobny co nejméně. Zásadním hlediskem při klasifikaci shluků je rozlišení, zda se shluky mohou vzájemně překrývat, či nikoliv. Překrývání shluků znamená, že jeden objekt může být zařazen do dvou, případně více, různých shluků. Výsledkem shlukování pak může být informace o míře příslušnosti daného objektu k jednotlivým shlukům. Takovéto postupy jsou nazývány fuzzy shlukovou analýzou. Tato práce je zaměřena pouze na disjunktní shlukování, ve kterém se nepředpokládá překrývání shluků. Fuzzy shluková analýza je popsána například v [56] či [14]. Dalším z hledisek pro klasifikaci metod shlukové analýzy je předmět shlukování. Základním využitím shlukové analýzy je vyhledávání skupin podobných objektů – statistických jednotek (například respondentů, výrobků, dokumentů). Kromě toho však můžeme zjišťovat skupiny podobných proměnných – statistických znaků popisujících statistickou jednotku (těmi mohou být například věk či datum narození respondenta), případně vyhledávat podobnost objektů i proměnných současně, což je předmětem dvourozměrné shlukové analýzy. Shlukovou analýzu lze provádět mnoha různými metodami, které se od sebe liší jednak způsoby určování podobnosti objektů pomocí měr podobnosti (viz kapitola 1.1.3) a jednak způsoby shlukování, viz například [84].
15
1.1.1 Reprezentace vstupních dat Při výběru metody shlukové analýzy záleží na reprezentaci zdrojových dat. Můžeme mít k dispozici přímo zdrojová data, či relační data. V prvním případě jsou data uspořádána do matice, kde každý řádek reprezentuje údaje o jednom objektu a každý sloupec nese informaci o jedné z proměnných popisujících každý z objektů. V dalším textu bude počet sledovaných objektů (a tím i počet řádků v datové matici) označován symbolem n a počet proměnných (a tím i počet sloupců datové matice) budu označovat d. To znamená, že každý z n řádků je d-rozměrným vektorem, jehož každý prvek je hodnota proměnné, neboli sledovaného statistického znaku. Pokud máme k dispozici zdrojová data, je výběr metody závislý na typu proměnných (kvantitativní, kategoriální, binární proměnné). Podrobný popis například [56]. Pojem relační data se používá pro matici vzájemných podobností, což je čtvercová matice řádu n. Prvek matice v i-tém řádku a i-tém sloupci nese informaci o podobnosti i-tého a i-tého objektu, respektive prvek matice v j-tém řádku a j-tém sloupci nese informaci o podobnosti j-té a j-té proměnné v případě shlukování proměnných. Popis používaných měr podobnosti je uveden v kapitole 1.1.3. Matici podobností můžeme mít buď přímo zadanou, nebo ji můžeme vypočítat z datové matice mezi všemi objekty. Další možností formy vstupních dat je dvourozměrná tabulka sdružených četností, viz například [26]. Tato forma se využívá v situaci, kdy zpracováváme kategoriální data a cílem je získat shluky kategorií.
1.1.2 Předzpracování dat Pro úspěšné shlukování je důležitý výběr proměnných vstupujících do procesu a určení jejich významnosti. Toto rozhodnutí se děje jednak na základě metodologické znalosti zpracovávané problematiky a praktických požadavků, podle kterých proměnných mají být objekty rozlišeny, jednak na základě systémových analýz, jenž určí, podle kterých proměnných se objekty nejvíce liší a jenž pokud možno vyberou vzájemně nezávislé proměnné. Po výběru proměnných, které budou vstupovat do shlukovacího procesu, je nutno posoudit typ proměnných (např. kvantitativní, kategoriální, binární). V případě
16
potřeby převedeme proměnné, buď všechny nebo jen některé, na jiný typ. Jednou z možných úprav je například převod více-kategoriální proměnné na binární, kdy jednu více-kategoriální proměnnou nahradíme tolika binárními proměnnými, kolika různých hodnot může kategoriální proměnná nabývat. V případě kvantitativních dat, v situaci, kdy všechny sledované proměnné mají stejné jednotky a srovnatelné hodnoty, není potřeba žádných dalších úprav hodnot proměnných. Častější je však případ, kdy mají jednotlivé proměnné odlišné jednotky nebo jsou jejich hodnoty nesrovnatelné. V těchto situacích je nejjednodušším řešením znormování dat, pomocí kterého zrušíme vliv jednotek a rozměrů jednotlivých proměnných. Při normování z původní matice X typu n x d vytvoříme novou matici X´ stejného typu dle předpisu
x´ij kde x j
1 n xij a s j n i 1
xij x j sj
, i 1, ..., n,
j 1, ..., d ,
(1.1)
n 1 2 xij x j . n 1 i 1
1.1.3 Míry podobnosti a nepodobnosti Způsob měření podobnosti závisí na předmětu shlukování. Pokud chceme shlukovat objekty, používáme často jiné míry podobnosti než v případě, že chceme shlukovat proměnné. Volba míry podobnosti při shlukování objektů navíc závisí na typu proměnných, pomocí kterých je objekt popsán. Problematika měr podobnosti je podrobně popsána například v [56].
Úvodní definice Definice 1. Nechť x je vektor v Rd. Zobrazení x : Rd R nazveme normou vektoru, pokud splňuje následující vlastnosti. 1.
x 0 pro každý nenulový vektor x. x 0 právě tehdy, když x je nulový vektor.
2.
x x x Rd a R.
3.
x y x y x, y x Rd.
17
Příklady vektorových norem (důkazy splnění jednotlivých vlastností jsou součástí učebnic lineární algebry): 1.
d
x 1 xj
(l1- norma, manhattanská, oktaedrická norma)
j 1
2.
x
3.
x
2 2 2
d x j j 1 d
xj
1
2
2
2
(l2- norma, euklidovská, kulová norma) (kvadratická, čtvercová euklidovská norma)
j 1
1
4. 5.
d pp x p x j j 1 x max xi , 1 i d
(lp- norma) (l- norma, maximová, kubická, krychlová norma)
2
V práci budu převážně pracovat s x 2 , případně x 2 . Definice 2. Nechť x, y jsou vektory v Rd. Zobrazení : Rd x Rd R nazveme pseudometrikou, pokud splňuje následující vlastnosti. 1. x, y 0 , x, y Rd. 2. x, x 0 , x Rd. 3. x, y y , x , x, y Rd (symetrie).. 4. x, y y , z x, z , x, y, z Rd (trojúhelníková nerovnost).
Definice 3. Nechť x, y jsou vektory v Rd. Zobrazení : Rd x Rd R nazveme metrikou, pokud splňuje následující vlastnosti. 1. x, y 0 a x, y 0 právě tehdy, když x = y, x, y Rd. 2. x, y y , x , x, y Rd (symetrie). 3. x, y y , z x, z , x, y, z Rd (trojúhelníková nerovnost). Poznámka: Každá vektorová norma indukuje metriku danou vztahem (x, y ) x y .
18
Shlukování objektů V případě zjišťování podobnosti objektů používáme buď míry podobnosti, nebo míry nepodobnosti. Symbolem X označme množinu všech objektů. Mírou podobnosti mezi objekty x a y rozumíme zobrazení S: X x X R, které libovolným dvěma objektům x a y přiřadí reálné číslo, přičemž jsou splněny následující vlastnosti: S (x, y ) 0, 1 ,
(1.2)
S (x, x) 1,
S (x, y ) 0, S (x, y ) S (y , x). Mírou nepodobnosti dvou objektů x a y rozumíme zobrazení D: X x X R, které libovolným dvěma objektům x a y přiřadí reálné číslo, přičemž jsou splněny následující vlastnosti
D(x, x) 0,
(1.3)
D(x, y ) 0, D (x, y ) D(y , x). Často jsou využívány míry nepodobnosti, ve kterých je pro všechny trojice objektů x, y, z splněna trojúhelníková nerovnost, tj. D(x, y ) D(y , z ) D(x, z ). To znamená, že splňují všechny vlastnosti metriky. Hodnota D(x, y) v tomto případě bývá nazývána vzdáleností objektů x, y v metrice D. V případě kvantitativních dat platí X Rd. Pro zjišťování podobnosti či nepodobnosti kvantitativních dat se používají především míry vzdálenosti. Nejznámější z nich je euklidovská vzdálenost, která je pro dva objekty x = [x1, ..., xd] a y = [y1, ..., yd] , kde d je počet proměnných popisujících každý objekt, definována dle vzorce DE (x, y ) x - y
2
19
d
(x j 1
j
y j )2 ,
(1.4)
respektive čtvercová euklidovská vzdálenost definovaná předpisem DES (x, y ) x - y
d
(x j y j )2 .
2 2
(1.5)
j 1
Mezi další patří manhattanská vzdálenost d
D B ( x, y ) x - y 1 x j y j ,
(1.6)
j 1
Minkowského vzdálenost D M ( x, y ) x - y
p
x j 1
Čebyševova vzdálenost
DC (x, y ) x, y
p
d
p
j
yj ,
(1.7 )
(1.8)
max j x j y j ,
ale i mnoho dalších, viz například [56]. Jako míry podobnosti pro porovnání vektorů nezáporných hodnot můžeme uvést například kosinovou míru d
S K ( x, y )
x
j
j 1
d
yj ,
d
x y j 1
2 j
j 1
(1.9)
2 j
Jaccardův koeficient d
S J (x, y )
x j 1
d
d
j
yj
j 1
j 1
20
2 j
,
d
x y x 2 j
j 1
j
yj
(1.10)
či Diceho koeficient d
S D (x, y )
2xj yj j 1
d
d
x y 2 j
j 1
j 1
.
(1.11)
2 j
V případě potřeby lze výše uvedené míry podobnosti převézt na míry def
nepodobnosti dle vztahu D (x, y ) 1 S (x, y ) a naopak. Podobnost nominálních dat měříme nejčastěji pomocí koeficientu prosté shody, jež vyjadřuje podíl počtu proměnných, ve kterých se dva měřené objekty shodují, ku počtu všech proměnných popisujících objekty. d
s j 1
S ( x, y )
j
(1.12)
,
d
kde s j 1 pro x j y j a s j 0 jinak. Pro měření podobnosti asymetrických binárních dat můžeme použít například speciální variantu Jaccardova či Diceho koeficientu, viz například [56]. Při měření symetrických binárních dat použijeme míry vhodné pro nominální data.
Shlukování proměnných Na rozdíl od objektů měříme podobnost proměnných pomocí různých měr závislosti. Pro kvantitativní proměnné se nejčastěji využívá Pearsonův korelační koeficient, definovaný pro proměnné xj a xj vztahem
x n
r jj
i 1
x n
i 1
ij
x j xij x j
x j xij x j
ij
kde n je počet objektů, x j
i 1
n
2
i 1
n
x
n
2
n
ij
a x j
x i 1
21
n
ij
.
,
(1.13)
Pro nominální proměnné se obvykle používají míry založené na kontingenční tabulce a na Pearsonově statistice chí-kvadrát. Mezi nejpoužívanější patří Pearsonův kontingenční koeficient, Cramérovo V či Čuprovův kontingenční koeficient.
1.1.4 Metody shlukové analýzy Algoritmy z oblasti shlukové analýzy můžeme rozdělit do několika kategorií. Mezi ně patří například hierarchické metody, metody rozkladu, metody založené na hustotě, metody založené na mřížce, či metody založené na modelu. Toto dělení je jedním z mnoha uváděných v literatuře. Jednou z nejznámějších a nejpopulárnějších skupin algoritmů shlukové analýzy jsou metody hierarchického shlukování. Popis těchto postupů nalezneme například v [26], [37], [39] nebo v [56]. Jejich popularita je založena na jednoduchosti, přehlednosti a na dobré interpretovatelnosti výsledků. V hierarchických metodách je vytvářena hierarchie rozdělení do shluků, a to buď aglomerativním, nebo divizivním způsobem. Grafickým výstupem hierarchických metod je například speciální typ stromového grafu, který se nazývá dendrogram. Dendrogram je binární strom2 jehož každý vrchol představuje shluk. Horizontální řezy dendrogramem jsou jednotlivá rozdělení do shluků. Prezentace výsledku shlukování formou dendrogramu je velkou výhodou hierarchických metod. Umožňuje uživateli se na základě grafického znázornění výsledku rozhodnout o počtu výsledných shluků. Aglomerativní (sdružovací) způsob začíná v situaci, kdy je každý objekt samostatným shlukem. Postupně se spojují vždy dva shluky, které jsou si v daném okamžiku nejvíce podobny. Spojování se provádí až do stavu, kdy jsou všechny objekty v jednom společném shluku. Za kritérium zastavení může být využito i dosažení určitého počtu shluků. Divizivní (rozdělovací) způsob postupuje opačným směrem, začíná v situaci, kdy jsou všechny objekty v jednom společném shluku, který je postupně rozdělován až do stavu, kdy je každý objekt v samostatném shluku. I v tomto případě může být použito za kritérium zastavení dosažení určitého počtu shluků.
2
Viz kapitola Základní pojmy z teorie grafů
22
Rozsah metod rozkladu je velmi široký. Do této skupiny je zahrnuto mnoho algoritmů na velmi rozdílných principech. Základem však je vždy hledání nejlepšího shlukování pomocí prvotního rozdělení objektů do shluků a následného postupného přerozdělování objektů ve shlucích s cílem optimalizovat danou účelovou funkci. Metody rozkladu vytváří rozdělení objektů do předem určeného počtu shluků. Metody založené na hustotě jsou určeny především pro prostorová data3. Vytvářejí shluky na základě vyhodnocení prostoru datových objektů a nalezení oblastí s vyšší hustotou výskytu objektů oproti okolnímu prostoru. Zástupcem je například algoritmus DENCLUE (DENsity-based CLUstEring), viz [27]. Jeho postup je založen na principu modelování matematické funkce – funkce vlivu, která popisuje vliv každého objektu na jeho okolí. Dále je využívána tzv. celková funkce hustoty, jenž je definována jako součet jednotlivých funkcí vlivu všech objektů. Centra vznikajících shluků jsou pak umístěna do míst lokálních maxim celkové funkce hustoty. Na poněkud jiném principu je založen další zástupce této skupiny, algoritmus DBSCAN (Density-Based Spatial Clustering of Aplications with Noise), viz [13]. Jeho postup vychází z hustoty definované pro blízké okolí každého objektu, z dosažitelnosti objektů zjištěné na základě této hustoty a propojenosti dvou objektů ověřené pomocí dosažitelnosti vybraných objektů. Shlukem je pak neprázdná množina objektů, pro kterou platí následující dvě vlastnosti. Shluk vždy obsahuje všechny body, jenž jsou dosažitelné z libovolného jeho bodu. Libovolné dva body ležící v tomtéž shluku musí být propojené. Metody této skupiny nejsou založeny na vzdálenostech mezi objekty, a tím umožňují nacházet shluky obecně libovolného tvaru. Naopak nevýhodou této skupiny metod je nutnost zadat parametry hustoty. Metody založené na mřížce pracují na podobném principu jako metody založené na hustotě. Na rozdíl od nich rozdělují prostor datových objektů do mřížky, která je tvořena konečným počtem buněk. Každá buňka mřížky je vícerozměrným kvádrem. Toto rozdělení do mřížky umožňuje efektivnější práci s prostorem objektů. Jedním z algoritmů pracujících na tomto principu je například STING (STatistical INformation 3
Pojmem prostorová data (angl. Spatial Data) se označují data o poloze, tvaru a vztazích mezi jevy reálného světa, vyjádřená zpravidla ve formě souřadnic a topologie. Tj. taková data, která se vztahují k určitým místům v d-dimenzionálním prostoru (d ≥ 2) a pro která jsou na potřebné úrovni rozlišení známé polohy těchto míst. Tzn., že známe odpověď na otázku, kde se vyskytují, známe jejich polohu. Základními typy jsou například bod, úsečka, polygon.
23
Grid), viz [67]. Tento algoritmus pracuje ve dvou fázích. V první fázi rekurzivním způsobem vytvoří mřížkovou strukturu tvořenou několika úrovněmi pravoúhlých buněk. Pro každou buňku jsou vypočítány a uchovány statistické charakteristiky potřebné pro další zpracování, jako je počet objektů, minimální a maximální hodnota obsažená v buňce, aritmetický průměr, směrodatná odchylka a typ pravděpodobnostního rozdělení. Ve druhé fázi algoritmu probíhá vlastní shlukování, které se provádí nad mřížkou vytvořenou v první fázi. Výhodou algoritmu je především rychlost zpracování, která není závislá na počtu objektů ale pouze na počtu buněk mřížkové struktury. Tím je algoritmus vhodný i pro shlukování dat ve velkých souborech. Další výhodou je možnost nalezení shluků různých tvarů. Metody založené na modelu se snaží nalézt matematický model, jímž se řídí datové objekty. Takovýmto modelem může být například směs pravděpodobnostních rozdělení. Jednotlivá rozdělení ve výsledku určují jednotlivé shluky. Metody hledají například pomocí EM algoritmu (viz [10]) maximálně věrohodný odhad parametrů pravděpodob-nostních rozdělení. Jinou, sekvenční metodou pro přibližné odhady parametrů je metoda částicových filtrů (particle filtres), která odhaduje důležitost na základě tzv. funkce zájmu v množině daného počtu vážených částic. Podrobněji viz např. [11]. Nevýhodou těchto metod je fakt, že jejich použití vyžaduje znalost struktury dat. Mezi další, principiálně odlišné zástupce této skupiny patří algoritmy SOM (Kohonenova mapa) a SOON, viz [52] či [56], založené na principu neuronových sítí.
1.2 Problematika velkých souborů dat O velikosti datového souboru se hovoří ze dvou odlišných hledisek. Za prvé z hlediska počtu proměnných, které sledujeme pro každý objekt. Existují vědní obory (například chemometrie), kde se setkáváme až s několika sty sledovaných proměnných. Ve shlukovacích úlohách se přitom již 16 proměnných považuje za velký počet. Množství proměnných především ovlivňuje výpočetní náročnost zjištění míry podobnosti, respektive nepodobnosti. Daný problém se řeší dvěma různými způsoby. Jednak snižováním počtu proměnných (snižováním dimenze úlohy) například pomocí analýzy hlavních komponent či faktorové analýzy, viz například [26]. Druhým způsobem je volba speciálního algoritmu pro shlukování.
24
Druhým hlediskem určení velikosti datového souboru je počet datových objektů. Ve starších učebnicích statistiky se velkým souborem nazývá soubor obsahující více než 250 objektů. S rozvojem výpočetní techniky se pohled na velikost datového souboru z hlediska zpracovatelnosti změnil. Pomocí libovolných shlukovacích metod lze zpracovat soubory mnohem větší, obsahující i přes tisíc objektů. V některých případech (například při shlukování velkého počtu objektů pomocí hierarchických metod) je však výsledek velmi nepřehledný a tím i nepoužitelný. Navíc se v praxi mnohdy musíme vypořádat i se zpracováním ještě mnohem větších souborů, souborů obsahujících často statisíce nebo miliony objektů. Nezřídka se může stát, že je soubor natolik veliký, že se nevejde do operační paměti počítače. V takovém případě je nutno jej postupně číst z disku, což vede k velkému nárůstu časové náročnosti zpracování. Shlukování velkého počtu objektů lze provézt mnoha způsoby, viz [56]. Můžeme například použít algoritmy rychlého rozkladu, v nichž je využíván výběr tzv. hlavních objektů, od nichž se počítají vzdálenosti ostatních objektů. Každý hlavní objekt přísluší k jednomu shluku. Příslušnost libovolného objektu ke shluku se posuzuje podle vzdálenosti k hlavnímu objektu, navíc je brána v úvahu tzv. prahová (maximální povolená) vzdálenost od hlavního objektu. Pokud neexistuje shluk, ve kterém daný objekt nepřekračuje prahovou vzdálenost, je vytvořen shluk nový s vlastním hlavním objektem. Na tomto základě je založen například přírůstkový (z angl. originálu incremental) algoritmus BIRCH, který je popsán v kapitole 1.2.4. Jiným přístupem může být různý způsob vzorkování, při kterém se z celého souboru vybere reprezentativní část, která obsahuje pouze takové množství objektů, které lze shlukovat v rozumném čase. Na takto vybrané podmnožině objektů se nejprve vytvoří soustava shluků a poté se zbývající objekty přiřadí k již vytvořeným shlukům. Na tomto principu je založena například varianta algoritmu CLARANS, popsaná v kapitole 1.2.3. V poslední době se objevují nové algoritmy shlukové analýzy, které jsou určeny pro zpracování datových souborů s velkým počtem objektů. Tyto algoritmy jsou často založeny na principu různých typů kořenových stromů4. Touto problematikou jsem se zabývala například v článku [71], [73] či [74].
4
Viz kapitola Základní pojmy z teorie grafů
25
Výhodou takovéto reprezentace dat je fakt, že mnohé početní i rozhodovací operace v příslušném algoritmu se mohou nahradit jediným hromadným úkonem a mohou se provádět místo s jednotlivými objekty s celou množinou objektů spojenou ve společném vrcholu. Navíc většina těchto algoritmů buduje strom pouze jedenkrát a pak jej v jednotlivých iteračních krocích upravuje a optimalizuje. Tím se velmi sníží počet přístupů k datům i počet aritmetických a rozhodovacích operací. Mezi algoritmy založené na stromové struktuře patří například algoritmus BIRCH, popsaný v kapitole 1.2.4, varianta algoritmu CLARANS, popsaná v kapitole 1.2.3, shlukování pomocí minimální kostry, viz kapitola 1.2.2, či filtrovací algoritmus, viz kapitola 3.2.
1.2.1 Metody rozkladu Metody rozkladu nepracují s maticí vzdáleností pro všechny dvojice objektů, a proto jsou velmi vhodné pro zpracování souborů s velkým počtem objektů. Základní myšlenkou metod této skupiny je rozdělení objektů do předem daného počtu shluků. Způsob dělení může však být různý. Jedním ze způsobů je vytvoření počátečního rozdělení a následného vylepšování tohoto shlukování na základě optimalizace nějaké účelové funkce. Metod pracujících na tomto principu je celá řada. Liší se především způsobem reprezentace shluků. Patří sem například metoda k-průměrů (v literatuře se můžeme setkat s názvem k-středů [85], k-průměrů [56], k-těžišť [37], či anglickým originálem k-means [86]). Jak z názvu vyplývá, každý ze shluků je reprezentován svým středem, tj. d-rozměrným vektorem skládajícím se z průměrných hodnot jednotlivých proměnných. Tato metoda je blíže popsána v kapitole 2. Dále mezi metody rozkladu náleží metoda k-medoidů, kde je každý shluk reprezentován tzv. medoidem. Tato metoda bývá označována PAM (Partitioning Around Medoids), viz např. [56] či [37]. Pokud máme libovolný neprázdný shluk C X , pak můžeme definovat medoid shluku C jako konkrétní objekt shluku, pro nějž platí, že součet vzdáleností (nejčastěji se používá Euklidovská vzdálenost, ale není podmínkou) ode všech ostatních objektů shluku je minimální.
26
Cílem metody k-medoidů je nalézt podmnožinu objektů m 1 , m 2 , ..., m k X , která minimalizuje kritérium
Dx, m(x) ,
xX
(1.14)
kde x X je objekt a m(x) m 1 , m 2 , ..., m k je medoid, který má od objektu x minimální vzdálenost ze všech medoidů. Obě zmíněné metody jsou použitelné pouze pro kvantitativní data. Přesto existují metody, které jsou použitelné i v případě nominálních dat. K nim patří například metoda k-modů, kde je shluk charakterizován d-rozměrným vektorem obsahujícím modální hodnoty jednotlivých proměnných. Jinou variantou je metoda k-histogramů, při které sledujeme informace o četnostech kategorií jednotlivých proměnných. Stručný popis těchto metod nalezneme například v [56]. Jiný princip využívá například metoda využívající minimální kostru grafu. Je to jedna z metod založených na reprezentaci dat pomocí stromů.
1.2.2 Shlukování pomocí minimální kostry Poznámka: Jednotlivé pojmy z oblasti teorie grafů použité v této části kapitoly jsou definovány a vysvětleny v samostatné kapitole Základní pojmy z teorie grafů. Kostra grafu G je libovolný strom, který je podgrafem grafu G, obsahuje všechny vrcholy grafu G a pro který platí, že množina hran kostry je podmnožinou hran původního grafu. Podrobněji například [22], [34] či [75]. Jednotlivé hrany grafu můžeme „ohodnotit“, tzn. každé hraně grafu přiřadíme nezáporné reálné číslo, které nazýváme váha hrany. Většina grafů může mít mnoho různých koster. Jednou z úloh teorie grafů je nalezení minimální kostry (součet vah jednotlivých hran minimální kostry je menší nebo roven než součet vah jednotlivých hran libovolné jiné kostry daného grafu). Existují tři velmi jednoduché algoritmy, a to algoritmus Kruskalův (nebo-li hladový), Jarníkův (nebo-li Primův) a Borůvkův, viz například [75], [33], či [9]. První, kdo vymyslel jeden z algoritmů, a to v roce 1926, byl Otakar Borůvka. Další byl algoritmus Jarníkův, který je však ve světě znám jako Primův, ačkoliv s tímto
27
algoritmem přišel český matematik Jarník již v roce 1930 a Prim až v roce 1957. Hladový algoritmus vymyslel Kruskal až v roce 1956, avšak jeho algoritmus je, zdá se, nejznámější a nejoblíbenější. Metoda shlukování pomocí minimální kostry (minimum spanning tree) patří k hierarchickým aglomeračním metodám shlukové analýzy. Každý objekt představuje jeden vrchol grafu. Všechny vrcholy jsou vzájemně pospojovány hranami (jedná se o tzv. úplný graf, kdy je každá dvojice vrcholů spojena hranou). Váha hrany je vyjádřením podobnosti dvou spojených objektů. Pomocí libovolného algoritmu z výše uvedených nalezneme minimální kostru tohoto grafu. Vyjmutím hrany s maximální vahou obdržíme dvě komponenty (souvislé části grafu), které reprezentují dva shluky. Dalším postupným vyjímáním hran s maximální vahou dostáváme potřebné množství shluků. Vyjmutím k – 1 hran s maximálními vahami dostaneme tedy k shluků. Algoritmus minimální kostry se využívá i v tzv. hybridním přístupu pro shlukování ve velkých souborech dat. Hybridní přístup je založen na provedení výběru objektů a shlukování objektů v tomto výběru. K takto vytvořeným shlukům jsou přiřazovány zbylé objekty. Při použití minimální kostry jsou objekty rozděleny do skupin, pro každou skupinu je zkonstruována minimální kostra. Tyto minimální kostry jsou spojovány tak, aby tvořily globální minimální kostru. Problematika minimální kostry a shlukování pomocí minimální kostry je zmíněna například v [22], [23], [60], [68] či [75].
1.2.3 Varianta algoritmu CLARANS pro velké datové soubory Jedním z algoritmů pro shlukovou analýzu rozsáhlých datových souborů je algoritmus zvaný CLARANS (Clustering Large Application based on RANdomized Search) popsaný například v [13]. Základem tohoto algoritmu je metoda k-medoidů. Algoritmus CLARANS řeší problematiku shlukování n objektů do předem daného počtu shluků k a pro definovanou míru vzdálenosti mezi dvěma objekty (pro prostorová data je přirozenou měrou vzdálenosti euklidovská vzdálenost). Algoritmus hledá množinu k vybraných objektů (tzv. medoidů) takových, že průměr vzdáleností všech objektů ze zkoumaného souboru k jejich nejbližšímu medoidu je minimální.
28
Medoidem nazýváme, jak již bylo řečeno, konkrétní objekt z podmnožiny, pro nějž platí, že součet vzdáleností ode všech ostatních objektů podmnožiny je minimální. Výsledkem algoritmu bude k shluků, kde každý z těchto k shluků přísluší k jednomu z k medoidů a každý shluk příslušný k danému medoidu obsahuje ty objekty souboru, pro které je vzdálenost k tomuto medoidu ze všech vzdáleností ke k medoidům minimální. Algoritmus CLARANS v prvním kroku náhodně vybere k medoidů. Každý ze zbývajících objektů přiřadí k jim nejbližšímu medoidu. V druhém kroku vybere z těchto medoidů náhodně jednoho zástupce a taktéž náhodně vybere jeden z objektů zkoumaného souboru, který není medoidem. Dále algoritmus zjistí, zda by záměnou těchto dvou objektů došlo ke zlepšení. To znamená, že zjistí, jestli se sníží průměrná vzdálenost objektů od „jejich“ medoidů, po přeorganizování příslušnosti objektů k medoidům, pokud by se z vybraného objektu, který není medoidem, stal medoid a z vybraného medoidu se stal „běžný“ objekt. Pokud by ke zlepšení došlo, provede záměnu. Mezi vstupní parametry algoritmu patří počet, kolikrát algoritmus tento krok provádí. Po provedení daného počtu porovnání a případných záměn algoritmus spočítá a uloží aktuální průměrnou vzdálenost. Postup se opakuje od prvního kroku, od náhodného výběru k medoidů. Po průchodu tímto vnějším cyklem algoritmu se opět porovná, jestli došlo k vylepšení. To znamená, jestli druhému náhodnému výběru k medoidů nepřísluší nižší průměr ze vzdáleností všech objektů k „jejich“ medoidům. Počet průchodů vnějším cyklem je omezen, a to druhým vstupním parametrem algoritmu. Algoritmus končí po provedení předem daného počtu iteračních kroků. Tento počet je určen vstupními parametry. Autoři článku [13] doporučují první vstupní parametr (počet náhodných výběrů k medoidů – počet průchodů vnějším cyklem) nastavit na 2 a druhý vstupní parametr (počet pokusů o záměnu medoidů – počet
1,25 průchodů vnitřním cyklem) nastavit na hodnotu max k n k , 250 . Výstupem 100 algoritmu je množina medoidů a jim příslušných shluků. Postup algoritmu CLARANS 0. Vstup: datová matice X, požadovaný počet shluků k, povolené počty průchodů vnějším, respektive vnitřním cyklem iinternal , iexternal.
29
1. Náhodný výběr k medoidů, M m 1 , m 2 , ..., m k X . 2. Přiřazení všech objektů k jim nejbližším medoidům, tj. objekt x je přiřazen k medoidu ml, pokud platí x ml
2 2
x j mlj min x m l 2 , l 1, ..., k , l l d
2
j 1
2
d 2 min x j ml j , l 1, ..., k , l l . j 1
(1.15)
3. Výpočet průměrné vzdálenosti objektů od medoidů, k nimž jsou přiřazeny. v
x m(x)
xX
2 2
n
,
(1.16)
kde n je počet objektů, x X je objekt a m(x) M je jemu odpovídající medoid. 4. Náhodný výběr libovolného medoidu m l m 1 , m 2 , ..., m k a libovolného objektu, který není medoidem x i X \ m 1 , m 2 , ..., m k . 5. M´ m 1 , m 2 , ..., m k \ m l x i . 6. Výpočet průměrné vzdálenosti objektů od medoidů z množiny M´, k nimž jsou přiřazeny. v´
x m(x)
xX
n
2 2
,
(1.17)
kde n je počet objektů, x X je objekt a m(x) M´ je k němu příslušný medoid. 7. Pokud v´< v, pak vytvořit novou množinu medoidů M = M´, a položit v = v´. 8. Pokud není dosaženo maximálního počtu průchodů vnitřním cyklem iinternal, návrat na krok 4. Pokud byl překročen maximální počet průchodů vnitřním cyklem iinternal a nebyl překročen maximální počet průchodů vnějším cyklem iexternal, návrat na krok 1. Jinak konec. 9. Výstup: k medoidů M, resp. přiřazení objektů do těchto k shluků.
30
Nejproblematičtější částí algoritmu z hlediska efektivity pro velké soubory dat je vyhodnocení zlepšení průměru vzdáleností jednotlivých objektů od „jejich“ medoidu. V algoritmu pro velké prostorové databáze5 je tento problém vyřešen tak, že je vybrán jen relativně malý počet reprezentantů ze souboru a postup algoritmu CLARANS je aplikován pouze na tyto reprezentanty. Toto je způsobem vzorkování používaný v databázových systémech, přičemž jsou zde využity tzv. R*-stromy6. R*-stromy jsou datové struktury využívané k indexování7 prostorových informací. Ze všech objektů zkoumaného souboru vytvoříme R*-strom a pomocí tohoto stromu vybereme vhodný počet reprezentantů (v závislosti na velikosti souboru a požadovaném počtu shluků). Poté pomocí algoritmu CLARANS zjistíme k medoidů. Nakonec všechny datové objekty přiřadíme k jednotlivým medoidům, a tím vytvoříme požadované shluky. Mezi výhody tohoto algoritmu patří dle autorů [13] mimo jiné fakt, že jej lze použít nejen pro shlukování objektů, pro které je možno definovat průměr, ale obecně pro objekty, pro něž je definována míra podobnosti mezi dvěmi objekty. Dalšíí pozitivní vlastností algoritmu jeho značná efektivnost při zpracování velkých souborů dat. Metoda je také, obdobně jako všechny algoritmy k-medoidů, robustnější než metoda k-průměrů. Odlehlé objekty nevytvářejí vždy samostatný shluk.
1.2.4 Algoritmus BIRCH Jednou z metod, která je schopna se vypořádat s efektivním shlukováním velkého počtu objektů, je metoda BIRCH (Balanced Iterative Reducing and Clustering using Hierarchies). Algoritmus blíže popsali jeho autoři v [69] a [70]. Data jsou shlukována postupně tak, jak vstupují do procesu. Algoritmus vytváří CF-strom, do kterého vstupující objekty zařazuje jeden po druhém. Úkolem vnitřních
5
Prostorová data (angl. Spatial Data) viz poznámka 3 na straně 21. Prostorové databáze jsou databáze obsahující prostorová data.
6
Viz kapitola Základní pojmy z teorie grafů.
7
Indexováním se nazývá proces vytvoření a využívání indexu v databázi. Index (nebo také klíč, angl. key) je databázová konstrukce, sloužící ke zrychlení vyhledávacích a dotazovacích procesů v databázi, definování unikátní hodnoty sloupce tabulky. Index je obvykle definován výběrem tabulky a jednoho konkrétního sloupce (nebo více sloupců), nad kterými si analytik databáze přeje dotazování urychlit.
31
vrcholů CF-stromu je umožnit nalezení správného listu pro zařazení nového objektu, každý listový vrchol pak reprezentuje shluk. Podrobněji například [81], [82] či [83] . Struktura CF-stromů je založena na principech B-stromů a R-stromů6, tj. stromových strukturách pro indexování souborů dat. CF-stromy využívají tzv. CF-charakteristiku shluku (Cluster Feature). Tato charakteristika je uspořádanou trojicí CF = (nc, LS, SS), kde nc je počet objektů ve shluku, LS je vektorovým součtem souřadnic všech objektů ve shluku a SS je vektorovým součtem druhých mocnin nc
nc
i 1
i 1
souřadnic těchto objektů, tj. LS x i , SS x i2 . Poznámka: V článku [69] je jako třetí prvek CF-charakteristiky uveden součet souřadnic vektoru SS. Důležitou vlastností této charakteristiky je CF aditivita, což znamená následující: Jsou-li CF1 = (n1, LS1, SS1) a CF2 = (n2, LS2, SS2)
CF-charakteristiky dvou
disjunktních shluků, pak CF-charakteristika shluku, který vznikne spojením původních dvou shluků, je rovna součtu CF-charakteristik původních shluků, tj. CF = CF1+ CF2 =(n1 + n2, LS1+ LS2, SS1+ SS2).
(1.18)
Údaje obsažené v CF-charakteristice jsou dostačující k výpočtu centroidů, míry nepodobnosti shluků (informace o meziskupinové variabilitě) a míry kompaktnosti shluků (informace o vnitroskupinové variabilitě), což jsou charakteristiky potřebné k tvorbě stromu. Charakteristiky potřebné pro práci algoritmu, které autoři uvádějí v článku [69], a úprava vzorců jejich výpočtu do tvaru, z něhož je zřejmé použití CFcharakteristiky jsou následující. Mějme
shluk
s
nc
x i , i 1, ..., nc
objekty
a
s CF-charakteristikou
CF = (nc, LS, SS), pak můžeme definovat centroid shluku c jako nc
c
x i 1
i
nc
LS . nc
(1.19)
První z možných variant pro měření míry kompaktnosti shluku je druhá odmocnina průměrné kvadratické euklidovské vzdálenosti všech objektů shluku od jeho centroidu. Budu značit P0. Autory [69] je nazývána jako „poloměr shluku“. Můžeme ji vypočíst dle vztahu
32
nc xi c P0 i 1 nc
1
2 2
2 nc x i c 2 i 1 nc
xij2 2 xij c j c 2j i 1 j 1 nc nc
d
d 2 SS j nc j 1
1 2
1
n 2 c d xij c j 2 i 1 j 1 nc
1
2
xij2 2 xij c j c 2j i 1 j 1 i 1 j 1 i 1 j 1 nc nc
d
1 LS 2j nc j 1 nc
nc
d
nc
d
1
d
1 2
(1.20)
1
d 2 2 d 2 LS SS LS 2j j j j 1 j 1 j 1 2 n nc c . d
Druhou z možných variant pro měření míry kompaktnosti shluku je druhá odmocnina průměrné kvadratické euklidovské vzdálenosti mezi všemi dvojicemi objektů shluku. Budu značit P1. Autory článku [69] je nazývána jako „průměr shluku“. Můžeme ji vypočíst dle vztahu x i x i P1 i 1 i1 n n 1 c c nc
nc
2 2
1 2
x i x i 2 i 1 i1 n n 1 c c nc
nc
1 2
nc nc d xij xij 2 i 1 i1 j 1 nc nc 1
nc nc d 2 xij 2 xij xij xij 2 i 1 i1 j 1 nc nc 1
1
2
nc d d nc 2 d nc 2 nc xij x x ij ij xij j 1 i 1 j 1 i 1 i 1 j 1 i1 2 nc 1 nc nc 1 nc 1
33
1
2
(1.21)
1
2
1
d d 2 LS 2j SS j j 1 j 1 . 2 2 nc 1 nc nc 1
x i , i 1, ..., n1 ,
Dále mějme dva různé shluky, jeden shluk s n1 objekty
s centroidem c1 a CF-charakteristikou CF1 = (n1, LS1, SS1). Druhý shluk s n 2 objekty
x i , i n1 1, ..., n1 n2
s centroidem c2 a CF-charakteristikou CF2 = (n2, LS2, SS2).
Nepodobnost těchto dvou shluků pak můžeme zjišťovat několika alternativními způsoby. Jednou z možných alternativ je například centroidní metoda, kdy je vzdálenost mezi shluky počítána jako euklidovská vzdálenost jejich centroidů definovaná vztahem P2 c1 c 2
2 c1 j c 2 j j 1 d
2
1 2
d LS1 j LS 2 j j 1 n1 n2
1
2
2 ,
(1.22)
případně jako manhattanská vzdálenost centroidů podle vztahu P3 c1 c 2
1
d
d
LS1 j
j 1
j 1
n1
c1 j c 2 j
LS 2 j n2
(1.23)
.
Jinou alternativou je určení nepodobnosti shluků metodou průměrné vazby pro mezishlukové vzdálenosti, za využití výpočtu nepodobnosti dvou shluků podle vztahu n1 n1 n2 x i x i 2 i 1 i n1 1 P4 n1 n2
1
2 n1 n1 n2 d 2 xij 2 xij xij xi2j i 1 i n1 1 j 1 n1 n2
n1 n2 d n1 n1 d 2 d n1 n2 2 xij x x x ij i j ij i 1 j i n 1 1 i 1 j 1 1 j 1 in1 1 2 n1 n2 n2 n1 d d d LS LS SS 2 j SS1 j 1j 2j j 1 j 1 j 1 2 n1 n1 n2 n2
34
1
2 .
1
2
1
2
(1.24)
Další možností je metoda průměrné vazby pro vnitroskupinové vzdálenosti, kdy je nepodobnost dvou shluků vypočtena dle vztahu x i x i 2 P5 i 1 i1 n n n n 1 2 1 2 1 n1 n2 n1 n2
1 2
n1 n2 n1 n2 d 2 xij 2 xij xij xi2j i 1 i1 j 1 n1 n2 n1 n2 1
1
2
1
d d n1 n2 2 d n1 n2 2 n1 n2 n1 n2 2 xi x x x i i i j 1 i 1 j 1 i 1 i 1 j 1 i 1 2 n1 n2 n1 n2 1 n1 n2 1 n1 n2 1
(1.25)
1
d d 2 LS1 j LS 2 j 2 SS1 j SS 2 j j 1 j 1 . 2 2 n1 n 2 1 n1 n 2 n1 n2 1
Je zřejmé, že P5 je v podstatě P1 shluku vytvořeného sloučením dvou shluků. Jinou možností je Wardova metoda, kdy je nepodobnost dvou shluků vypočítána dle vztahu n1 n2 x t1 n1 n2 t1 1 P6 x i n1 n2 i 1
2
n1 x t2 n1 t 2 1 x i n i 1 1
2
n1 n2 x t3 n2 t3 n1 1 x i n 2 i1
2
n1 n2 n1 n2 d n1 n2 xi xt xt j 1 1 i 1 d n1 n2 j 1 t1 1 j 1 t1 1 xi2 2 n1 n 2 n1 n 2 j 1 i 1 d
d
d
n1
x 2 j 1 i 1
2 i
2
n1
x x j 1 i 1
i j
t 2 1
n1
t2 j
2
n1 xt j 2 j 1 t 1 2 n1 d
n1
2
n1 n2 d n1 n2 n1 n2 xij xt3 j xt3 j d n1 n2 j 1 i n 1 t3 n1 1 j 1 t3 n1 1 xi2j 2 1 n2 n2 j 1 i n1 1 d
35
(1.26)
LS d
SS1 j SS 2 j d
j 1
d
d
SS 2 j j 1
j 1
n2
1j
d
2 2j
d
2
n1 n 2
j 1
LS
LS 2 j
LS j 1
n1
SS1 j j 1
d
2 1j
d
LS
LS j 1
n2
LS d
2 2j
j 1
j 1
n1
2 1j
LS 2 j
2
1j
n1 n 2
.
CF-stromy jsou vysoce vybalancované8 stromy se dvěma parametry. Prvním parametrem je faktor větvení, což je uspořádaná dvojice čísel (F, L) a druhým práh T. Pro každý vnitřní vrchol CF-stromu platí, že obsahuje maximálně F záznamů9 ve tvaru [CFi, potomeki], kde i = 1, …, F, CFi je CF-charakteristika podshluku, který je reprezentován tímto potomkem a „potomeki“ je ukazatel na i-tý podřízený vrchol. Příklad CF-stromu je znázorněn na obrázku 1.3.
Obr. 1.3 Ukázka CF-stromu pro F = 6 a L = 5 (dle [23])
Úkolem vnitřních vrcholů je umožnit nalezení správného listu pro zařazení nového datového objektu. Každý list obsahuje nejvýše L záznamů ve formě [CFi], kde 8
Viz kapitola Základní pojmy z teorie grafů.
9
Záznamem rozumíme ucelenou část informace, jež je obsažena v daném vrcholu.
36
i = 1, …, L, navíc obsahuje ukazatel na předchozí list a ukazatel na následný list, takže
všechny listy jsou vzájemně propojeny pomocí ukazatelů „předchůdce“ a „následník“. Každý listový vrchol reprezentuje shluk vytvořený všemi podshluky reprezentovanými jednotlivými záznamy daného listu. Pro každý záznam listu ale musí platit prahové pravidlo, že rozpětí záznamu (tj. míra kompaktnosti,viz (1.20) či (1.21), shluku obsahujícího objekty daného záznamu) je menší než práh T. Je zřejmé, že velikost stromu je funkcí prahu T. Platí, že čím větší je hodnota prahu P, tím je menší výška8 stromu a naopak. Obdobné tvrzení platí i pro faktor větvení (F, L). Jak již bylo řečeno, CF-strom je budován dynamicky, postupně jsou vkládány nové objekty. Proces vkládání začíná v kořeni stromu. Nalezne se větev vedoucí k nejbližšímu vrcholu – potomku (za využití jedné z měr nepodobnosti (1.22) až (1.26)). Takto se pokračuje, až se dojde do listu. Pro podshluk reprezentovaný tímto listem ověříme platnost prahového pravidla. Pokud toto pravidlo platí, zařadíme nový objekt do příslušného shluku a upravíme příslušnou CF-charakteristiku listu i CF-charakteristiky vrcholů na cestě od listu ke kořeni CF-stromu. Pokud je prahové pravidlo po zařazení nového objektu překročeno, musíme pro tento objekt vytvořit nový shluk a jemu příslušný list. Následně se musí přepočítat všechny „inkriminované“ CF-statistiky (tj. statistiky náležející k vrcholům na cestě od daného listu ke kořeni stromu). Pokud se vytvořením nového vrcholu dostaneme do konfliktu s faktorem větvení (počet větví žádného vrcholu nesmí být větší než F, resp. L), musíme rozštěpit daný vrchol, opět s přepočtem příslušných CF-charakteristik. Obdobně je přebudován celý strom. Vlastní algoritmus probíhá ve třech, respektive čtyřech fázích. V první fázi vytváří CF-strom, do kterého zařazuje postupně přicházející datové objekty. Ve druhé fázi kondenzuje vytvořený CF-strom a optimalizuje jeho velikost upravením prahové hodnoty (jeden z parametrů CF-stromu) a pomocí patřičného přestavění stromu zároveň umožní odstranění odlehlých objektů. Ve třetí fázi se minimalizuje dopad citlivosti na pořadí vstupních dat. Algoritmus zde shlukuje listové vrcholy pomocí aglomerativního hierarchického algoritmu shlukování. Ve čtvrté, nepovinné, fázi algoritmus přerozděluje objekty k jejich nejbližším centrům, a tím získává nové složení shluků. Tato fáze umožňuje odstranění jednoho z negativních důsledků výstavby CF-stromu, že fakticky jeden objekt vstupující
37
formálně algoritmem ve dvou různých okamžicích se může přiřadit do dvou různých shluků. Přerozdělením se tyto dva objekty dostanou do společného shluku. Bohužel je to druhá fáze, kde je nutno opětovně procházet celý soubor objekt po objektu. Postup algoritmu BIRCH 0. Vstup: datová matice X, faktor větvení (F, L), práh T. 1. Tvorba CF-stromu (načítání dat do operační paměti). 1.1 Počátek vytváření CF-stromu t1 s inicializační hodnotou parametru T. 1.2 Sekvenční procházení souborem a vkládání objektů do stromu t1. 1.2.1 Pro každý vkládaný objekt nalezneme odpovídající list. Hledání začínáme v kořeni stromu, procházíme směrem od kořene k listům, vždy vybíráme toho potomka, který je vkládanému objektu „podobnější“, tj. je menší hodnota předem zvolené míry nepodobnosti (viz (1.22) až (1.26)) mezi shlukem obsahujícím objekty asociované10 s daným vrcholem-potomkem a shlukem obsahujícím vkládaný objekt. 1.2.2 Pokud by vložením objektu do nalezeného listu došlo k překročení faktoru větvení, tj. buď obsahuje nějaký vnitřní vrchol na cestě od kořene k označenému listu větší počet objektů, než je hodnota F, nebo listový vrchol obsahuje více objektů než je hodnota L, provedeme štěpení vrcholu přesahujícího faktor větvení. 1.2.3 Pokud by vložením objektu do nalezeného listu došlo k překročení prahu T, tj. hodnota předem zvolené míry kompaktnosti (viz (1.20) či (1.21)) shluku obsahujícího všechny objekty asociované s listem (včetně
vkládaného
objektu)
přesahuje hodnotu T, provedeme štěpení listu. 1.2.4 Upravení CF-charakteristik všech vrcholů na cestě od kořene CFstromu k vybranému listu.
10
Každý vrchol v stromu reprezentuje nějakou množinu objektů. Řekneme, že tyto objekty jsou asociované s vrcholem v.
38
1.3 Pokud se vytvářený CF-strom nevejde do operační paměti, pak 1.3.1 navýšení hodnoty T, 1.3.2 přestavba stromu t1 do stromu t2 za využití nové hodnoty T, 1.3.3 převedení t2 do t1, 1.3.4 návrat na krok 1.2. 2. Kondenzace vytvořeného CF-stromu a optimalizace jeho velikosti. 3. Aglomerativní hierarchické shlukování listových vrcholů CF-stromu. 4. Přerozdělování objektů k jejich nejbližším centrům. 5. Výstup: Přiřazení objektů matice X do shluků. Výhodou algoritmu BIRCH (bez použití nepovinné fáze) je, že prochází datovým souborem pouze jedenkrát pro prvotní načtení všech objektů do CF-stromu. Reflektuje přirozenou tendenci objektů k seskupování a rozlišuje oblasti s velkou hustotou objektů a výskyt objektů osamocených, čímž dobře odhaluje odlehlé objekty11 a umožňuje je optimálně vynechat z další analýzy. Nevýhodou je citlivost na pořadí vstupujících objektů. Nepovinná fáze citlivost na pořadí vstupujících objektů minimalizuje, na druhou stranu velmi algoritmus zpomalí z důvodu opětovného průchodu daty.
11
Existuje mnoho definic pojmu odlehlý objekt. Mezi nejčastěji používané náleží následující definice.
Odlehlým objektem nazveme objekt, který:
se neřídí stejným modelem jako ostatní data,
je velmi vzdálen od většiny ostatních objektů, tj. např. o
pro předem dané hodnoty a je objekt O označen za odlehlý (vzhledem k a ), pokud má méně než procent ostatních objektů vzdálenost od objektu O menší než (Knorr a Ng 1997),
o
pro předem dané hodnoty k a je objekt O označen za odlehlý (vzhledem k k a ), pokud k nejbližších objektů k objektu O má vzdálenost od O větší než (Al-Zoubi a Obeid 2007).
Další podrobněji viz například [1], [4] či [66].
39
1.2.5 Algoritmy ISODATA a ISOCLUS Shlukovací metoda ISODATA (Iterative Self Organizing Data Analysis Technique) je podrobněji popsaná například v [64], nebo její obměna ISOCLUS v [40]. Jedná se o iterativní metody. Algoritmus obou vychází z podstaty algoritmu k-průměrů, to znamená, že centry shluků jsou libovolné body Rd, ale je založen na principu rozdělování a spojování shluků. Na rozdíl od metody k-průměrů nevyžaduje zadání cílového počtu shluků. Vstupů zadávaných uživatelem je více. Jsou to parametry udávající počáteční počet shluků k, povolenou vnitroshlukovou směrodatnou odchylku smax, minimální počet objektů ve shluku nmin, minimální vzdálenost mezi dvěma centry
shluků lmin, maximální počet dvojic shluků spojovaných v rámci jedné iterace12 pmax a maximální počet iterací imax.
Postup algoritmu ISOCLUS 0.
Vstup: datová matice X, k, smax, nmin, lmin, pmax a imax (popis významu parametrů viz výše).
1.
Náhodný výběr k počátečních center13 K c1 , c 2, , ..., c k , přiřazení k = k.
2.
Přiřazení všech objektů x X
k jim nejbližšímu centru, tj. objekt x je
přiřazen k centru cl, pokud platí x cl
2 2
x j clj min x c l 2 , l 1, ..., k , l l , d
2
j 1
2
(1.27)
čímž vytvoříme pro l 1, ..., k množiny Cl, obsahující všechny objekty x X přiřazené k centru cl.
3.
Přemístění center všech existujících shluků do centroidů cl vypočítaných ze všech objektů daného shluku dle vztahu
12
Iterace znamená proces opakovaného použití postupu či funkce. Používá se například v matematice
(numerické metody) či informatice. 13
Centrem množiny objektů nazýváme určitý „střed“ této množiny. Středem množiny můžeme rozumět
buď konkrétní objekt nebo „objekt“ uměle spočítaný. Centrum lze definovat různým způsobem, může jím být například centroid (vektor průměrných hodnot), či medoid (objekt nejblíže centroidu).
40
cl
1 x, l 1, ..., k , nl xCl
(1.28)
kde označení nl je počet objektů příslušných k l-tému centru, Cl je množina objektů příslušných k l-tému centru. 4.
Odstranění center shluků, pro něž platí nl < nmin, z množiny K, snížení hodnoty k o počet odstraněných center. Pokud došlo k odstranění alespoň jednoho centra, návrat na krok 2.
5.
Pro každé centrum výpočet průměrné kvadratické euklidovské vzdálenosti vl centra cl od objektů jemu přiřazených dle vztahu vl
1 x cl nl xCl
2 2
d 1 2 x j clj , l 1, ..., k , nl xCl j 1
(1.29)
výpočet váženého průměru v ze všech hodnot vl (s váhami nl) tj. v
1 k nl v l . n l 1
(1.30)
6.
Pokud je prováděna poslední iterace, přechod na krok 9.
7.
Výpočet vektorů směrodatných odchylek S l s1 , s 2 , ..., s d pro každé z center cl s lj
1 2 x j clj , l 1, ..., k , j 1, ..., d , nl xCl
(1.31)
označení největší souřadnice S l jako slmax . 8.
Pokud existuje shluk, jehož směrodatná odchylka překračuje předepsanou hranici, nebo-li přesněji pokud
k´ slmax s max vl v nl 2(nmin 1) k , 2
(1.32)
l-tý shluk se rozdělí do dvou nových shluků. Dělíme podle proměnné odpovídající slmax , prahem pro dělení je centrum cl (viz obrázek 1.4), navýšit hodnotu k o 1, k = k + 1, pokud se některý ze shluků rozštěpil, návrat na krok 2. 9.
Výpočet všech vzájemných vzdáleností distll mezi jednotlivými centry
41
dist ll c l c l
2 2
clj cl j , l , l : 1 l l k . d
2
(1.33)
j 1
10. Setřídit vzestupně hodnoty distll, vybrat maximálně pmax hodnot, pro které platí distll < lmin , příslušné shluky sloučit, tj. C ll C l C l ,
(1.34)
nl c l nl c l , nl nl přečíslovat centra, příslušně snížit hodnotu k. c ll
11. Pokud není dosaženo maximálního počtu iterací imax, návrat na krok 2. 12. Výstup: přiřazení objektů matice X do k shluků. Algoritmus ISODATA pracuje obdobně jako algoritmus ISOCLUS, jediný rozdíl je v krocích 2 až 4. Zatímco se v algoritmu ISOCLUS tyto kroky opakují, dokud se v rámci čtvrtého kroku zruší alespoň jedno centrum, v algoritmu ISODATA se druhý až čtvrtý krok provádí v dané iteraci pouze jedenkrát.
Obr. 1.4 Ukázka dělení shluku v algoritmu ISODATA, resp. ISOCLUS (dle [64])
Výhodou obou algoritmů je schopnost eliminovat shluky s velmi malým počtem objektů. Minimální přípustný počet objektů ve shluku může být dalším z parametrů zadávaným uživatelem. Objekty ze shluků, které mají menší počet objektů než je
42
stanovená hranice můžeme klasifikovat jako odlehlé objekty14. Další výhodou je velmi dobrá použitelnost pro málo strukturovaná data, algoritmus je proto vhodný i v případě, že o datech nic předem nevíme. Nevýhodou algoritmů je dlouhý čas zpracování pro obzvlášť velké soubory dat. Přesto existuje relativně jednoduché řešení. Pokud je počet objektů n pro zpracování příliš veliký, budou se všechny iterace, kromě poslední, provádět na rozumně veliké (tj. vyhovující z hlediska časové náročnosti zpracování), náhodně vybrané podmnožině objektů. Poslední iteraci je nutno provést na celém původním datovém souboru.
1.3 Možnosti srovnání výsledků shlukování Pokud máme informace o předpokládaném zařazení jednotlivých objektů do shluků, můžeme vzájemně porovnat dvě shlukovací metody celkem jednoduše. K tomuto účelu existuje mnoho přístupů. Jednou z nich je například srovnání pomocí míry nesouhlasu MD (measure of disagreement), která je definována předpisem
MD
k 1 n nll , n l 1
(1.35)
kde n je celkový počet objektů, nll je počet společných objektů mezi l-tým shlukem náležícím do předpokládaného rozdělení do shluků a l-tým shlukem náležícím do výsledného shlukování použité metody, přičemž k sobě přiřazujeme shluky (tj. shluky mají stejný index v předpokládaném i vypočítaném shlukování), které mají co nejvíce stejných objektů. Platí, že MD 0, 1 . Čím více se hodnota MD blíží k 0, tím je shlukování kvalitnější. Pokud MD = 0, pak došlo k naprosté shodě. Naopak, čím více se hodnota
MD blíží k 1, tím je metoda méně úspěšná. Pokud se počet shluků v předpokládaném shlukování liší od počtu shluků ve výsledném shlukování, je nutno použít jiný způsob zjištění kvality. Můžeme využít například hodnocení pomocí entropie. Entropii El l-tého shluku vypočítáme podle vztahu 14
Viz poznámka 9 na straně 33.
43
k
nll nll ln , l 1, , ..., k , (1.36) nl l 1 nl kde k je počet shluků, v předpokládaném shlukování, k je počet shluků ve vypočítaném E l
shlukování, nl je počet objektů v l-tém shluku vypočítaného shlukování, nll je počet objektů z l-tého shluku shlukování, které jsou umístěny do l-tého shluku předpokládaného shlukování.Výsledné hodnocení shlukování je dáno entropií E
nl El , (1.37) l 1 n kde k je počet shluků ve vypočítaném shlukování, nl je počet objektů v l-tém shluku k
E
vypočítaného shlukování, n je celkový počet shlukovaných objektů a El entropie l-tého shluku. Častější je však případ, kdy nemáme žádné předpokládané rozdělení do shluků. V tomto případě je využitelné testování kvality pomocí křížové ověřování (cross validation), srovnávající výsledky shlukování na různých náhodně vygenerovaných částech původního souboru. Pokud jsou výsledky na obou vzorcích podobné, kvalita shlukovací metody je dobrá. Naopak, pokud jsou výsledky rozdílné, nalezené shlukování dobré není. Jako míru podobnosti dvou rozkladů můžeme použít například
Hubertovu definovanou předpisem
1 n n U ii Vii , n 2 i 1 i1
(1.38)
kde Uii (resp. Vii) = 1, pokud i-tý a i-tý objekt náleží ke stejnému shluku v prvním (resp. druhém) shlukování a Uii (resp. Vii) = 0 jinak. Výše uvedené způsoby hodnocení kvality shluků a ještě mnoho dalších jsou popsány například v [58], některé v [65]. V knize [6] je uvedeno několik způsobů hodnocení kvality klasifikace pomocí rozhodovacích stromů, které jsou dobře použitelné i v případě klasifikace pomocí shlukování. V případě shlukování kvantitativních dat je jedním z nejčastěji používaných kritérií na posouzení, která z metod lépe vyřešila shlukovací problém nad danými daty, měření vnitroskupinové a meziskupinové variability. Z definice shlukovacího problému vyplývá, že cílem shlukování je nalézt rozdělení do skupin s co nejmenší vnitroskupinovou a co největší meziskupinovou variabilitou. Je známo, že celková
44
variabilita je součtem vnitroskupinové a meziskupinové variability. Pro danou množinu objektů je celková variabilita pevně dána.
A tedy čím je větší meziskupinová
variabilita, tím je menší vnitroskupinová variabilita. Proto je možno se soustředit pouze na minimalizaci vnitroskupinové variability. Pokud k měření (ne)podobnosti objektů použijeme euklidovskou (resp. čtvercovou euklidovskou) vzdálenost, je možno minimalizovanou funkci psát ve tvaru k
nl
Q x li x l , 2
(1.39)
l 1 i 1
kde k je počet shluků, nl počet objektů v l-tém shluku, x l vektor průměrů všech proměnných náležícím objektům v l-tém shluku, x li i-tý objekt v l-tém shluku.
45
2 Metoda k-průměrů Metoda k-průměrů je speciálním zástupcem skupiny algoritmů k-centroidů, jenž jsou významnou podskupinou metod rozkladu. Jedná se o velmi oblíbený a hojně používaný iterativní shlukovací postup, který je vhodný pro analýzu v případě kvantitativních dat. Základní myšlenkou algoritmu je hledání rozkladu objektů do předem daného počtu shluků, pro který je součet vzdáleností jednotlivých objektů od centra jejich shluku Q minimální. Q x c(x) 2 , 2
(2.1)
xX
kde X je množina všech sledovaných objektů, x je libovolný objekt, c(x) je centroid15 nejbližší objektu x. To znamená, že neexistuje centroid z množiny všech centroidů, který by měl od objektu x menší vzdálenost než centroid c(x). V literatuře je uvedeno pod různými názvy mnoho variant základního postupu k-průměrů, ve kterých je centroid tvořen průměrnými hodnotami proměnných. Mimo jiné jsou to Forgyova ([18]), Janceyova ([19]), Llyodova ([19] či ([31])), MacQueenova ([36]), Wishartova ([19]) metoda, ale i mnoho dalších. V první části kapitoly popíšu základní problematiku týkající se souvislosti typu použité vzdálenosti a charakteru16 centroidu, v dalších částech se budu podrobněji věnovat základní verzi metody k-průměrů, jejímu matematickému popisu, výhodám a nevýhodám použití a základním postupům vedoucím ke zmírnění některých nevýhod.
2.1 Metoda k-centroidů Hlavní
princip
metody
k-centroidů
spočívá
v iterativním
vylepšování
počátečního rozdělení n objektů do předem daného počtu k shluků. Algoritmus využívá při svém průběhu výpočtu centroidů (středů) shluků. Cílem úlohy k-centroidů je hledání minima účelové funkce Q (tj. funkce k proměnných, kterými jsou body z Rd tvořící centroidy), která je definována jako součet vzdáleností objektů od „jejich“ centroidů, viz (2.1). 15 16
Centroid je střed shluku, blíže viz část 2.1 Charakterem centroidu se rozumí konkrétní statistická charakteristika (např. medián či průměr).
46
Centroid c množiny objektů X Rd můžeme definovat jako c arg min D(x, y ); y R d , xX
(2.2)
kde D(x,y) je vzdálenost dvou objektů x, y Rd, například definovaná libovolným předpisem z (1.4) až (1.8). Nechť máme množinu všech objektů X rozdělenou do shluků C1, ..., Ck. Aplikací vztahu (2.2) na libovolný shluk Cl z množiny všech shluků {C1, ..., Ck} můžeme vypočítat centroid tohoto shluku c(Cl). Naopak platí, že pro libovolnou množinu k centroidů existuje rozdělení objektů do shluků. Nechť
c1 , ..., c k
je
množina centroidů, pak rozdělení C C1 , ... , C k množiny X do shluků definujeme dle předpisu
C l x; x X l 1, ..., k : D(c l , x) D(c l , x) .
(2.3)
Obecně c(Cl) ani cl není určen jednoznačně a proto se nemusí rovnat. Výběr použité vzdálenosti určuje charakter centroidu, a tím i typ a výsledek použité shlukovací metody. V dalších částech vysvětlím odvození charakteru centroidu pro nejpoužívanější vzdálenosti.
2.1.1 Euklidovská vzdálenost Pokud použijeme jednu z euklidovských vzdáleností, viz (1.4) a (1.5), můžeme vztah (2.2) vyjádřit ve tvaru c arg min xX
x d
j 1
j
2 y j ; y Rd ,
(2.4)
respektive d 2 c arg min x j y j ; y R d . xX j 1
(2.5)
Je zřejmé, že oba vztahy jsou ekvivalentní a tedy výsledky obou vztahů (2.4) i (2.5) jsou shodné. Pro jednoduchost můžeme pracovat pouze s (2.5).
47
Mějme n číselných hodnot a1, a2, ..., am a definujme reálnou funkci f jedné proměnné x předpisem m
f ( x) x ai . 2
(2.6)
i 1
Funkce f(x) je spojitá, shora neomezená funkce. Pokud chceme najít minimum této funkce, stačí, když položíme derivaci funkce rovnu 0, tj. m m 2 m m 2 2 (2.7) 0 f ´(x) x a i mx 2 ai x ai 2mx 2 ai . 1 i 1 i i 1 i 1 1 m Vyřešením rovnice (2.7) zjistíme, že funkce nabývá minima pro x ai . m i 1 Pokud zjištěný vztah aplikujeme na každý prvek vektoru ve výrazu (2.5),
vidíme, že centroidem při použití čtvercové euklidovské (respektive euklidovské) vzdálenosti je vektor průměrných hodnot jednotlivých proměnných spočtených na základě všech objektů přiřazených k danému shluku.
2.1.2 Manhattanská vzdálenost Pokud použijeme manhattanskou vzdálenost, viz (1.10), dostáváme se ke vztahu d c arg min x i y i ; y R d arg min x y 1 ; y R d . xX xX i 1
(2.8)
Mějme m číselných hodnot a1, a2, ..., am takových, že platí a1 a 2 ... a m , definujme reálnou funkci g jedné proměnné x předpisem m
g ( x) x ai .
(2.9)
i 1
Funkce g(x) je spojitá, po částech lineární funkce. Pro m liché nabývá funkce minima v jednom ze zlomových bodů. Pro m sudé existuje i takové, že funkce nabývá minima na celém intervalu ai , ai 1 . Zlomové body jsou dány nulovými hodnotami jednotlivých absolutních hodnot, to znamená pro x a1 , resp. x a 2 , ..., resp. x a m . Tyto hodnoty rozdělují množinu reálných čísel na m + 1 intervalů, a to
I 1 , a1 , I 2 a1 , a 2 , ..., I m 1 a m , . Na I1 jsou výrazy ve všech absolutních hodnotách záporné. Z definice absolutní hodnoty vyplývá, že funkce g(x) má na
48
intervalu I1 tvar m
g1 ( x) x a1 x a 2 ... x a m mx ai .
(2.10)
i 1
Obdobnou úvahou se dostaneme k závěru, že na intervalu
m
I2 má funkce g(x) tvar g 2 ( x) m 2x ai a1 , i 2 m
2
i 3
i 1
I3 má funkce g(x) tvar g 3 ( x) m 4x ai ai
atd ,
Im+1 má funkce g(x) tvar g m 1 ( x) mx ai .
m
i 1
Obecně tedy na intervalu Il má g(x) tvar m
l 1
i l
i 1
g l ( x) m 2l 1x ai ai , což je lineární funkce se směrnicí m 2l 1 .
Funkce gl(x) je klesající, pokud má zápornou směrnici, tedy platí m 1. 2 Naopak funkce gl(x) je rostoucí, pokud má kladnou směrnici, a tedy platí m 2l 1 0 , tedy l
m 1. 2 Z těchto závěrů vyplývá, že funkce g(x) nabývá svého minima pro x rovno mediánu m 2l 1 0 , tedy l
hodnot a1, a2, ..., am. Pokud zjištěný vztah aplikujeme na každý prvek vektoru ve výrazu (2.8), vidíme, že centroidem při použití manhattanské vzdálenosti je vektor mediánů pro jednotlivé proměnné spočtených na základě všech objektů přiřazených k danému shluku.
2.1.3 Čebyševova vzdálenost Pokud použijeme Čebyševovu vzdálenost, viz (1.12), dostáváme se ke vztahu c arg min max x j y j ; y R d arg min x y ; y R d . xX 1 j d xX
49
(2.11)
Zřejmě platí x
x 1 d x . Z toho vyplývá, že l1- norma a l- norma jsou
ekvivalentní17, a proto obdobně jako v případě manhattanské vzdálenosti platí, že při použití Čebyševovy vzdálenosti je centroidem opět vektor mediánů pro jednotlivé proměnné spočtených na základě všech objektů přiřazených k danému shluku.
2.2 Matematický popis zadání metody k-průměrů Nechť x i xi1 , ..., xid , kde xij R, j 1, ..., d je d-dimenzionální objekt, n je
počet všech shlukovaných objektů, X i ; i 1, ..., n je množina všech objektů. Nechť k je počet požadovaných shluků, C C l ; l 1, ..., k je množina všech shluků, přičemž
platí C l X, l 1, ..., k , k
C
l
X,
(2.12) (2.13)
l 1
C l C l , l , l 1, ..., k : l l .
(2.14)
Definujme váhy wil (indikátory přináležení do shluků) pomocí předpisu wil 1, pokud x i C l , wil 0, pokud x i C l .
(2.15)
Dále pro každý shluk Cl definujme centroid shluku c l cl1 , ..., cld dle vztahu n
clj
w
il
i 1
n
xij
wil
, l 1, ..., k .
(2.16)
i 1
Pak cíl úlohy k-průměrů můžeme převést na hledání minima účelové funkce Q (funkce k proměnných = k centroidů), která je definována jako součet čtverců euklidovských
vzdáleností objektů od jejich centroidů,
17
Vektorové normy x , x jsou ekvivalentní, pokud existují kladné konstanty a takové, že
x x v x
platí pro všechna x.
50
Q x c(x) xX
2 2
wil xij clj , k
n
l 1 i 1
d
2
(2.17)
j 1
kde c(x) označuje centroid, ke kterému je objekt x nejblíže. Přímo z definice je zřejmé, že minimalizace hodnot funkce Q ukazuje na minimalizaci variabilit uvnitř shluků. Dále platí, že celková variabilita souboru zůstává při různém shlukování stále stejná. Z toho vyplývá, že variabilita mezi shluky je tím větší, čím je menší hodnota optimalizované funkce Q. Vzhledem k vlastnostem (2.12) až (2.14) můžeme vztah (2.17) napsat pro libovolné rozdělení do shluků C C l ; l 1, ..., k , při označení Q(C l ) Q(C ) x c(x) xX
2 2
xc
xCl k
2 l 2
x cl l 1 xCl
, ve tvaru 2 2
k
Q(C l ) . l 1
(2.18)
Mějme libovolné rozdělení množiny X do předem daného počtu k shluků C C l ; l 1, ..., k . Dle vztahu (2.2) při použití čtvercové euklidovské vzdálenosti vy-
počítáme pro všechny shluky Cl, l 1, ..., k centroidy cl. Poté, s využitím vzorce (2.3), vytvoříme nové rozdělení do shluků C´ C´l ; l 1, ..., k . Lze dokázat, že platí Q(C´) Q(C ) . Podrobný důkaz nalezneme například v [32]. Vzhledem k výše
uvedeným informacím můžeme formulovat postup základní verze metody k-průměrů, který je popsán v následující části.
2.3 Algoritmus k-průměrů Základní algoritmus k-průměrů je tvořen následujícími kroky (viz například [15] či [25]) 0. Vstup: datová matice X, požadovaný počet shluků k. 1. Prvotní náhodné rozdělení objektů do k shluků. 2. Výpočet centroidů všech shluků, tj. pro všechna l = 1, ..., k vypočítat cl dle vztahu (2.16). 3. Přiřazení všech objektů k centroidům, tj. pro množinu centroidů c1 , ..., c k , vzniklých v kroku 2 vytvořit rozdělení C C1 , ... , Ck množiny X do shluků dle předpisu (2.3).
51
4. Pokud došlo ke změně, tj. pokud se změnila množina shluků oproti předchozí iteraci, nebo-li pokud existuje objekt xX, který byl přiřazen do jiného shluku než v předchozí iteraci, návrat na krok 2. 5. Výstup: k centroidů, resp. přiřazení objektů matice X do k shluků.
Uvedená verze algoritmu je z roku 1957 a je známa pod názvem Llyodův algoritmus, viz např. [19]. Forgyho algoritmus [18] z roku 1965 se liší v prvním kroku, kdy prvotní rozdělení do shluků provádí pomocí náhodného výběru k objektů, které jsou zvoleny za prvotní centra a následně jsou k nim přiřazeny ostatní objekty. Janceyova verze algoritmu z roku 1966 nepočítá nové centroidy přímo z datové matice, ale vypočítává je za využití centroidů z předchozí iterace, viz [19]. MacQuenova metoda [36] se liší od ostatních tím, že přepočet centroidů provádí po přesunu jednotlivých objektů z jednoho shluku do druhého a nikoliv až po provedení všech změn. Hlavními výhodami metody k-průměrů jsou především
jednoduchý princip,
přijatelná rychlost (a tím použitelnost pro velké soubory dat),
relativně dobré výsledky (vzhledem k minimalizaci vnitroskupinové variability).
Mezi nevýhody metody k-průměrů patří
nutnost zadání požadovaného počtu shluků,
hledání pouze lokálního optima,
hledání pouze konvexních shluků,
velká časová náročnost pro obzvlášť velké soubory,
silný vliv inicializačního rozdělení na výsledek shlukování,
negativní vliv odlehlých objektů,
vliv pořadí objektů na výsledek shlukování,
možnost nedodržení určeného počtu shluků (tj. možnost vzniku prázdných shluků).
52
Problém nalezení pouze lokálního optima je dán principem algoritmu, a proto jej nelze odstranit. Obdobně i schopnost nalezení pouze konvexních shluků. Problém nutnosti zadání požadovaného počtu shluků je možno řešit vhodným předzpracováním dat pro určení optimálního počtu shluků. Touto problematikou se zabývají například články [57] a [59]. V případě, že v průběhu shlukovacího postupu vznikne prázdný shluk, čemuž nemůžeme zabránit, sníží se požadovaný počet shluků k. Nejčastějším řešením tohoto problému je rozdělení největšího shluku do dvou. Jedna z možností rozdělení jednoho shluku na dva je uvedena v kapitole 1.2.5. Problematikou výhod a nevýhod metod k-průměrů jsem se zabývala v článku [78]. Alternativy metody k-průměrů se především zaměřují na odstranění nebo alespoň zmírnění některé ze
zbývajících z výše uvedených nevýhod.
2.4 Snižování výpočetní náročnosti algoritmu Problém výpočetní náročnosti je řešen různými autory velmi různě. Od algoritmicky malých, téměř kosmetických úprav, až po principiální změny. Vygenerovala jsem data obsahující 10 000 dvourozměrných objektů rozdělených do dvaceti shluků. Obě souřadnice objektů náležejících jednotlivým shlukům byly náhodně generovány jako hodnoty patřící normálnímu rozdělení vygenerovaných parametrů. Střední hodnoty byly náhodně generovány z rovnoměrného rozdělení s hodnotami od 0,0 do 1,0. Rozptyly byly náhodně generovány z rovnoměrného rozdělení s hodnotami mezi 0,1 a 0,5. Data jsem zpracovala pomocí klasického algoritmu k-průměrů. V průběhu jsem v jednotlivých iteracích zaznamenávala hodnoty účelové funkce Q, definované vztahem (2.17). Na obrázku 2.1 je patrný velmi rychlý počáteční pokles hodnot účelové funkce Q a zanedbatelný pokles ve vyšších iteracích. Od sedmdesáté sedmé iterace se hodnota funkce Q nemění. Velmi podobných výsledků jsem dosáhla i při sledování poklesu hodnot účelové funkce Q při shlukování objektů jiných souborů, které jsem vygenerovala výše popsaným způsobem.
53
hodnota funkce Q
600 550 500 450 400 350 300 250 200 150 100 50 0 0
20
40
60
80
počet iterací
čas v sekundách
Počet iterací
100
počet iterací
350 300 250 200
80 60 40 20 0 1
0,1
0,01
0,001
0,0001
0,00001
0,000001
150 100 50 0 0,0000001
Čas v sekundách
Obr. 2.1 Vývoj hodnot účelové funkce Q
Minimální hodnota vylepšení funkce Q
Obr. 2.2 Závislost času, respektive počtu iterací na nastavené minimální hodnotě
vylepšení účelové funkce Q Algoritmus umožňuje nalezení pouze lokálního minima, proto již není velkým ústupkem od přesnosti výsledku, pokud ukončíme běh algoritmu po dostatečném počtu iteračních kroků, ještě v okamžiku, kdy se hodnota funkce Q stále nepatrně snižuje. V některých variantách (například implementace metody k-průměrů ve statistickém programovém systému STATISTICA či SPSS) se výpočet ukončuje po předem daném počtu iterací. Nejčastěji uváděnou variantou (např. [2], [15], [32] či [51]) je ukončení algoritmu udáním mezní hodnoty zlepšení hodnoty (absolutní či relativní) účelové
54
funkce Q, při které se již nemá pokračovat ve výpočtu. Tato řešení mohou znamenat úsporu času při zpracování velmi rozsáhlých souborů dat, ovšem na úkor přesnosti výsledku. Na obrázku 2.2 je znázorněn vývoj času zpracování, respektive počtu iterací, v závislosti na mezní absolutní hodnotě změny hodnot funkce Q, při které je algoritmus ukončen. Mezní hodnoty funkce Q jsou v grafu vyneseny v logaritmickém inverzním měřítku. V tabulce 2.1 je uveden přepočet absolutních hodnot změn hodnot funkce Q. Pro absolutní hodnoty menší než 0,0001 jsou relativní hodnoty řádově menší než 10-6. Tab. 2.1 Převod absolutních hodnot změn hodnot funkce Q
absolutní hodnota změny relativní hodnota změny
1 0,1 0,01 0,001 0,0001 0,022124 0,003462 0,000348 0,000039 0,000004
Principielně odlišnou obměnou je například algoritmus využívající mrkd-stromů. Algoritmus k-průměrů pracující na tomto principu autoři článku [31] nazvali filtrovací algoritmus. Jeho dvě varianty jsou popsány v kapitole 3.2. Vstupní data uspořádaná do stromové struktury přinášejí velké zefektivnění původní verze metody. Toto zefektivnění je způsobeno faktem, že při výpočtech nemusíme pracovat samostatně s jednotlivými objekty ale pracujeme hromadně se skupinami objektů sdružených ve vrcholech stromu. Použití stromů se z časového hlediska obzvlášť vyplatí, pokud potřebujeme algoritmus spouštět opakovaně, například při zkoumání výsledků pro různá počáteční rozdělení do shluků. Objevují se i alternativy metod, které řeší časovou proveditelnost běhu algoritmu k-průměrů i pro obzvlášť velké soubory, které nelze načíst najednou do operační paměti.
V těchto případech je nutno při každé operaci s libovolným objektem přistupovat na disk. I/O operace18 patří k časově velmi náročným. Proto se všechny metody umožňující zpracování i takto velkých souborů snaží minimalizovat počet průchodů souborem. K nejznámějším z těchto metod patří metoda BIRCH popsaná v kapitole 1.2.4, která se 18
I/O operace (angl. Input – Output) operace pro čtení a zápis z disku, respektive jiného zařízení do
operační paměti.
55
stala základem dvoufázové metody shlukování ve statistickém systému SPSS od verze 11.5. Tento algoritmus však nepatří mezi algoritmy k-průměrů. Do této skupiny ale náleží jedna z variant metody BIRCH, která je popsaná v kapitole 3.1, a to algoritmus BIRCH k-průměrů. Oba tyto algoritmy, jak původní klasickou metodu BIRCH, tak modifikovanou metodu BIRCH k-průměrů, je možno spustit ve tvaru, kdy postačuje jeden průchod datovým souborem. Je to však na úkor kvality shlukování. V případě klasického algoritmu BIRCH není povinná poslední fáze, ve které se při druhém průchodu souborem přerozdělují všechny objekty k jim nejbližším centrům, čímž se získává nové složení shluků oproti předchozí povinné fázi, v níž přiřazení jednotlivých objektů k centrům vychází z příslušnosti k jednomu z podshlukům vzniklým v první fázi algoritmu. Bez využití poslední nepovinné fáze však hrozí riziko, že dva totožné objekty vstupující do první fáze v různých okamžicích tvorby CF-stromu, budou zařazeny do odlišných výsledných shluků. V případě alternativy motivované algoritmem k-průměrů se vynechá třetí krok, přerozdělování všech objektů k centrům vzniklým pomocí shlukování centroidů vzniklých v prvním kroku algoritmu. Objekty se v tomto zrychlujícím případě automaticky přiřadí do shluku, kam náleží „jejich“ centroid. Z hlediska kvality shlukování se mi však osvědčilo naopak po třetím kroku algoritmu přidat ještě čtvrtý, ve kterém se provede vylepšení výsledku pomocí klasické metody k-průměrů. V tomto případě však již nemůžeme mluvit o výhodnosti použití pro velmi velké soubory, viz kapitoly 3.1 a 4.2.1. Další možnosti popisuje ve svých článcích [42], [43], [44], [45] či [46] C. Ordonez. K zefektivnění běhu algoritmu k-průměrů využívá síly databázových systémů, specielně SQL prostředí ORACLE. DBMS19 ORACLE je určen pro velké databáze. Pokud zpracovávaná data naplníme do SQL tabulky a poté při programování využíváme všech optimalizačních prostředků databázového systému, dostaneme velmi dobré výsledky. Podobný přístup popisují ve svých článcích [62] a [63] autoři L. Suresh a J. B. Simha.
19
DBMS (DataBase Management System) - databázový systém. Obvykle je to sada programů, které tvoří mezivrstvu mezi aplikacemi a uloženými daty
56
2.5 Odstranění vlivu inicializačního rozdělení Velká citlivost metody k-průměrů na inicializační „náhodné“ rozdělení do shluků je velmi negativní vlastností. V původním Lloydově algoritmu, viz část 2.3, se v inicializačním kroku vytváří náhodné rozdělení do shluků. V případě, že toto náhodné rozdělení vytvoří nerovnoměrně (vzájemně či vzhledem ke skutečné velikosti) veliké shluky, dochází k nepřijatelně špatným výsledkům. Problematikou jsem se zabývala v článku [79]. Vliv inicializačního rozdělení do shluků na výsledné shlukování jsem mimo jiné prověřovala na zpracování dobře známého souboru IRIS, který obsahuje 150 objektů rozdělených do tří skupin po 50 objektech, každý objekt je popsán pomocí čtyř kvantitativních proměnných (podrobnější popis souboru je uveden v části 4.1.2). K porovnání kvality výsledných shlukování vzniklých různými algoritmy na stejných datech je vhodné použít dosaženou minimální hodnotu účelové funkce Q. Platí, že čím je nižší tato hodnota, tím je nižší vnitroskupinová variabilita shluků, a tím i vyšší meziskupinová variabilita mezi shluky, a tedy lepší shlukování. Ve většině případů náhodného rozdělení do shluků se hodnota účelové funkce Q pohybovala v rozmezí od 78,2548 do 108,2683. V případě volby velmi nevyváženého prvotního rozdělení do shluků, kdy první dva shluky obsahovaly pouze po jednom objektu a třetí shluk obsahoval všechny ostatní objekty, se konečná hodnota minimalizované funkce Q „vyšplhala“ až na 240,3687. To znamená, že výsledná hodnota v tomto případě velmi převýšila hodnoty dosažené při jiných inicializačních rozděleních do shluků, tedy kvalita výsledného shlukování je mnohem horší. Nejvíce využívaný způsob, kdy za prvotní centra vybíráme prvních k objektů a k nim následně vytvoříme patřičné shluky, však vede v mnoha případech také k dosti špatným výsledkům. Jedno z možných rozložení inicializačních center souboru IRIS, vytvořených tímto způsobem, je vidět na obrázku 2.3a). Zobrazení pomocí grafů „scatterplot“ je součástí přílohy 10. Při různém náhodném generování inicializačních center se cílová hodnota účelové funkce Q pohybovala ve spodní části výše uvedeného rozmezí. Nejlepší dosažená hodnota funkce Q však je 77,0924. Této hodnoty dosáhly algoritmus k-průměrů++ (viz kapitola 3.3) a BIRCH algoritmus k-průměrů (viz kapitola 3.1).
57
2
1,5
1
1
0,5
0,5
faktor 2
faktor 2
2
1,5
0 -5
-4
-3
-2
-1
0
1
2
3
4
-0,5
0 -5
-4
-3
-2
-1
0
1
2
3
4
-0,5
-1
-1
-1,5
-1,5
faktor 1
faktor 1
a)
b) 2
1,5
faktor 2
1
-5
0,5
0 -4
-3
-2
-1
0
1
2
3
4
-0,5
-1
-1,5
faktor 1
c) Obr. 2.3 Inicializační rozmístění center (soubor IRIS) při metodách
a) základní k-průměrů, b) BIRCH k-průměrů, c) k-průměrů++ Jednoduchým řešením, jak zmírnit vliv volby inicializačních center, je spustit celý algoritmus několikrát pro různá počáteční rozdělení do shluků a z výsledných shlukování vybrat to s nejmenší hodnotou funkce Q. Tento postup však není dobře proveditelný u obzvlášť velkých souborů, kdy je doba zpracování velmi dlouhá. Proto jsem se zabývala dvěma způsoby kladoucími si za cíl rozptýlit inicializační centra co nejvíce mezi celým souborem, což vede k nejlepším konečným výsledkům shlukování. Podrobnější popis a ukázky jsou součástí dalších kapitol. Jednak jsem hlouběji prozkoumala metodu k-průměrů++, popsanou v kapitole 3.3, a jednak BIRCH algoritmus k-průměrů, viz kapitola 3.1. Výsledkem obou algoritmů bylo rovnoměrné rozmístění prvotních center mezi všemi objekty. Každý z algoritmů vedl k jinému inicializačnímu výběru center. Přesto na zkušebních datech byly konečné výsledky shlukování srovnatelné. Inicializační centra souboru IRIS, vytvořená těmito způsoby, jsou vidět na obrázku 2.3 b), respektive 2.3 c). Hlavním rozdílem byl čas zpracování velkého datového souboru. V mé konkrétní implementaci bylo zpracování pomocí algoritmu k-průměrů++ podstatně rychlejší než zpracování metodou BIRCH k-průměrů. Navíc nevýhodou druhé z uvedených metod je nutnost vhodné volby dvou vstupních parametrů, což může být
58
velmi náročné. V případě nevhodné volby může dojít k relativně špatným výsledkům celkového shlukování (viz část 3.1 či 4.2.4).
2.6 Snížení vlivu odlehlých objektů Velká citlivost shlukování na odlehlá pozorování je další skutečnost, která může záporně ovlivnit kvalitu výsledného rozdělení do shluků. Ve většině případů, zvlášť pokud data zpracováváme pomocí standardních statistických programových systémů, jsme odkázáni na vhodné předzpracování dat a případné vyloučení odlehlých objektů z dalšího zpracování. Touto problematikou se zabývá například článek [12] či [77]. Jinou možností je, jak navrhuje autor například v [21], spuštění několika málo iterací shlukovacího algoritmu, po kterých se může vytvořit shluk, respektive shluky, obsahující jen zanedbatelné množství objektů. Objekty v těchto shlucích můžeme považovat za odlehlé. Uvedený způsob není dle mého názoru ideální z důvodu nejasnosti potřebného počtu iterací, po kterých se oddělí malé shluky. Tento počet je různý pro různá počáteční rozdělení do shluků. Pro obzvlášť velké datové soubory není výše uvedený způsob využitelný vůbec z důvodu velké časové náročnosti zpracování jednotlivých iterací. V odborné literatuře se objevují shlukovací metody přímo zaměřené na data obsahující odlehlé objekty. Jedním z takovýchto postupů je například dvoufázový algoritmus k-průměrů, který je blíže popsán v podkapitole 3.4. Tento algoritmus umí odhalit malé skupinky objektů, které jsou od zbylých objektů velmi vzdálené. Na jiném principu je postavena moje varianta metody k-průměrů pracující s mrkd-stromy popsaná v části 3.2.3. Ta, obdobně jako předchozí algoritmus, nachází skupiny s malým počtem objektů (tj. menším než daná konstanta). Výhodou tohoto způsobu je fakt, že identifikace odlehlých objektů probíhá v rámci fáze předzpracování, kterou je nutno provádět i v případě, že nás odlehlé objekty nezajímají. Je to fáze organizující data do stromové struktury, která činí následující fázi shlukování velmi efektivní.
59
2.7 Vliv pořadí objektů Jedním z dalších možných problémů shlukovacích algoritmů je vliv pořadí objektů v datovém souboru na výsledné shlukování. Ve skupině algoritmů k-průměrů je citlivost k tomuto problému velmi rozdílná. Většina variant popsaných v rámci této práce není na pořadí závislá vůbec, ovšem existují i varianty silně závislé. Pokud se podíváme na jednotlivé kroky základního algoritmu k-průměrů, vidíme, že v krocích 2 až 4 pracujeme vždy se všemi objekty dohromady, přesněji řečeno s údaji vypočtenými na základě všech objektů. Žádným způsobem objekty netřídíme a rozřazování probíhá pouze na základě vzdálenosti od jednotlivých centroidů. Tyto kroky tedy nejsou žádným způsobem závislé na pořadí objektů v datovém souboru. Jiná situace je však v kroku 1. Zde velmi záleží na konkrétním způsobu, jak vytvoříme inicializační rozdělení do shluků. V základní Lloydově variantě se provádí náhodné rozdělení do shluků. To zcela jistě není na pořadí závislé. Taktéž varianta, kdy se za množinu inicializačních center shluků uvažuje množina k náhodně vybraných objektů, je viditelně na pořadí nezávislá. Nejčastěji používaná varianta, kdy se do množiny inicializačních center shluků vloží prvních k objektů datového souboru, je však zjevně zcela závislá na pořadí. Při této variantě není možno zmírnění vlivu inicializačního rozdělení objektů do shluků docílit pomocí opakovaného spuštění programu (při stálém pořadí objektů v souboru) a následného výběru nejlepšího výsledku, jak bylo popsáno v předchozí kapitole. Náhodný výběr objektů prováděný pomocí generování náhodného pořadí objektu v souboru je výpočetní operace, na jejíž provedení je potřeba zanedbatelný čas, srovnatelného s časem výběru prvních k objektů. Proto bych doporučila vždy využívat variantu s náhodným výběrem a vyhnout se variantě s výběrem prvních k objektů. Vlivu pořadí objektů v datovém souboru na výsledné shlukování v případě vybraných speciálních alternativ algoritmu k-průměrů se budu věnovat v kapitolách popisujících jednotlivé alternativy.
60
3 Alternativy metody k-průměrů V této kapitole podrobněji popíšu vybrané alternativy shlukovací metody k-průměrů umožňující řešení nebo alespoň zmírnění některých negativních vlastností
dané metody. Každá z podkapitol obsahuje detailní popis jedné z alternativ. Všechny tyto části mají obdobné členění. Nejprve vždy uvedu hlavní princip metody a její detailní postup. Poté v několika případech navrhnu modifikaci uvedeného postupu přinášející další dílčí vylepšení. Motivace a detailní popis navržené modifikace jsou vždy připojeny k popisu základního algoritmu. V každé podkapitole náležející dané alternativě bude následně popsána i její programová implementace. Text bude vždy obsahovat výpis hlavních výkonných procedur programu. Následují hlavní vstupy a výstupy jednotlivých procedur programů, v některých případech bude připojen i popis reprezentace dat v programu. Jednotlivé programové kódy jsou uloženy na přiloženém CD. V další části každé podkapitoly provedu diskuzi o časové náročnosti programu ve vztahu k počtu objektů ve zpracovávaném souboru, případně v závislosti na jiných faktorech, jako jsou počet dimenzí (proměnných), počet shluků, či na vstupních parametrech programu. Dále se budu zabývat rozborem konkrétních vlastností dané alternativy, opět v závislosti na různých hodnotách vstupních parametrů. Všechny popsané metody jsem naprogramovala ve vývojovém prostředí MATLAB verze 6.0 a ověřování proběhlo na počítači AMD Sempron 2400+ s frekvencí 1,6 GHz a 3 GB RAM. Experimenty jsem prováděla jednak na souborech dat speciálních vlastností, které jsem cíleně vytvořila pro ověření daného jevu, jednak na reálných i uměle generovaných souborech určených pro srovnání jednotlivých metod. Všechny tyto soubory jsou detailně popsány v části 4.1.
61
3.1 Algoritmus BIRCH k-průměrů V této části se budu věnovat variantě algoritmu BIRCH, jehož základní verze, kterou autoři poprvé zveřejnili v [69], je popsána v části 1.2.4. Algoritmus této varianty je blíže popsán například v [32]. Motivací vzniku varianty, obdobně jako základní metody BIRCH, bylo vytvořit postup umožňující shlukování objektů i v souborech, které se nevejdou do operační paměti, a proto se musí postupně načítat z disku, což je velice časově náročné. Hlavním cílem autorů bylo minimalizovat potřebný počet průchodů datovým souborem. Srovnáním obou variant BIRCH algoritmu jsem se zabývala v článku [76]. Hlavní myšlenka této metody vychází z principů algoritmu BIRCH. Hlavním cílem první fáze obou algoritmů BIRCH je jednorázovým sekvenčním průchodem datového souboru vytvořit takovou speciální datovou strukturu, která reprezentuje všechna data původního souboru a zároveň se vejde do operační paměti i v případě, že původní datový soubor dat se do operační paměti nevešel. V následujících fázích jsou pak shlukovány určité „metaobjekty“, jež jsou výsledkem první fáze. V obou algoritmech jsou těmito „metaobjekty“ skupiny (shluky) původních objektů, které splňují určité omezující vlastnosti. Přiřazením daného „metaobjektu“ (tj. skupiny objektů) do shluku se zároveň přiřadí i všechny objekty ve skupině obsažené. Na rozdíl o původního algoritmu BIRCH není metoda BIRCH k-průměrů založena na stromové struktuře, tj. oproti základní verzi nevytváří CF-strom, a je ovlivněna shlukovací metodou k-průměrů. Místo CF-charakteristiky je v uvedeném algoritmu ve výpočtu pro každý shluk Cl využívaná trojice údajů (m, q, c), kde m je velikost daného shluku, q je kvalita daného shluku a c je centroid shluku Cl. Kvalitu q shluku Cl vypočítáme dle vztahu q
( x c)
xCl
2
.
(3.1)
Lze jednoduše dokázat, že z trojice (nc, LS, SS), využívané v klasickém BIRCH algoritmu, a trojice (m, q, c) můžeme získat identické informace. Podrobný důkaz lze najít například v [32]. Obdobně jako základní algoritmus BIRCH má i tato varianta dva parametry. Prvním je L, povolený počet objektů v libovolném shluku v první fázi, a druhým je R,
62
hranice variability libovolného shluku („poloměr“ shluku). Pro libovolný shluk Cl vypočítáme jeho „poloměr“ rl dle vztahu rl
(x c )
2
l
xCl
nl
(3.2)
,
kde x je libovolný objekt shluku Cl, cl je jeho centroid, nl značí počet objektů ve shluku. Pro každý shluk Cl vznikající v první fázi algoritmu musí platit následující dvě omezující podmínky rl R,
(3.3)
nl L.
Autoři algoritmu nedávají žádné doporučení pro nastavení hodnot obou parametrů. Postup BIRCH algoritmu k-průměrů probíhá ve třech (respektive čtyřech) fázích (kromě vstupu a výstupu). 0. Vstup: datová matice X, parametry L a R (popis viz výše), počet shluků k. 1. V cyklu se sekvenčně vybere objekt x X a k tomuto objektu se nalezne „nejbližší“ shluk z množiny shluků ve kterém se přidáním objektu x nepřekročí hranice pro počet prvků ve shluku ani hranice variability shluku.
2
Tj. hledá se shluk Cl, pro nějž platí l arg min x c l 2 , l 1, ..., k , kde k je počet doposud vzniklých shluků a, označíme-li C l C l x , r l „poloměr“ shluku Cl a n l počet objektů ve shluku C l , platí rl R nl L. Pokud takovýto shluk neexistuje, vytvoří se pro objekt nový shluk, který obsahuje pouze tento objekt. Po zařazení objektu do shluku se objekt vymaže z množiny všech objektů. Cyklus se provádí, dokud není množina objektů prázdná. Pokud je počet shluků vzniklých v této fázi menší než požadovaný počet shluků k, změna (tj. snížení hodnoty) vstupních parametrů L a R a návrat na krok 120. 20
Autoři článku tento stav nijak neřeší. Uvedená možnost je nejjednodušší řešení situace, není však efektivní (a tím v praxi pro velké soubory dat použitelná) z důvodu nutnosti opětovného spuštění první fáze algoritmu a tím i nového průchodu datovým souborem. Jiným možným řešením by mohlo být rozdělení shluků s největším počtem objektů např. způsobem uvedeným v části 1.2.5.
63
2. V druhé fázi jsou centroidy z první fáze považovány za objekty shlukování. Jsou shlukovány do požadovaných k shluků pomocí metody k-průměrů. Je možno použít i jinou shlukovací metodu, zde popsaná verze vychází z [32]. Výsledkem této fáze je rozdělení centroidů z první fáze do k shluků. Na základě příslušnosti daného centroidu k výslednému shluku můžeme určit i příslušnost ke shluku u všech objektů, které byly v první fázi k tomto centroidu přiřazeny. Toto rozdělení původních objektů do shluků můžeme považovat za výsledné. 3. Třetí fáze již je nepovinná. Všechny původní objekty matice X jsou rozřazeny do shluků tak, že je každý objekt přiřazen k nejbližšímu z centroidů vzniklých ve druhé fázi. 4. Z hlediska kvality shlukování se mi osvědčilo po třetím kroku algoritmu přidat ještě čtvrtý, ve kterém se provede vylepšení výsledku pomocí klasické metody k-průměrů. V tomto případě však již nemůžeme mluvit o výhodnosti použití pro velmi velké soubory. 5. Výstup: Přiřazení objektů matice X do k shluků.
3.1.1 Implementace algoritmu BIRCH k-průměrů Vstupem algoritmu je datová matice o n řádcích a d sloupcích, jejíž každý řádek reprezentuje jeden z n objektů o d rozměrech. Druhým vstupem je povolený počet objektů v libovolném shluku L a třetím je hranice variability libovolného shluku („poloměr“ shluku) R pro první fázi algoritmu. Dalším vstupem je požadovaný počet cílových shluků. Posledním parametrem je prahová minimální hodnota vylepšení účelové funkce Q, definované předpisem (2.17). Důležitými výstupy jsou seznam center výsledných shluků, počet objektů v jednotlivých shlucích a výsledná hodnota účelové funkce Q. V průběhu ověřování byly využity další výstupy, jako například časy zpracování jednotlivých fází programu či centra vzniklá v první fázi programu.
64
3.1.2 Provedené experimenty Chování algoritmu jsem zkoumala na několika datových souborech. Jedním z nich je soubor IRIS s reálnými daty (viz část 4.1.2). Další experimenty jsem prováděla na uměle generovaných datech. Přímo pro zkoumání vlastností algoritmu BIRCH k-průměrů jsem vytvořila malý soubor s 20 objekty. Pro zkoumání závislosti doby
zpracování na počtu objektů jsem využila souboru GENER (viz část 4.1.3), z něhož jsem náhodným výběrem vytvářela různě velké soubory s počty objektů od sta do milionu.
Vliv volby parametrů na výsledné shlukování Pro názorné prozkoumání některých vlastností tohoto algoritmu jsem zvolila aplikaci algoritmu na známá data IRIS z [80]. Soubor je blíže popsán v části 4.1.2. Data souboru jsou uložena na přiloženém CD. Tento soubor byl vybrán především z důvodu, že obsahuje malý počet objektů, díky kterému je možno prozkoumat zařazení jednotlivých objektů do shluků. Dalším důvodem mého výběru je speciální struktura souboru, která je zřejmá z obrázku 4.2. Výše popsaný algoritmus BIRCH k-průměrů v první fázi provádí počáteční rozřazení objektů do shluků. Tato fáze má dva parametry, a to maximální počet objektů ve shluku L a „poloměr“ shluku R. Oba parametry silně ovlivňují výsledek první fáze. Například při hodnotě prvního parametru rovné L = 50 se při extrémně nízké hodnotě druhého parametru (R = 0,1) vytvořilo 118 shluků, přičemž nejpočetnější obsahoval pouze 5 objektů a průměrný počet objektů na shluk byl 1,2712. Naopak při stejné volbě prvního parametru a relativně vysoké hodnotě parametru druhého (R ≥ 1,0) se počet shluků ustálil na 5, přičemž dva nejpočetnější shluky obsahovaly plný počet objektů, tj. 50, a průměrný počet objektů na shluk byl 30. Při jiné konstantní hodnotě prvního parametru (L = 20) se při nízkých hodnotách druhého parametru (R ≤ 0,4) chová první fáze algoritmu stejně, jako pro předchozí hodnotu prvního parametru. Při stejné hodnotě prvního parametru a hodnotě druhého parametru R = 0,9 se vytvořilo 23 shluků, přičemž tři shluky obsahovaly plných 20 objektů a průměrný počet objektů na shluk byl 7,5217. Podrobnější přehled výsledků první fáze v závislosti na hodnotách obou parametrů je uveden v tabulce 3.1.
65
Tab. 3.1 Přehled výsledků první fáze algoritmu BIRCH k-průměrů
v závislosti na volbě obou parametrů L a R (soubor IRIS) Parametr L
Parametr R
Počet shluků
Počet objektů v největším shluku
50
0,1
118
5
1
Průměrný počet objektů na shluk 1,2712
50
0,2
70
11
1
2,1429
50
0,5
13
40
1
11,53850
50
0,9
8
50
2
18,75000
50
≥ 1,0 ≥
5
50
2
30,00000
20
0,1
118
5
1
1,2712
20
0,2
70
11
1
2,1429
20
0,5
25
20
1
7,5000
20
≥ 0,9 ≥
23
20
3
7,5217
Počet nejpočetnějších shluků
Tab. 3.2 Srovnání výsledků shlukování pomocí algoritmu BIRCH k-průměrů
v závislosti na volbě parametrů L, R (soubor IRIS) Parametr L
Parametr R
50
0,1
Počet chybně zařazených objektů ve 2. shluku 2
Počet chybně zařazených objektů ve 3. shluku 15
50
0,2
4
11
77,6817
50
0,9
17
1
78,3159
20
0,1
20
0,9
2 15 1. a 2. shluk si „rozdělily“ objekty odlišného druhu (+3 další objekty), 3. shluk obsahuje zbylých 97 objektů druhých druhů
Výsledná hodnota funkce Q 77,4107
77,4107 145,32340
Při dalším průzkumu jsem používala algoritmus včetně poslední nepovinné fáze. Výsledek celého algoritmu je ovlivněn výsledky první fáze a je velmi citlivý na volbu obou parametrů. Například zvolíme-li jako první parametr hodnotu L = 20, dostáváme pro hodnoty druhého parametru R ≥ 0,4 naprosto nevyhovující výsledky, zcela odlišné
66
od výsledků všech ostatních metod. Při volbě shlukování do tří shluků se vytvořil velký shluk o 97 objektech, obsahující téměř všechny objekty dvou druhů, které jsou si podobny. Naopak zbývající objekty třetího druhu, v obrázku 4.2 výrazně odděleného, se rozdělily do dalších dvou shluků v poměru 36:17. Pro srovnání kvality výsledků jednotlivých nastavení parametrů jsem, kromě vizuální kontroly chybných zařazení objektů, zvolila porovnání dosažených hodnot funkce Q, která udává součet čtverců vnitroskupinové variability. Je zřejmé, že čím nižší hodnota funkce Q (při daném počtu shluků), tím je lepší kvalita shlukování. Výsledky srovnání jsou uvedeny v tabulce 3.2.
shluky po 1. fázi shluky po 2. fázi
x2
1,5
1
0,5 0
1
2
3
4
5
6
7
8
9 10 11 12 13 14 15 16 17 18 19 20 21 x1
Obr. 3.1 Shluky po 1. a 2. fázi algoritmu BIRCH k-průměrů při pořadí objektů v souboru {1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20}, pro parametry „poloměr shluků“ R = 5, povolený počet objektů ve shluku L= 5, požadovaný počet shluků k = 3
Vliv pořadí objektů na výsledné shlukování Dále jsem se věnovala zkoumání vlivu pořadí objektů v datovém souboru na výsledné shlukování. Ověřování jsem prováděla na malém, vygenerovaném souboru dat, který obsahoval 20 objektů popsaných pouze jednou proměnnou. Proměnná nabývala postupně hodnot 1 až 20.
67
shluky po 1. fázi shluky po 2. fázi
x2
1,5
1
0,5 0
1
2
3
4
5
6
7
8
9 10 11 12 13 14 15 16 17 18 19 20 21 x1
Obr. 3.2 Shluky po 1. a 2. fázi algoritmu BIRCH k-průměrů při pořadí objektů
v souboru {20, 19, 18, 17, 16, 15, 14, 13, 12, 11, 10, 9, 8, 7, 6, 5, 4, 3, 2, 1}, pro parametry „poloměr shluků“ R = 5, povolený počet objektů ve shluku L = 5, požadovaný počet shluků k = 3 Program jsem spouštěla pro soubory, v nichž byla data ukládána v různých pořadích. Ve všech experimentech jsem nastavila jednotlivé parametry programu stejně, parametr „poloměr skupiny“ jsem nastavila na hodnotu R = 5, povolený počet objektů ve skupině také na hodnotu L = 5, požadovaný počet výsledných shluků k byl roven 3. Výsledná shlukování, včetně výsledků 1. fáze shlukování, ve třech vybraných případech jsou znázorněna na obrázcích 3.1 až 3.3. Jsou viditelné velmi znatelné rozdíly jak u výsledků první fáze, tak ve výsledném shlukování. V prvních dvou uvedených případech byla výsledná hodnota funkce Q rovna 73,5 a ve třetím případu nabyla funkce Q hodnoty 80.
68
Shluky po 1. fázi: objekty 1, 3, 5, 7, 9
objekty 18, 20
objekty 2, 4
objekt 16
objekty 11, 13, 15, 17, 19
objekty 10, 12, 14
objekt 6
objekt 8 shluky po 2. fázi
1,5
x2
1
0,5 0
1
2
3
4
5
6
7
8
9 10 11 12 13 14 15 16 17 18 19 20 21 x1
Obr. 3.3 Shluky po 1. a 2. fázi algoritmu BIRCH k-průměrů při pořadí objektů v souboru {1, 3, 5, 7, 9, 11, 13, 15, 17, 19, 20, 18, 16, 14, 12, 10, 8, 6, 4, 2}, pro parametry „poloměr shluků“ R = 5, povolený počet objektů ve shluku L = 5, požadovaný počet shluků k = 3
1 400
počet shluků
1 200 1 000 800 600 400 200 0 0
1
2
3
4
5
parametr R
Obr. 3.4 Vývoj počtu shluků vzniklých v první fázi algoritmu BIRCH k-průměrů v závislosti na parametru „poloměr shluků“ R, pro počet objektů n = 100 000, počet dimenzí d = 2, požadovaný počet výsledných shluků k = 3
69
Vliv vstupních parametrů K tomuto účelu jsem vytvořila ze souboru GENER, popsaného v kapitole 4.1.3., datový soubor skládající se ze tří shluků, přičemž první shluk obsahoval 33 334 objektů náhodně vybraných z prvního shluku souboru GENER. Další dva shluky nově vytvořeného souboru obsahovaly vždy 33 333 objektů vybraných z druhého, respektive třetího, shluku původního souboru GENER. 2 000
čas 1.fáze
čas 2. a 3. fáze
celkový čas
1 800 1 600
čas v sekundách
1 400 1 200 1 000 800 600 400 200 0 0
1
2
3
4
5
parametr R
Obr. 3.5 Průměrný čas průběhu algoritmu BIRCH k-průměrů v závislosti na parametru „poloměr shluků“ R, pro povolený počet objektů ve shluku L = 15 000, počet objektů n = 100 000, počet dimenzí d = 2, požadovaný počet shluků k = 3
Nejprve jsem sledovala počet vzniklých shluků v první fázi algoritmu pro různé hodnoty vstupních parametrů. Dle očekávání počet shluků vzniklých v první fázi klesal se vzrůstajícím povoleným počtem objektů ve skupině. Počáteční pokles byl velmi rychlý. V případě souboru obsahujícího 100 000 objektů klesl počet skupin z 19 941 pro hodnotu parametru L = 10 na 517 pro hodnotu L = 1 000. Poté došlo ke zmírnění poklesu a pro hodnoty parametru L nad 30 000 se počet skupin ustálil na 7. V případě sledování počtu vzniklých shluků na druhém parametru byla situace podobná. Jen došlo k zajímavé situaci, kdy po počátečním rychlém poklesu došlo pro určité hodnoty
70
parametru R k mírnému nárůstu. Poté pokles opět pokračoval, až do ustálení, které nastalo pro hodnoty parametru R nad 2. Vše je vidět na obrázku 3.4. K podobnému jevu došlo i při sledování souborů s jiným počtem objektů. Míra nárůstu byla různá, od téměř zanedbatelného až po velmi znatelný nárůst. Tab. 3.3 Průměrné časy a směrodatné odchylky po 1. fázi a na konci zpracování
programu v závislosti na parametru L parametr L 10 500 1 000 2 000 3 000 5 000 10 000 15 000 20 000 30 000 40 000 50 000 60 000 70 000 80 000 90 000 99 000
čas po 1. fázi výsledný čas aritm. průměr směr. odchylka aritm. průměr směr. odchylka 19093,0046 861,7350 478,4680 265,1250 211,3750 140,7820 74,8430 62,4060 74,1400 82,2190 83,8290 81,5930 78,0940 79,1250 83,3120 83,9840 81,9850
2,7579 1,2300 1,0574 0,6318 0,4810 0,4265 0,3037 0,6644 0,3751 0,7512 0,3196 0,2937 0,1755 0,1573 0,0918 0,3326 0,2071
19291,9200 939,4380 556,7340 337,0000 303,4380 262,9380 207,2810 178,3600 182,8900 206,6870 207,8290 212,8120 196,3130 196,9690 210,3280 212,1090 208,1250
1,9982 1,0777 1,1108 0,6210 0,4716 0,4741 0,1981 0,6697 0,1210 0,6134 0,3196 0,1368 0,2697 0,2112 0,1001 0,5033 0,5093
Na obrázcích 3.5 a 3.6 jsou znázorněny grafy zachycující závislost průměrné doby zpracování jednotlivých fází programu v závislosti na obou parametrech. V experimentech jsem vždy spustila program desetkrát pro dané nastavení parametrů. Z těchto hodnot jsem vypočítala aritmetický průměr a směrodatnou odchylku (viz tabulka 3.3, podrobněji viz příloha 6). Obdobný průběh času mělo i zpracování datových souborů s jiným počtem objektů, které nejsou zařazeny do této práce. Z grafů je zřejmé, že z časového hlediska existuje optimální hodnota obou parametrů.
71
1. fáze
čas v sekundách
1 000
2. a 3. fáze
celkový čas
900 800 700 600 500 400 300 200 100 0 0
20 000
40 000
60 000
80 000
100 000
počet objektů ve shluku
Obr. 3.6 Průměrný čas průběhu algoritmu BIRCH k-průměrů v závislosti na parametru povolený počet objektů ve shluku L, pro „poloměr shluků“ R = 0,9, počet objektů n = 100 000, počet dimenzí d = 2, požadovaný počet shluků k = 3
Obdobná situace nastala při sledování závislosti optimální hodnoty funkce Q na obou parametrech, která je zachycena na obrázcích 3.7 a 3.8. Při bližším sledování závislostí bohužel vyšlo najevo, že optimálních hodnot funkce Q je dosaženo pro jiné hodnoty parametrů než nejrychlejších časů. V případě parametru pro povolený počet objektů ve skupině L dokonce dochází k situaci, že pro hodnotu parametru, pro níž je čas zpracování nejnižší je hodnota funkce Q výrazně horší, než pro ostatní hodnoty parametru. Ve všech sledováních se hodnota sledované veličiny od určité hodnoty parametru ustálila na hodnotě, která nebyla o mnoho horší než nejlepší dosažené hodnoty. V případě, že není známá struktura dat a nemáme možnost hledat opakovaným spouštěním programu pro různé hodnoty parametrů optimální nastavení, lze z výše uvedeného důvodu doporučit nastavit vyšší hodnoty parametrů.
72
hodnota funkce Q
250 000 200 000 150 000 100 000 50 000 0 0
1
2
3
4
5
parametr R
Obr. 3.7 Vývoj výsledné hodnoty optimalizované funkce Q algoritmu BIRCH k-průměrů v závislosti na parametru „poloměr shluků“ R, pro povolený počet objektů ve shluku L =15 000, počet objektů n = 100 000, počet dimenzí d = 2, požadovaný počet shluků k = 3 140 000 hodnota funkce Q
120 000 100 000 80 000 60 000 40 000 20 000 0 0
20 000
40 000
60 000
80 000
100 000
parametr L
Obr. 3.8 Vývoj výsledné hodnoty optimalizované funkce Q algoritmu BIRCH k-průměrů v závislosti na parametru povolený počet objektů ve shluku L, pro „poloměr shluků“ R = 0,9, počet objektů n = 100 000, počet dimenzí d = 2, požadovaný počet shluků k = 3 Jednotlivé dílčí doby zpracování a dosažené hodnoty účelové funkce, pomocí
kterých byly vytvořeny grafy v této části jsou uvedeny v tabulkách v příloze 6.
Časová náročnost v závislosti na počtu objektů Pro další experimenty jsem náhodným výběrem objektů ze souboru GENER, popsaného v kapitole 4.1.3., vytvořila datové soubory, které vždy obsahovaly předem daný počet objektů uspořádaných do předem daného počtu shluků.
73
Zaměřila jsem se na sledování časové náročnosti běhu programu. Využila jsem předchozích experimentů na odhad co možná nejlepších nastavení parametrů pro různé počty objektů. Pro každou velikost datového souboru byly tedy použity jiné hodnoty vstupních parametrů. Pro každou velikost souboru a každé nastavení parametrů jsem program spouštěla desetkrát (viz příloha 6) a poté vypočítala průměr a směrodatnou odchylku naměřených hodnot, viz tabulky 3.4 až 3.6. Nejdříve jsem ověřovala závislost doby zpracování jednotlivých částí algoritmu a celkového času potřebného na celkový průběh. V případě ukončení programu po prvních třech fázích bez poslední nepovinné fáze rostl celkový čas téměř lineárně s nárůstem počtu objektů. Růst společného času druhé a třetí fáze dokonce mírně klesal. Tím byl eliminován rychlejší růst časů v první fázi. Vývoj průměrných časů je znázorněn na obrázku 3.9. 1. fáze
čas v sekundách
12 000
2. a 3.fáze
výsledný čas
10 000 8 000 6 000 4 000 2 000 0 0
200 000
400 000
600 000
800 000
1 000 000
počet objektů
Obr. 3.9 Průměrný čas průběhu algoritmu BIRCH k-průměrů bez nepovinné fáze v závislosti na počtu objektů, počet dimenzí d = 2, požadovaný počet shluků k = 20 Tab. 3.4 Průměrné časy po 1. fázi a směrodatné odchylky v závislosti na počtu objektů
počet objektů parametr L aritm. průměr směr. odchylka
100 000 50 000 116,5240 0,5062
300 000 150 000 724,1630 1,0193
500 000 100 000 2 059,5396 1,2994
74
750 000 250 000 3 793,4908 1,8366
1 000 000 750 000 5 923,5339 3,3049
Tab. 3.5 Průměrné časy po 3. fázi a směrodatné odchylky v závislosti na počtu objektů
počet objektů parametr1 aritm. průměr směr. odchylka
100 000 300 000 50 000 150 000 382,4900 2 274,2696 2,4244 3,2263
500 000 100 000 4 532,0995 5,4868
750 000 1 000 000 250 000 750 000 7 832,2430 11 003,6210 6,1429 50,2289
Tab. 3.6 Průměrné časy po nepovinné fázi a směrodatné odchylky v závislosti na počtu
objektů
čas v sekundách
počet objektů parametr1 aritm. průměr směr. odchylka
100 000 300 000 50 000 150 000 432,8501 2 692,4863 1,8435 6,1431
základní čas
20 000 18 000 16 000 14 000 12 000 10 000 8 000 6 000 4 000 2 000 0 0
200 000
500 000 750 000 1 000 000 100 000 250 000 750 000 5 502,1278 10 672,1997 18 804,4495 5,7680 17,8540 6,2741
nepovinná fáze
400 000
600 000
celkový čas
800 000
1 000 000
počet objektů
Obr. 3.10 Průměrný čas průběhu algoritmu BIRCH k-průměrů včetně nepovinné fáze v závislosti na počtu objektů, počet dimenzí d = 2, požadovaný počet shluků k = 20
Horší situace byla pro běh programu zahrnující i poslední nepovinnou fázi, ve které dochází ke zlepšení kvality shlukování pomocí základní metody k-průměrů. Pokud jsem program ukončovala v okamžiku, kdy došlo oproti předchozí iteraci ke změně hodnoty optimalizované funkce Q o méně, než předem daná hranice, byl časový nárůst velmi rychlý. Již pro datové soubory s počtem objektů kolem 500 000 překračovala doba zpracování hodinu. V případě, že jsem program ukončovala po předem daném počtu iterací, rostl čas s přibývajícím počtem objektů sice také rychleji než lineárně,
75
přesto nebyl nárůst tak extrémní. Závislost doby zpracování na počtu objektů pro tento způsob ukončení programu je znázorněna na obrázku 3.10.
Časová náročnost v závislosti na počtu objektů Pro další experimenty jsem výběrem proměnných ze souboru GENER1, popsaného v kapitole 4.1.4, vytvořila datové soubory, které vždy obsahovaly předem daný počet dimenzí. Objekty byly uspořádány do dvaceti shluků. Program jsem vždy pro daný počet dimenzí spouštěla desetkrát a měřila čas. Poté jsem vypočítala z těchto hodnot aritmetické průměry a směrodatné odchylky (viz tabulka 3.7, podrobněji viz příloha 6). Vývoj průměrných časů je vidět na obrázku 3.11. Je zřejmé, že časová náročnost roste s počtem dimenzí velmi výrazně. Tab. 3.7 Průměrné časy po nepovinné fázi a jejich směrodatné odchylky v závislosti na
počtu dimenzí počet dimenzí aritm. průměr směr. odchylka
2 381,3334 9,9128
4 415,0737 9,3183
6 10 1 061,5198 25 190,1941 24,7139 62,7233
čas v sekundách
30 000 25 000 20 000 15 000 10 000 5 000 0 0
2
4
6
8
10
12
počet dimenzí
Obr. 3.11 Průměrný čas průběhu algoritmu BIRCH k-průměrů včetně nepovinné fáze v závislosti na počtu dimenzí, počet objektů n = 100 000, požadovaný počet shluků k = 20
76
3.1.3 Shrnutí Algoritmus BIRCH k-průměrů je v první fázi algoritmu ovlivněn základní myšlenkou původního algoritmu BIRCH. V rámci této fáze rozdělí objekty do skupin splňujících předem dané omezující podmínky, jako je maximálně přípustný počet objektů ve skupině L a maximálně přípustná variabilita skupiny R. Výsledek první fáze je silně závislý na hodnotách obou parametrů L i R. Pro nezkušeného uživatele, který dobře nezná strukturu shlukovaných dat, je vhodná volba parametrů velmi obtížná. Algoritmus je určen pro shlukování velkých souborů dat, jejichž zpracování je časově velmi náročné. Proto není zcela možné shlukování mnohokrát opakovat pro různé hodnoty parametrů a následný výběr nejlepšího shlukování. V druhé fázi je využit klasický algoritmus k-průměrů, pomocí kterého se shlukují centra skupin vzniklých ve fázi první. Poté následuje výsledné rozdělení objektů do shluků. Nepovinná poslední fáze, ve které se pomocí klasického algoritmu k-průměrů ještě vylepší shlukování vzniklé v prvních třech fázích, sice kvalitu
výsledného shlukování podstatně zvýší, přináší však velký nárůst doby zpracování. Zvláště v případě, kdy v této fázi použijeme jako kritérium zastavení překročení meze změny hodnoty optimalizované funkce Q, narůstá čas se vzrůstajícím počtem objektů v souboru mnohem rychleji než lineárně. Algoritmus se stává špatně využitelným pro obzvlášť velké datové soubory. Určitým kompromisem je vylepšení shlukování pouze pomocí malého, předem daného, počtu iterací klasického algoritmu k-průměrů.
77
3.2 Filtrovací algoritmus V této části bude popsán algoritmus využívající speciální stromovou strukturu, mrkd-stromy. Nejprve se ve stručnosti budu věnovat struktuře mrkd-stromů a možnosti jejich tvorby. V další části se budu zabývat tzv. filtrovacím algoritmem tak, jak jej popsali autoři v [31]. Následovat bude odůvodnění možností jedné modifikace, kterou jsem navrhla. V poslední části detailně rozeberu implementaci algoritmů popsaných v předchozích částech kapitoly a provedu rozbor a diskuzi výhod, nevýhod a možných problémů použití popsaných metod.
3.2.1 Mrkd-stromy Kd-strom (resp. kvadrantový strom) je datová stromová struktura, která
reprezentuje rekurzivní dělení konečné množiny bodů z d-dimenzionálního prostoru na k částí (d-dimenzionálních hyperkvádrů), pomocí d – 1 dimenzionálních ortogonálních
nadrovin. Existuje mnoho způsobů dělení, jeden jednoduchý je rozdělení ortogonálně k nejdelší straně hyperkvádru na úrovni mediánu ze všech bodů hyperkvádru, viz obrázky 3.12 a 3.13.
Obr. 3.12 Ukázka dělení prostoru datových bodů na hyperkvádry pomocí
nadrovin pro d = 3, symetrická data Mrkd-stromy jsou speciálním binárním případem kd-stromů. Každý z vnitřních
vrcholů se štěpí na dva podřízené vrcholy, přičemž každý z vrcholů obsahuje informaci o všech bodech z příslušného hyperkvádru. Kořen stromu reprezentuje hyperkvádr
78
obsahující všechny sledované body. List (koncový vrchol) obsahuje jeden bod (nebo obecněji počet bodů menší než daná malá konstanta). Poznámka: V některých materiálech (např. [5], [47]) se pod pojmem kd-stromy rozumí mrkd-stromy.
Obr. 3.13 Ukázka dělení prostoru datových bodů na hyperkvádry pomocí
nadrovin pro d = 3, asymetrická data
3.2.2 Hlavní principy a postup filtrovacího algoritmu Tzv. filtrovací algoritmus je jednou z implementací Lloydova shlukovacího algoritmu využívající mrkd-stromy. Tento algoritmus je podrobněji popsán v [31], principy, na kterých je algoritmus postaven, v [30] a [41]. Algoritmus je velkým zefektivněním klasického přístupu algoritmu k-průměrů. Mrkd-strom je zkonstruován pouze jedenkrát pro daný soubor objektů a celá struktura nemusí být přepočítávána v každém iteračním kroku algoritmu k-průměrů. Autoři algoritmu provedli a v [31] popsali mnoho srovnávacích experimentů a na základě podrobné analýzy došli k závěru, že algoritmus je tím efektivnější, čím více jsou data přirozeně strukturovaná (tvoří viditelně oddělené skupiny), ale je účinný i v případě, pokud nejsou skupiny dat dobře oddělené. Dále ověřili srovnatelnost účinnosti se základním algoritmem BIRCH. Algoritmus pracuje s tzv. kandidátskými centry, resp. množinami kandidátských center vrcholu v mrkd-stromu. Kandidátská centra pro daný vrchol v jsou ta centra (v první iteraci inicializační centra, v následujících iteracích centra shluků vytvořených v předchozí iteraci), pro která je možno (tj „jsou kandidáty“), že k nim bude přiřazen alespoň jeden z objektů asociovaných s tímto vrcholem.
79
Postup filtrovacího algoritmu začíná vytvořením mrkd-stromu pro daná data. Pro každý vnitřní vrchol21 mrkd-stromu zjistí počet objektů asociovaných22 s tímto vrcholem a dále se z těchto dat vypočítá centroid. Stejně jako v Lloydově algoritmu se určí množina k inicializačních center (např. náhodným zvolením). Navíc se pro každý z vrcholů mrkd-stromu vytvoří množina kandidátských center, a to následujícím způsobem. Množina kandidátských center kořene stromu obsahuje všech k inicializačních center. Jednotlivá kandidátská centra se budou „prosívat“ stromem dolů směrem od kořene k listům následovně. Pro každý vrchol v označíme symbolem Hv nejmenší hyperkvádr obsahující všechny objekty asociované s tímto vrcholem a symbolem Kv množinu kandidátských center náležících vrcholu v. Nechť c* Kv, c* je ze všech c Kv nejblíže středu hyperkvádru Hv (tj. bodu z Rd, jehož souřadnice tvoří aritmetické průměry jednotlivých proměnných popisujících objekty obsažené v kvádru Hv). Z množiny Kv \ {c*} se odeberou („odfiltrují“) ta kandidátská centra c, pro která platí, že žádná část hyperkvádru Hv není blíže k c než k c*, protože z předchozího vyplývá, že toto c není nejbližším centrem pro žádný z objektů ležících v hyperkvádru Hv (tj. není kandidátem, že k němu bude přiřazen nějaký z objektů asociovaných s tímto
vrcholem). Zjištění, zda je některý z vrcholů hyperkvádru blíže k c* či k c, se provádí výběrem toho vrcholu V hyperkvádru Hv, který je nejblíže nadrovině, jež je kolmá ke směru c* c a od níž jsou c* a c stejně vzdáleny. Tato nadrovina dělí prostor na dvě části. V jedné z nich leží objekty, které jsou blíže k c než k c*. Druhá obsahuje objekty, které jsou blíže k c* než k c. Situace je znázorněna na obrázku 3.14. Hledaný vrchol V je vybírán následujícím způsobem. Označme h min , h max j j minimální, respektive maximální, hodnotu v j-té dimenzi (j = 1, ..., d) v rámci hyperkvádru Hv, u (u1 , u 2 , ..., u d ) vektor směřující z c* do c. Souřadnice [v1, v2, ..., vd] pokud u j 0 , a v j h max , pokud u j 0 . vrcholu V pak vypočítáme jako v j h min j j
21
Viz kapitola Základní pojmy z teorie grafů Každý vrchol v stromu reprezentuje nějakou množinu objektů. O těchto objektech řekneme, že jsou asociované s vrcholem v. 22
80
Obr. 3.14 Ukázka výběru vrcholu V v prostoru dimenze 2 (dle [47])
Pokud po „odfiltrování“ všech nežádoucích kandidátských center z Kv obsahuje Kv právě jediný prvek (který byl dříve označen c*), pak je zřejmé, že c* je nejbližším
centrem pro všechny objekty asociované s vrcholem v a všechny tyto objekty se mohou tomuto centru přiřadit. Pokud množina Kv po „odfiltrování“ nežádoucích kandidátských center obsahuje více než jeden prvek a pokud vrchol v není listem stromu, přejde se rekurzivně k dceřinému vrcholu. Pokud je v listem, spočítá se vzdálenost všech objektů asociovaných s tímto vrcholem od všech zbylých kandidátských center z množiny Kv a přiřadí se vždy k nejbližšímu centru. Tímto jsou přiřazeny všechny objekty jednotlivým centrům a může se dokončit iterační krok dle Lloydova algoritmu – mohou se spočítat patřičné centroidy a přemístit centra do těchto centroidů. Stejným způsobem se pracuje i v dalších iteracích. Průběh algoritmu se ukončí, stejně jako v případě Lloydova algoritmu, pokud se buď v posledním iteračním kroku nedošlo k žádné změně (tj. objekty jsou rozděleny do shluků stejně jako v předchozí iteraci), nebo pokud i přes případný přesun došlo jen k nevýraznému zlepšení, tj. snížení hodnoty (absolutní či relativní) účelové funkce menšímu než předem daná konstanta. Zkoumáním uvedeného algoritmu jsem se zabývala v článku [72].
81
Postup filtrovacího algoritmu 0. Vstup: datová matice X, počet shluků k. 1. Tvorba mrkd-stromu, pro každý vrchol stromu výpočet charakteristik (vektory minimálních a maximálních hodnot, vektor průměrů, vektor mediánů, vektor součtu druhých mocnin ze všech objektů asociovaných s daným vrcholem). 2. Tvorba množiny inicializačních kandidátských center kořene stromu, např. náhodným výběrem, nebo pomocí speciálního algoritmu (algoritmus k-průměrů++ viz 3.3).
3. Prosévání množiny kandidátských center skrz vrcholy směrem od kořene k listům pomocí „odfiltrování“ (tj. vypuštění) nežádoucích center (tj. center, která díky své vzdálenosti od objektů asociovaných s daným vrcholem nejsou vhodnými kandidáty na centrum těchto objektů). Podrobnější postup viz výše. 4. Pokud má množina kandidátských center více než jeden prvek a vrchol není listem, pak návrat na krok 3. 5. Pokud je množina kandidátských center pouze jednoprvková, pak jsou všechny objekty asociované s tímto vrcholem přiřazeny k zbylému jedinému kandidátskému centru. Pokud je vrchol listem, pak každý z objektů asociovaných s tímto vrcholem přiřadit k jemu nejbližšímu centru ze zbylých kandidátských center. 6. Pokud nebylo splněno kritérium zastavení (např. došlo ke změně rozdělení do shluků oproti minulému iteračnímu kroku, nebo došlo oproti minulému iteračnímu kroku k většímu snížení hodnoty účelové funkce než předem daná konstanta, nebo nebylo dosaženo maximálního povoleného počtu iterací) výpočet nových center a návrat na krok 3. 7. Výstup: přiřazení objektů matice X do k shluků.
3.2.3 Modifikovaný filtrovací algoritmus (MFA) V článku [31] autoři při tvorbě mrkd-stromu využívají dělení hyperkvádru pomocí nadroviny umístěné kolmo na nejdelší stranu na úrovni mediánu. V průběhu
82
práce na aplikaci algoritmu na tvorbu mrkd-stromu jsem měla obavy z efektivnosti výpočtu mediánu. Tato obava se ale ukázala neopodstatněná. Přesto mne přivedla k myšlence dělit hyperkvádr kolmo na nejdelší stranu, nikoliv však na úrovni mediánu, ale na úrovni aritmetického průměru. Výsledkem algoritmu s původní myšlenkou dělení na úrovni mediánu jsou velmi vyvážené stromy. Hloubka stromu23 se v jednotlivých větvích liší maximálně o jednu úroveň. Toto je způsobeno faktem, že dělení na úrovni mediánu zaručuje, že vrcholy v jedné úrovni stromu mají počet objektů odlišný maximálně o jeden objekt. Tato vlastnost má dvě velmi podstatné výhody. Jednou je relativně stabilní doba průchodu „prosévání“ kandidátských center v jednotlivých větvích stromu, a tím zaručená omezená doba celkového zpracování. Druhou výhodou je pohodlná práce se stromem v průběhu vlastního filtrovacího algoritmu. Stromy vzniklé pomocí upraveného algoritmu nejsou tak dokonale vyvážené. To znamená, že se délka cest od kořene k jednotlivým listům znatelně liší. Tato nevyváženost je zapříčiněna známou vlastností aritmetického průměru, který je silně ovlivňován odlehlými hodnotami. Proto v části oddělené průměrem, která obsahuje odlehlé hodnoty, je umístěn zpravidla mnohem menší počet objektů než v části druhé. Tato zdánlivá nevýhoda může být však docela podstatnou výhodou. Relativně dobře se daří odhalit odlehlé objekty, které mohou znehodnotit celkový výsledek konečného shlukování. Čím jsou objekty odlehlejší, tím dříve je algoritmus detekuje. Cesta stromu končící listem, jež obsahuje odlehlý objekt, je tím kratší, čím je objekt odlehlejší. Po oddělení odlehlého objektu se stávají data stejnorodější a hodnota aritmetického průměru se přibližuje hodnotě mediánu, dělení hyperkvádru je symetričtější. Vznikající podstrom je již vyváženější. Mrkd-strom vzniklý variantou dělení na úrovni aritmetického průměru se znatelně člení na několik vyvážených větších podstromů a případně několik krátkých osamocených větví. Příkladem je mrkd-strom na obrázku 3.16, který je vytvořen nad dvourozměrnými daty s jedním odlehlým objektem, jejichž struktura je zřejmá z obrázku 3.15. Minimální hloubka stromu je dvě. Tuto délku má cesta od kořene
23
Viz kapitola Základní pojmy z teorie grafů
83
stromu končící listem reprezentujícím odlehlý objekt. Maximální hloubka v takto vytvořeném stromu je sedm.
25 20
x2
15 10 5 0 0
2
4
6
8
10
12
14
16
18
20
22
x1
Obr. 3.15 Data s odlehlým objektem
Obr. 3.16 Mrkd-strom s dělením na pozici aritmetického průměru nad daty
s odlehlým objektem Na obrázku 3.17 je zobrazen mrkd-strom vytvořený nad stejnými daty pomocí původního algoritmu. Takto vytvořený strom má minimální hloubku pět a maximální hloubku šest. Odlehlý objekt není ve struktuře nijak viditelně odlišen.
84
Obr. 3.17 Mrkd-strom s dělením na pozici mediánu nad daty s odlehlým objektem
Poněkud jiná situace je znázorněna na obrázcích 3.18 a 3.19. Na obrázku 3.19 je zobrazen mrkd-strom vytvořený pomocí dělení na úrovni průměru z dat, jejichž struktura je zřejmá z obrázku 3.18. V datech je obsažen osamělý objekt24, který by mohl narušit celkový výsledek shlukování. Tento objekt je opět ve výsledném stromu velmi zřetelně viditelný. Je listem na cestě z kořene stromu k listu, jejíž délka je tři. Délka
x2
ostatních cest od kořene stromu k jednotlivým listům se pohybuje mezi pěti a osmi.
40 35 30 25 20 15 10 5 0 0
5
10
15
20
x1
Obr. 3.18 Data s osamělým objektem
Na obrázcích 3.208 a 3.21 je znázorněna situace asymetrických dat obsahujících jeden odlehlý objekt. Soubor znázorněný na obrázku 3.20 obsahoval 51 objektů 24
Osamělým objektem označuji speciální druh odlehlého objektu. Osamělý objekt splňuje obdobné
podmínky jako objekt odlehlý, tj. je velmi vzdálen od ostatních dat či při shlukování vytváří samostatný shluk. V žádné ze souřadnic však nenabývá extrémních hodnot, výjimečnou je kombinace všech souřadnic tohoto objektu (to znamená, že opticky se může „jevit mezi daty“).
85
popsaných pomocí dvou proměnných. Proměnné padesáti objektů byly uměle vygenerovány jako prvky exponenciálního rozdělení s parametrem 1. Poslední objekt byl uměle přidán. Na obrázku 3.21 je zobrazen mrkd-strom vytvořený pomocí dělení na úrovni průměru z dat, jejichž struktura je zřejmá z obrázku 3.20. Odlehlý objekt je opět ve výsledném stromu velmi zřetelně viditelný. Je listem na cestě z kořene stromu k listu, jejíž délka je tři. Délka ostatních cest od kořene stromu k jednotlivým listům se pohybuje mezi čtyřmi a osmi. Objekty korespondující s listy na cestách délky čtyři jsou v grafickém znázornění souboru umístěny na okraji „mraku“ objektů. Při určité interpretaci by je bylo možno také považovat za odlehlé.
Obr. 3.19 Mrkd-strom s dělením na pozici aritmetického průměru nad daty s osamělým
objektem 12 10
x2
8 6 4 2 0 0
2
4
6
8
10
x1
Obr. 3.20 Asymetrická data s osamělým objektem
86
12
Obr. 3.21 Mrkd-strom s dělením na pozici aritmetického průměru nad daty
s asymetrickými daty s odlehlým objektem Navrhla a prověřovala jsem různé způsoby identifikace odlehlých objektů v mrkd-stromu s dělením na úrovni průměru. Nejvíce se mi osvědčila varianta, kdy jsem za odlehlý označila ten objekt, jehož délka cesty ke kořeni byla „výrazně“ kratší než délka cesty z ostatních listů ke kořeni. Otázkou bylo, jak určit, co znamená výrazně kratší. Je zřejmé, že toto určení musí být závislé na počtu objektů, z nichž je mrkdstrom tvořen. Z konstrukce binárního stromu, kdy vrchol vznikajícího stromu reprezentující nějakou množinu objektů rozdělíme na dva následné vrcholy reprezentující dvě disjunktní podmnožiny, jejichž počet objektů se vzájemně liší maximálně o jeden, vyplývá, že hodnota log 2 n zaokrouhlená „nahoru“ na celé číslo vyjadřuje hloubku ideálně vyváženého binárního stromu pro n objektů (označíme hloubka). Tato hodnota představuje jakousi „průměrnou“ délku cest od listu ke kořeni stromu v libovolném binárním stromu sestrojeném nad n objekty. Z této úvahy vyplývá odpověď na výše položenou otázku, co znamená výrazně kratší cesta. Výrazně kratší cesta oproti ostatním je ta cesta, jejíž délka je několikrát menší než výše uvedená „průměrná“ délka, tj. délka cesty je menší než
hloubka . konst.
Uvedená konstanta určuje určitou míru odlehlosti objektu. Já ve svých experimentech používala hodnotu konst. = 2, tj. označení objektu za odlehlý, pokud je cesta z kořene stromu do listu obsahující tento objekt kratší než
hloubka , kde n je počet objektů. 2
Další mnou používanou variantou identifikace odlehlých objektů v mrkdstromech je označení skupiny objektů za odlehlé, pokud dělení na úrovni průměru je
87
asymetričtější než je nastavená hranice. Tedy, pokud poměr počtu objektů v jednotlivých oddělených částech je větší než předem daná konstanta, tj.
n1 konst., n2
kde n1 n2 jsou počty objektů v jednotlivých částech. Tato identifikace se však jevila méně dobrou. Kvalita výsledku byla více ovlivněna volbou konstanty. Již při malé změně konstanty se výsledná množina identifikovaných odlehlých objektů změní. Například v datech znázorněných na obrázku 3.18, jejichž mrkd-strom je vidět na obrázku 3.19 je výrazně odlehlý objekt oddělen od druhé části v poměru počtu objektů obou částí 5 : 1, ale existuje jiný objekt, který je oddělen v poměru 4 : 1. Tento objekt již ale není příliš odlehlý (na obrázku 3.20 se jedná o objekt na levém okraji skupiny objektů umístěné nejvíce vpravo).
Obr. 3.22 Falešný odlehlý objekt (dělení n rovni průměru)
Při vyhodnocování dat pomocí mrkd-stromu vytvořeného metodou dělení na úrovni průměru je třeba si uvědomit, že objekty detekované jako odlehlé nemusí ve skutečnosti odlehlými být. Tento relativně výjimečný stav by nastal v případě, kdyby se v rámci dělení hyperkvádrů oddělil osamocený objekt od početné skupiny tak, jak je vidět na obrázku 3.22.
88
3.2.4 Implementace filtrovacích algoritmů V následujícím textu bude popsána vlastní implementace jak filtrovacího, tak i modifikovaného filtrovacího algoritmu MFA. Oba programy využívají stejných procedur. Liší se pouze v části vytváření mrkd-stromu zabývající se dělením prostoru obsahujícího objekty.
Procedury pro tvorbu mrkd-stromu Vstupem procedur obou popsaných modifikací algoritmu pro tvorbu mrkdstromu je datová matice obsahující n řádků a d sloupců, jejíž každý řádek reprezentuje jeden z n objektů o d rozměrech. Druhým vstupem je pomocný údaj pro výpočet počtu iterací. Při prvotním volání procedury se tento vstup zadává roven 0. Výstupem je vytvořený mrkd-strom, celkový počet iterací a celkový čas zpracování. K realizaci mrkd-stromu byla využita struktura CELL, viz [89]. Pro kořen a každý vnitřní vrchol jsou ve struktuře uchovávány následující údaje: maximální a minimální hodnoty ve všech d dimenzích v rámci všech objektů obsažených v daném vrcholu, centroid, součet druhých mocnin jednotlivých souřadnic všech objektů, pro původní variantu medián ze všech objektů a pro upravenou variantu kód, že je levý, respektive pravý potomek vrcholu listem. Dále CELL struktura každého z těchto vrcholů obsahuje dvě struktury CELL reprezentující levý a pravý podstrom. V listech jsou uchovávány údaje o jednotlivých objektech. Procedury jsou volány rekurzivně. V každém průchodu procedurou je vygenerován jeden z vrcholů. V každé poslední úrovni rekurzivního vnořování je naplněn jeden z listů údaji o jednom objektu.
Procedura pro algoritmus k-průměrů s využitím mrkd-stromů Jedním ze vstupů řídící procedury pro zpracování algoritmu k-průměrů s využitím mrkd-stromů je CELL struktura obsahující mrkd-strom s údaji o zpracovávaných datech, který byl vytvořen procedurou, která byla popsána v předchozí části, a druhým vstupem je množina inicializačních center. Výstupem řídící procedury jsou tři údaje o výsledném shlukování, a to počet objektů v jednotlivých shlucích, součet jednotlivých souřadnic objektů v jednotlivých
89
shlucích a výsledná hodnota funkce Q, jež je dána předpisem (2.17), celková doba zpracování (v sekundách). Posledním výstupem je matice v jejíž řádcích jsou informace o výsledných centroidech. Hlavní výkonnou procedurou v této části programu je procedura provádějící prosévání množiny kandidátských center mrkd-stromem, a tím přiřazující všechny objekty k jednotlivým centrům. Tato procedura má šest vstupů. Jsou to CELL struktura obsahující mrkd-podstrom, množina všech kandidátských center, množina center, která do této úrovně prošla filtrováním, počet objektů a součet jednotlivých souřadnic, respektive součet druhých mocnin jednotlivých souřadnic objektů, které již byly do této úrovně přiřazeny k jednotlivým centrům. Výstupy výkonné procedury jsou jednak množina center, která zbyla po filtraci v kroku provedeném touto procedurou, aktualizovaný počet objektů a součet jednotlivých souřadnic, resp. součet druhých mocnin jednotlivých souřadnic objektů, které již byly do této úrovně přiřazeny k jednotlivým centrům. Posledním výstupem je doba (v sekundách) využitá na průběh procedury. Procedura je volána rekurzivně.
3.2.5 Provedené experimenty Prováděla jsem tři typy experimentů. Jednak jsem zkoumala závislost doby zpracování na počtu objektů v souboru, dále jsem sledovala závislost doby zpracování na počtu dimenzí v souboru. V obou těchto případech jsem program spouštěla pro dané nastavení vždy desetkrát. Z deseti takto naměřených časů jsem vypočítala průměrný čas, směrodatnou odchylku a variační koeficient. Naměřené a vypočítané hodnoty jsou uvedené v tabulkách přílohy 8. Nakonec jsem zkoumala chování algoritmu v závislosti na vzdálenosti mezi shluky. Experimenty jsem převážně prováděla na souborech se speciálně vygenerovanými daty.
Závislost doby zpracování na počtu objektů Náhodným výběrem objektů ze souboru GENER popsaného v kapitole 4.1.3. jsem vytvořila datové soubory, které vždy obsahovaly předem daný počet objektů uspořádaných do předem daného počtu shluků.
90
Tab. 3.8 Průměrné časy a směrodatné odchylky vytváření mrkd-stromu s dělením na
úrovni mediánu v závislosti na počtu objektů pro počet dimenzí d = 2 n aritm. průměr směr. odchylka
100 0,0465 0,0034
1 000 0,4295 0,0149
10 000 4,0235 0,0941
100 000 40,5315 0,2011
n aritm. průměr směr. odchylka
250 000 93,0390 1,1880
500 000 200,0310 1,2937
750 000 300,1170 0,6948
1 000 000 418,4850 0,4250
Na obrázku 3.23 je znázorněn průměrný čas běhu zpracování první fáze filtrovacího algoritmu v závislosti na počtu objektů n varianty algoritmu s dělením na úrovni mediánu. Hodnoty aritmetických průměrů a směrodatných odchylek jsou uvedeny v tabulce 3.8. Podrobnější údaje jsou součástí tabulky v příloze 8. Graf naznačuje, že doba zpracování roste lineárně s počtem objektů, což je přijatelný výsledek. Obdobná je situace pro MFA, časy jsou znázorněny na obrázku 3.25 a údaje
čas v sekundách
o průměrných hodnotách a směrodatných odchylkách v tabulce 3.10. 450 400 350 300 250 200 150 100 50 0 0
200 000
400 000
600 000
800 000
1 000 000
počet objektů
Obr. 3.23 Průměrný čas vytváření mrkd-stromu s dělením na úrovni mediánu
v závislosti na počtu objektů pro počet dimenzí d = 2 Z obrázku 3.24 je zřejmý poměr časů potřebných na jednotlivé části (první fáze = tvorba mrkd-stromu a druhá fáze = vlastní algoritmus k-průměrů). Průměrné časy a směrodatné odchylky druhé fáze filtrovacího algoritmu jsou uvedeny v tabulce 3.9. Je vidět, že podstatnou část doby na celkové zpracování zabírá čas na vytvoření mrkdstromu. Použití algoritmu je tedy obzvlášť výhodné, pokud plánujeme opakovat
91
shlukování. Je to například v případě, kdy chceme ověřovat vliv prvotního rozdělení do shluků na výsledné shlukování, případně pokud chceme vybrat nejlepší z výsledků.
tvorba stromu
600
vlastní výpočet
celkem
čas v sekundách
500 400 300 200 100 0 0
200 000
400 000
600 000
800 000 1 000 000 1 200 000
počet objektů
Obr. 3.24 Průměrný čas zpracování algoritmu k-průměrů s využitím
mrkd-stromů s dělením na úrovni mediánu v závislosti na počtu objektů Tab. 3.9 Průměrné časy a směrodatné odchylky druhé fáze filtrovacího algoritmu
v závislosti na počtu objektů pro počet dimenzí d = 2 100 0,5469 0,0442
n aritm. průměr směr. odchylka
1 000 1,2650 0,0382
100 000 250 000 500 000 1 000 000 16,0620 24,9060 35,4060 61,1250 0,1738 0,1652 0,1237 0,1349
600
čas v sekundách
500 400 300 200 100 0 0
200 000
400 000
600 000
800 000 1 000 000 1 200 000
počet objektů
Obr. 3.25 Průměrný čas vytváření mrkd-stromu s dělením na úrovni průměru
v závislosti na počtu objektů pro počet dimenzí d = 2
92
Tab. 3.10 Průměrné časy a směrodatné odchylky vytváření mrkd-stromu s dělením na
úrovni průměru v závislosti na počtu objektů pro počet dimenzí d = 2 1 000 10 000 100 000 250 000 500 000 750 000 1 000 000 n aritm. 0,4840 4,8600 50,9370 133,6560 251,5780 379,2650 525,6250 průměr směr. 0,0277 0,1432 00,2330 000,3040 000,5376 000,9436 001,7485 odchylka V grafu na obrázku 3.26 je znázorněno srovnání průměrných časů jednotlivých algoritmů v závislosti na počtu objektů n. Doba zpracování vzhledem k počtu objektů roste poněkud rychleji u algoritmu využívajícího dělení na úrovni průměru.
medián
čas v sekundách
600
průměr
500 400 300 200 100 0 0
200 000
400 000
600 000
800 000
1 000 000 1 200 000
počet objektů
Obr. 3.26 Srovnání průměrných časů potřebných na vytvoření mrkd-stromu s dělením
na úrovni průměru a na úrovni mediánu pro počet dimenzí d = 2
Závislost doby zpracování na počtu dimenzí Náhodným výběrem dimenzí ze souboru GENER1 popsaného v kapitole 4.1.4, jsem vytvořila datové soubory obsahující 100 000 objektů, které byly popsány předem daným počtem proměnných (tj. měly danou dimenzi d), uspořádaných do předem daného počtu shluků. Na obrázku 3.27 je znázorněn průměrný čas běhu zpracování v závislosti na počtu dimenzí d varianty algoritmu s dělením na úrovni mediánu. Průměrné časy a směrodatné odchylky jsou uvedeny v tabulce 3.11. Podrobnější údaje jsou součástí příslušné tabulky v příloze 8. Empirické údaje opět naznačují, obdobně jako v případě
93
sledování závislosti doby zpracování na počtu objektů, že doba zpracování roste lineárně, což je opět přijatelný výsledek.
čas v sekundách
120 100 80 60 40 20 0 0
20
40
60
80
100
120
počet dimenzí
Obr. 3.27 Průměrný čas vytváření mrkd-stromu s dělením na úrovni mediánu
v závislosti na počtu dimenzí pro počet objektů n = 100 000 Tab. 3.11 Průměrné časy a směrodatné odchylky vytváření mrkd-stromu s dělením na
úrovni mediánu v závislosti na počtu dimenzí pro počet objektů n = 100 000 2 d aritm. průměr 37,5940 směr. odchylka 0,1420 d aritm. průměr směr. odchylka
24 53,3120 0,6130
4 38,8900 0,4793 32 58,5780 0,4107
6 40,2810 0,4805 44 68,7500 1,8649
10 43,4220 1,1757 64 89,2970 1,0079
16 47,4840 0,5378 100 111,1100 1,6039
Tab. 3.12 Průměrné časy a směrodatné odchylky vytváření mrkd-stromu s dělením na
úrovni průměru v závislosti na počtu dimenzí pro počet objektů n = 100 000 d aritm. průměr směr. odchylka
2 47,1410 0,3157
4 48,4060 0,4906
6 50,9850 0,8099
10 55,0470 0,9076
16 58,7340 0,7132
d aritm. průměr směr. odchylka
24 63,5310 1,0815
32 71,5630 0,8310
44 82,6870 0,8490
64 96,6720 1,0516
100 113,5310 1,7224
94
Na obrázku 3.28 je znázorněn průměrná doba běhu zpracování v závislosti na počtu dimenzí d varianty algoritmu MFA. Průměrné časy a směrodatné odchylky jsou uvedeny v tabulce 3.12. Podrobnější údaje jsou součástí příslušné tabulky v příloze 8. Výpočetní čas ve všech případech, obdobně jako v případě dělení na úrovni mediánu, roste lineárně, což je opět přijatelný výsledek.
čas v sekundách
120 100 80 60 40 20 0 0
20
40
60
80
100
120
počet dimenzí
Obr. 3.28 Průměrný čas vytváření mrkd-stromu s dělením na úrovni průměru
v závislosti na počtu dimenzí pro počet objektů n = 100 000
140
medián
průměr
čas v sekundách
120 100 80 60 40 20 0 0
10
20
30
40
50
60
70
80
90
100 110
počet dimenzí
Obr. 3.29 Srovnání průměrných časů potřebných na vytvoření mrkd-stromu s dělením
na úrovni průměru a na úrovni mediánu pro počet objektů n = 100 000
95
V grafu na obrázku 3.29 je znázorněno srovnání průměrných časů jednotlivých algoritmů v závislosti na počtu dimenzí d. Zatímco čas vzhledem k počtu objektů roste poněkud rychleji u algoritmu využívajícího dělení na úrovni průměru (viz obrázek 3.26), čas vzhledem k počtu dimenzí roste srovnatelně rychle.
Experimenty s datovými soubory s málo a hodně oddělenými shluky Na obrázcích 3.30 až 3.32 jsou znázorněna data s různě rozlišenými shluky (tj. data s různou meziskupinovou variabilitou). V prvním případu (soubor USEBE) byla vygenerována dvourozměrná data náležející do pěti shluků. Každý shluk obsahoval tisíc objektů. Jednotlivé souřadnice v jednotlivých shlucích byly generovány jako hodnoty normálních rozdělení s rozptylem v rozmezí 1 až 3 a různými středními hodnotami. Shluky druhého (soubor ODSEBE) a třetího (soubor ODSEBE-A) případu vznikly
40
40
35
35
30
30
25
25
20
x2
x2
posunutím shluků prvního případu tak, aby bylo dosaženo znatelné změny ve struktuře.
20
15
15
10
10
5
5
0
0 0
5
10
15
20
25
0
30
5
10
15
20
25
30
x1
x1
Obr. 3.30 Data souboru USEBE
Obr. 3.31 Data souboru ODSEBE
Průměrné časy a směrodatné odchylky vypočítané vždy z deseti naměřených hodnot jsou uvedeny v tabulce 3.13. Podrobnější údaje jsou součástí tabulky v příloze 8. Průměrný čas potřebný na shlukování objektů znázorněných na obrázku 3.29 při
96
různých volbách inicializačních center je 1,4031 sekund a průměrný čas na shlukování objektů znázorněných na obrázku 3.32 je 0,7563 sekund. Nejvýraznější rozdíl nastal při volbě inicializačních center pomocí algoritmu k-průměrů++, který je podrobněji popsán v kapitole 3.3. Pro takto vytvořenou množinu inicializačních center byl výpočetní čas shlukování v případě souboru USEBE průměrně 1,1125 sekund a v případě souboru ODSEBE-A 0,3766 sekund.
60
50
x2
40
30
20
10
0 0
10
20
30
40
50
60
x1 Obr. 3.32 Data souboru ODSEBE-A Tab. 3.13 Průměrné časy filtrovacího algoritmu a jejich směrodatné odchylky při
shlukování dat ze souborů s odlišnou strukturou inicializační prvních k objektů pomocí k-průměrů++ centra soubor USEBE ODSEBE ODSEBE-A USEBE ODSEBE ODSEBE-A aritm. průměr 1,1125 0,4266 0,3766 1,4031 1,1484 0,7563 směr. odchylka 0,0381 0,0271 0,0266 0,0242 0,0504 0,0246
97
K podobným výsledkům jsem dospěla i v dalších pokusech při jinak vygenerovaných datech. Je zřejmé, že algoritmus je mnohem rychlejší v případě souborů jejichž objekty jsou přirozeně uspořádány do skupin s velkou meziskupinovou variabilitou. To vyplývá z postupu „prosévání“ center stromem, kdy vnořování do stromu je ukončeno v okamžiku, že je již jednoznačně rozhodnuto o přiřazení všech objektů asociovaných s vrcholem k nějakému centru. Algoritmus k-průměrů++ rozmisťuje inicializační centra velmi rovnoměrně mezi objekty. Je tedy pravděpodobné, že při tvorbě mrkd-stromu při dělení prostoru objektů pomocí nadrovin je množina inicializačních center také pravidelně dělena. Proto hloubka vnoření při „prosévání“ center je blízká hodnotě log 2 k , kde k je požadovaný počet shluků, a tedy i počet inicializačních center. V případě, kdy požadovaný počet shluků k je výrazně menší než počet objektů n, je vnořování ukončeno velmi brzy a čas celkového zpracování je výrazně kratší.
3 2 faktor 2
1 0 -4
-2
-1
0
2
4
-2 -3 faktor 1
Obr. 3.33 Odlehlé objekty souboru IRIS detekované algoritmem využívajícím
mrkd-stromy
Detekce odlehlých objektů K porovnání výsledků navrženého modifikovaného filtrovacího algoritmu jsem využila datový soubor IRIS popsaný v kapitole 4.1.2. Strom vzniklý pomocí základní verze filtrovacího algoritmu měl minimální hloubku sedm a maximální osm úrovní. Strom vzniklý pomocí MFA, umožňující
98
odhalení odlehlých objektů, měl minimální hloubku pět a maximální hloubku dvanáct úrovní. Objekty korespondující s listy na koncích cest délky pět, vedoucích od kořene, byly označeny jako odlehlé. Všech pět takto označených objektů je vidět na obrázku 3.33, na kterém je znázorněn výsledek faktorové analýzy provedené ve statistickém systému STATISTICA 6.0. V úvahu byly brány první dva faktory a data byla převedena do systému Excel, v němž byl vytvořen výsledný graf. Jiný způsob znázornění identifikovaných odlehlých objektů pomocí grafů „scatterplot“ je uveden v příloze 9.
3.2.6 Shrnutí V kapitole
byly
popsány
dvě verze
algoritmu
k-průměrů
využívající
mrkd-stromy. Varianta využívající dělení na úrovni průměrů (algoritmus MFA) byla vlastní modifikací původní verze využívající dělení na úrovni mediánu. Experimenty naznačily, že časová náročnost obou variant algoritmu založeného na mrkd-stromech roste lineárně s počtem objektů i s počtem dimenzí. Všechny experimenty však byly prováděny pouze s daty, jež se vešly do operační paměti. Ukázalo se, že rychlost je tím větší, čím jsou shluky oddělenější. Výhodným z hlediska rychlosti zpracování se ukázal výběr inicializačních center pomocí algoritmu k-průměrů++ (popis algoritmu viz kapitola .3).
Celková doba zpracování algoritmu se dělila na dva časové úseky, jednak dobu potřebnou na vytvoření mrkd-stromu a jednak dobu na vlastní shlukování. První z uvedených časových úseků tvořil podstatnou část celkové doby. Proto bych doporučovala oba tyto algoritmy využít zvlášť v případech, kdy je potřeba nad stejnými daty provádět několik pokusů shlukování. Je to například v situaci, kdy chceme ověřovat vliv prvotního rozdělení do shluků na výsledné shlukování, případně pokud chceme vybrat nejlepší z nich. Varianta využívající dělení na úrovni mediánu se jevila poněkud rychlejší. Výhodou MFA (tj. varianty využívající dělení na úrovni průměru) oproti předchozí variantě je schopnost oddělit odlehlá pozorování.
99
3.3 Algoritmus k-průměrů++ Jednou z variant, které eliminují nevhodný inicializační výběr center, je algoritmus k-průměrů++, který jeho autoři popsali ve článku [2]. Hlavním přínosem této alternativy je vytvoření speciálního inicializačního rozdělení do shluků. Prvotní centra jsou vybírána postupně s cílem co nejrovnoměrnějšího rozmístění mezi objekty. Prvním centrem je náhodně vybraný objekt ze všech datových objektů. Další centra jsou jedno po druhém vybírána ze zbývajících datových objektů. Vždy je vybrán objekt s nejvyšší hodnotou, která je vypočítána podle vztahu P(x) x
min(x , K ) 2 1 min(x , K ) 2 , 2 2 min(x, K ) x min(x, K )
(3.3)
kde x´ je zkoumaný objekt, x je libovolný objekt, min(x, K) (resp. min(x´, K)) vzdálenost objektu x (resp. x´) od jemu nejbližšího centra z množiny K doposud vybraných center. Tímto postupem vybereme zbývajících k –1 center. Po stanovení všech k center postupujeme stejně jako u základního algoritmu k-průměrů. Postup algoritmu k-průměrů++ 0. Vstup: datová matice X, počet shluků k . 1. První inicializační centrum c1 je určeno náhodným výběrem objektu z matice X. Vytvořme množinu inicializačních center K c1 , položme pocet = 1.
2. Dokud je počet center pocet menší než k 1 výpočet c pocet 1 arg max min(x´, K ) 2 , x X , 2 xX min( x, K )
kde min(x, K) (resp. min(x´, K)) je vzdálenost objektu x (resp. x´) od jemu nejbližšího centra z množiny K doposud vybraných center, K K c pocet 1 , pocet = pocet + 1.
3. Aplikace klasického algoritmu k-průměrů pro datovou matici X a množinu inicializačních center c1 , c 2 , ..., c k vypočítaných v kroku 2. 4. Výstup: přiřazení objektů matice X do k shluků.
100
3.3.1 Implementace algoritmu k-průměrů++ Program se skládá ze dvou výkonných procedur. První vytváří množinu inicializačních center a druhá rozděluje objekty do shluků. Vstupem první procedury je datová matice o n řádcích a d sloupcích, jejíž každý řádek reprezentuje jeden z n objektů o d rozměrech. Druhým vstupem je požadovaný počet inicializačních center. Výstupem je množina inicializačních center. Prvním vstupem druhé procedury je stejná datová matice jako u první procedury a druhým vstupem je množina inicializačních center vzniklá v předchozím kroku. Nejdůležitějším výstupem je množina center výsledných shluků. V průběhu experimentů jsem využívala i další pomocné výstupy, jako jsou čas zpracování, výsledná hodnota funkce Q definované vztahem (2.17), případně pro menší datové soubory, množiny objektů přidělených k jednotlivým centrům výsledného shlukování. První funkci jsem využívala také samostatně s cílem vytvoření inicializačních center potřebných jako vstup jiných algoritmů. Výsledky těchto experimentů jsou poznamenány v kapitolách týkajících se daných algoritmů.
3.3.2 Provedené experimenty Experimenty jsem prováděla na třech souborech. Jednak jsem použila speciálně vytvořeného souboru VILIKUS [65], který byl jedním ze souborů, jež autor využíval k porovnání vlastností různých shlukovacích algoritmů. Podrobné pokusy jsem prováděla na souboru na souboru IRIS a časovou náročnost jsem zkoumala na uměle generovaném souboru GENER.
Ověření funkčnosti algoritmu Základní funkčnost algoritmu jsem prověřovala na uměle vygenerovaných datech z [65] obsahujících 10 000 objektů rozdělených do dvaceti shluků. Každý objekt byl popsán dvěma kvantitativními proměnnými. Podrobný popis souboru je uveden v části 4.1.5. Soubor byl vybrán z důvodu možnosti přeledného grafického znázornění. Postupný vývoj vytváření množiny inicializačních center v souboru VILIKUS je zachycen na obrázku 3.34. Je vidět, že algoritmus rozmisťuje inicializační centra
101
rovnoměrně mezi všemi objekty. Obdobný výsledek jsem zaznamenala při opakovaných spuštěních programu, i v případech souborů dat, v nichž byly objekty uspořádány v jiném pořadí. Nezávislost výsledku na pořadí objektů vyplývá již z principu algoritmu. První centrum je vybráno náhodně ze všech objektů a následující centra jsou vybrána dle pravděpodobnosti, která je vypočítána na základě všech objektů.
1,00
0,90
0,90
0,80
0,80
0,70
0,70
0,60
0,60
x2
x2
1,00
0,50
0,50
0,40
0,40
0,30
0,30
0,20
0,20
0,10
0,10
0,00 0,00
0,10
0,20
0,30
0,40
0,50
x1
0,60
0,70
0,80
0,90
a)
0,10
0,20
0,30
0,40
0,50
x1
0,60
0,70
0,80
0,90
1,00
b) 0,90
0,80
0,80
0,70
0,70
0,60
0,60
x2
1,00
0,90
x2
1,00
0,50
0,50
0,40
0,40
0,30
0,30
0,20
0,20
0,10
0,10
0,00 0,00
c)
0,00 0,00
1,00
0,10
0,20
0,30
0,40
0,50
x1
0,60
0,70
0,80
0,90
1,00
0,00 0,00
0,10
0,20
0,30
0,40
0,50
x1
0,60
0,70
0,80
0,90
1,00
d) Obr. 3.34 Inicializační rozmístění center souboru VILIKUS
při metodě k-průměrů++ a) pro 2 shluky, b) pro 6 shluků, c) pro 10 shluků, d) pro 20 shluků
Vliv inicializace pomocí algoritmu k-průměrů++ na výsledné shlukování Výsledné rozmístění inicializačních center v souboru IRIS popsaného v kapitole 4.1.2 je znázorněno na obrázku 2.3 c). V porovnání s výsledky na obrázku 2.3 a) či 2.3 b) je zřejmé, že algoritmus k-průměrů++ rozmisťuje centra velmi dobře. Výsledné shlukování souboru IRIS pomocí algoritmu k-průměrů++ dopadlo pro zkoumaný algoritmus příznivě. Ve druhém shluku byl chybně zařazen pouze jeden objekt a ve
102
třetím shluku třináct objektů. Výsledná hodnota funkce Q byla 77,0924. Pro srovnání, při optimálním nastavení parametrů v algoritmu BIRCH k-průměrů, bylo v třetím shluku chybně zařazeno patnáct objektů a hodnota funkce Q byla 77,4107. Průměrná hodnota funkce Q pro různé množiny inicializačních center byla 78,2451, nejhorší dosažená hodnota v případě algoritmu BIRCH k-průměrů dokonce 145,3234. Tab. 3.14 Průměrné časy algoritmu k-průměrů++ a jejich směrodatné odchylky
v závislosti na počtu objektů počet objektů
2 shluky
5 shluků
10 shluků
20 shluků
aritm. průměr
směr. odch.
aritm. průměr
směr. odch.
aritm. průměr
směr. odch.
aritm. průměr
směr. odch.
10 000
0,0031
0,0062
0,0094
0,0077
0,0172
0,0046
0,0328
0,0047
20 000
0,0047
0,0072
0,0172
0,0083
0,0359
0,0073
0,0796
0,0269
50 000
0,0125
0,0063
0,0531
0,0077
0,1156
0,0077
0,2453
0,0072
80 000
0,0218
0,0075
0,0985
0,0069
0,2297
0,0072
0,5484
0,0392
100 000
0,0312
0,0004
0,1422
0,0050
0,3282
0,0098
0,7125
0,0290
150 000
0,0453
0,0048
0,2094
0,0078
0,4907
0,0280
0,9890
0,0640
200 000
0,0594
0,0062
0,2859
0,0123
0,6578
0,0290
1,4047
0,0573
400 000
0,1203
0,0072
0,5625
0,0281
1,2922
0,0289
2,7641
0,0411
600 000
0,1853
0,0233
0,8391
0,0262
1,9344
0,0281
4,1516
0,0789
800 000
0,2375
0,0118
1,1297
0,0425
2,5610
0,0300
5,5079
0,0560
1 000 000
0,2937
0,0092
1,4015
0,0762
3,2047
0,0497
6,8843
0,0710
Závislost doby zpracování na počtu objektů a požadovaném počtu shluků Náhodným výběrem objektů ze souboru GENER, který je popsán v kapitole 4.1.3, jsem tvořila datové soubory, které vždy obsahovaly předem daný počet objektů uspořádaných do předem daného počtu shluků. Pro každý počet objektů, respektive počet shluků, jsem spustila program desetkrát a poté spočítala průměrnou dobu zpracování. Jednotlivé časy jsou uvedeny v příloze 7. Průměrné časy a směrodatné odchylky jsou součástí tabulky 3.14. Vývoj průměrných časů je znázorněn na obrázcích 3.35 a 3.36. Je vidět, že průměrná
103
doba zpracování roste lineárně jak v závislosti na počtu objektů v souboru, tak na počtu požadovaných shluků.
2 shluky
8
5 shluků
10 shluků
20 shluků
čas v sekundách
7 6 5 4 3 2 1 0 0
200 000
400 000
600 000
800 000
1 000 000
počet objektů
Obr. 3.35 Srovnání průměrných časů potřebných pro běh algoritmu k-průměrů++
čas v sekundách
v závislosti na počtu objektů pro různé počty požadovaných shluků 5 000 objektů
8 7 6 5 4 3 2 1
200 000 objektů
1 000 000 objektů
0 0
5
10
15
20
počet shluků
Obr. 3.36 Srovnání průměrných časů potřebných pro běh algoritmu k-průměrů++
v závislosti na počtu požadovaných shluků pro různé počty objektů
Závislost doby zpracování na počtu dimenzí a požadovaném počtu shluků Náhodným výběrem dimenzí ze souboru GENER1 popsaného v kapitole 4.1.4, jsem vytvořila datové soubory obsahující 100 000 objektů, které byly popsány předem daným počtem proměnných (tj. měly danou dimenzi d), uspořádaných do předem daného počtu shluků.
104
Tab. 3.15 Průměrné časy algoritmu k-průměrů++ a jejich směrodatné odchylky
v závislosti na počtu dimenzí 2 shluky
5 shluků
10 shluků
20 shluků
d
aritm. průměr
směr. odch.
aritm. průměr
směr. odch.
2
0,0266 0,0072 0,1218 0,0064 0,2969 0,0261
0,6984
0,0100
4
0,0532 0,0078 0,2281 0,0240 0,5000 0,0095
1,0750
0,0231
6
0,0672 0,0073 0,3016 0,0252 0,6859 0,0298
1,4672
0,0762
10
0,1063 0,0062 0,4532 0,0098 1,0407 0,0272
2,1937
0,0480
16
0,1672 0,0098 0,6937 0,0244 1,5782 0,0972
3,2953
0,0374
24
0,2391 0,0071 1,0406 0,0613 2,2531 0,0318
4,8047
0,0591
32
0,3203 0,0077 1,3110 0,0228 2,9766 0,0352
6,3000
0,0789
44
0,4453 0,0306 1,7845 0,0407 3,9499 0,1561
8,5125
0,0482
64
0,6375 0,0250 2,5844 0,0616 5,7703 0,0603 12,2266 0,0844
směr. odch.
aritm. průměr
směr. odch.
aritm. průměr
čas v sekundách
100 0,9844 0,0185 3,9641 0,0384 8,9765 0,0784 18,6954 0,1426
2 shluky
20 18 16 14 12 10 8 6 4 2 0 0
20
5 shluků
40
10 shluků
60
20 shluků
80
100
počet dimenzí
Obr. 3.37 Srovnání průměrných časů potřebných pro běh algoritmu k-průměrů++
v závislosti na počtu dimenzí pro různé počty požadovaných shluků Na obrázcích 3.37 a 3.38 je znázorněn průměrný čas běhu zpracování v závislosti na počtu dimenzí d a požadovaném počtu shluků. Průměrné časy a směrodatné odchylky jsou uvedeny v tabulce 3.15. Podrobnější údaje jsou součástí příslušné
105
tabulky v příloze 7. Empirické údaje opět naznačují, obdobně jako v případě sledování závislosti doby zpracování na počtu objektů, že doba zpracování roste lineárně, což je opět přijatelný výsledek.
d=2
čas v sekundách
20
d=24
d=100
d=64
15 10 5 0 0
2
4
6
8
10
12
14
16
18
20
22
počet shluků
Obr. 3.38 Srovnání průměrných časů potřebných pro běh algoritmu k-průměrů++
v závislosti na počtu požadovaných shluků pro různé počty dimenzí
3.3.3 Shrnutí Byl popsán algoritmus k-průměrů++ minimalizující negativní vliv nevhodného počátečního rozdělení do shluků. Tento algoritmus v první části vytvoří množinu inicializačních center, v druhé části shlukuje objekty pomocí postupu klasického algoritmu k-průměrů. Experimenty ukázaly, že algoritmus ve své první části vytváří množinu inicializačních center, jež jsou velmi rovnoměrně rozmístěny mezi všemi objekty. Výsledky shlukování využívající množinu inicializačních center vytvořenou pomocí první fáze algoritmu k-průměrů++ patřily ve většině pokusů k těm nejkvalitnějším vzhledem k výsledné hodnotě funkce Q. Dále experimenty naznačily, že časová náročnost první části algoritmu roste lineárně v závislosti na počtu objektů i dimenzí v datovém souboru i na počtu požadovaných inicializačních center. Na základě těchto výsledků je možno říci, že je její využití vhodné i pro velmi početné datové soubory. Druhá část je klasický algoritmus k-průměrů, jehož časová náročnost roste s počtem objektů také lineárně.
106
Výhodou algoritmu je možnost zaměnit druhou část libovolnou jinou variantou algoritmu k-průměrů a docílit lepší rychlosti. Souhrnem lze říci, že časové zdržení vzniklé tvorbou speciální množiny inicializačních center se vzhledem k celkovému výsledku vyplatí. První část algoritmu doporučuji zařadit do zpracování libovolné varianty algoritmu k-průměrů vyžadující na vstupu množinu inicializačních center.
107
3.4 Dvoufázový algoritmus k-průměrů Jednou z alternativ umožňujících odhalení odlehlých objektů je dvoufázový algoritmus k-průměrů. Metodu popsali autoři v [29]. Postup v první fázi využívá modifikovaný algoritmus k-průměrů využívající heuristiku: „pokud je vkládaný objekt velmi vzdálen od všech dosavadních center shluků, je zařazen do nově vzniklého shluku“. Výsledkem první fáze je rozdělení do k shluků, kde k ≤ k≤ n, k je požadovaný počet shluků a n je počet objektů, přičemž objekty v jednom shluku jsou buď všechny odlehlé, nebo není odlehlý ani jeden. V druhé fázi algoritmus za pomoci minimální kostry odhalí odlehlé objekty a vytvoří cílové rozdělení do požadovaných k shluků.
3.4.1 Postup první fáze První fáze je obměnou algoritmu k-průměrů ovlivněnou algoritmem ISODATA, popsaného v kapitole 1.2.5. Na rozdíl od klasického algoritmu k-průměrů nevytváří předem daný počet shluků, ale konečný počet shluků se pohybuje v předem daném rozmezí. Obdobně jako v metodě ISODATA, navýšení počtu shluků pomůže zjistit potenciální odlehlé objekty. Nechť k je nastavitelný počet shluků. Na počátku položme k = k. Stejně jako v klasickém algoritmu k-průměrů vyberme (například náhodně) k objektů a vytvořme z nich množinu inicializačních center shluků K c1 , c 2 , ..., c k . Označme min(K) minimální vzdálenost mezi dvěma libovolnými centry, tj. d 2 min(K ) min clj cl j ; l , l 1, ..., k , l l . j 1
(3.4)
Dále pro každý objekt x označme min(x, K) vzdálenost objektu x od jemu nejbližšího centra z množiny K d 2 min(x, K ) min x j clj ; l 1, ..., k . j 1
(3.5)
Symbolem kmax označme maximální povolený počet vzniklých shluků. Je zřejmé, že musí platit k k max n. Hodnotu kmax volíme libovolně v daném rozsahu. Pro soubory obsahující náhodná data autoři doporučují volit hodnotu kmax blízkou hodnotě n.
108
Vlastní postup první fáze pak probíhá v následujících krocích. 0. Vstup: datová matice X, k (resp. k), kmax. 1. Výběr k inicializačních center. 2. Výpočet min(K). 3. Pro každý objekt x: a. výpočet min(x, K), b. je-li pro objekt min(x, K) > min(K), pak tento objekt bude centrem nově založeného shluku a položí se k = k+ 1, c. pokud k > kmax, pak se spojí dva nejbližší shluky do jednoho shluku a položí se k= kmax, d. objekt x přiřadit k nejbližšímu centru. 4. Pokud nebylo splněno kritérium zastavení, tj. nedošlo k (významné25) změně oproti předchozímu stavu, nebo nebylo dosaženo předem daného maximálního počtu iterací, návrat na krok 2. Jinak konec. 5. Výstup: k center spolu s rozdělením objektů matice X do k shluků.
3.4.2 Postup druhé fáze V druhé fázi algoritmus detekuje odlehlé objekty a provede výsledné rozdělení objektů do požadovaných k shluků. Všech k center vzniklých v první fázi je považováno za objekty nového shlukování. K nalezení odlehlých objektů jsou vhodné shlukovací metody, které na základě velké vzdálenosti oddělí některé objekty od ostatních. Mezi takovéto metody patří hierarchické metody, popsané v části 1.1.4, nebo například metoda založená na principu minimální kostry, viz část 1.2.2. Pro počet shluků k používaný v první fázi algoritmu platí vztah k k k max n
25
(3.6)
Významnou změnou se rozumí snížení hodnoty účelové funkce Q o hodnotu větší než předem daná konstanta. V případě dvoufázového algoritmu není vhodné z časových důvodů počítat v každém kroku hodnotu účelové funkce Q, proto se změnou stavu oproti předchozí iteraci může rozumět změna některého z center, tj posun centra z jednoho bodu Rd do jiného. Významnou změnou se rozumí posun alespoň jednoho centra alespoň v jednom směru o hodnotu větší než předem daná konstanta (buď absolutní, nebo lépe relativní).
109
Zvolíme-li hodnotu kmax blízkou celkovému počtu objektů n, může být i hodnota k srovnatelná s n. Z důvodu použitelnosti metody pro velmi velké soubory dat autoři v článku [29] nepoužili shlukování pomocí hierarchických metod, jejichž časová náročnost roste s třetí mocninou počtu objektů26, a zvolili efektivnější metodu založenou na minimální kostře (viz kapitola 1.2.2). Centra shluků vzniklá v první fázi se stanou vrcholy úplného grafu27, jehož každá hrana je ohodnocena vzdáleností daných dvou center. Vlastní postup druhé fáze probíhá v následujících krocích. 0. Vstup: k center (tj. k vrcholů úplného grafu). 1. Tvorba minimální kostry pro výše definovaný graf, vložení vzniklého stromu do lesa27 F. 2. Zrušení hrany s největším ohodnocením v rámci všech stromů obsažených v lese F a nahrazení původního stromu obsahujícího tuto hranu dvěma nově vzniklými podstromy. 3. Označení objektů z velmi malého podstromu za odlehlé (případně vyloučení z dalšího zpracování). 4. Pokud je počet stromů v lese F roven k, konec, jinak návrat na krok 2. 5. Výstup:přiřazení objektů matice X do k shluků, případně množina odlehlých objektů
3.4.3 Implementace dvoufázového algoritmu k-průměrů Vstupem algoritmu je datová matice o n řádcích a d sloupcích, jejíž každý řádek reprezentuje jeden z n objektů o d rozměrech. Druhým vstupem je množina inicializačních center pro první fázi algoritmu. Třetím vstupem je požadovaný počet cílových shluků. Není nutně potřeba, aby tento počet odpovídal počtu zadaných inicializačních center. Dalším vstupem je parametr kmax, vyjadřující maximální povolený počet shluků existujících v průběhu první fáze algoritmu. Posledním parametrem je hraniční minimální hodnota vylepšení optimalizované funkce Q, 26 27
Viz například [39]. Viz kapitola Základní pojmy z teorie grafů
110
definované předpisem (2.17). Poslední z uvedených vstupů není využit v jedné z verzí implementace, ve které je využito ukončení algoritmu po předem daném počtu iterací. Optimální počet iterací nelze bohužel dobře odhadnout, přesto je tento způsob ukončení výpočtu jednou z nabízených možností v různých oficiálních statistických systémech a je hojně využíván z důvodu větší efektivnosti výpočtu díky vypuštění výpočtu hodnoty účelové funkce Q v každé iteraci.Výpočet aktuální hodnoty účelové funkce Q a následné porovnání vylepšení je v rámci algoritmu velmi brzdící operací, kvůli které se stává algoritmus pro velký počet objektů těžko použitelný. Důležitými výstupy jsou seznam center výsledných shluků a počet objektů v jednotlivých shlucích. V průběhu ověřování byly používány i další výstupy, jako například časy v různých fázích algoritmu, minimální kostra vzniklá v druhé fázi algoritmu, objekty obsažené v jednotlivých výsledných shlucích či výsledná hodnota účelové funkce Q. Tyto výstupy však nejsou vždy potřebné a v určitých případech, například výpis obsahu jednotlivých shluků pro obzvlášť velké soubory dat, jsou naopak velmi nežádoucí. Při programování jsem narazila na problém, jenž nebyl autory v článku popsán. V průběhu první fáze může pomocí postupu popsaného v článku vzniknout i méně center vstupujících do fáze druhé, než je požadovaný počet výsledných shluků. Tato situace by byla neřešitelná. Problém jsem řešila pomocí rozdělení nejpočetnější skupiny objektů na dvě menší, a to dle vzoru klasického algoritmu na tvorbu mrkd-stromu popsaného v kapitole 3.2.2. Dělení je provedeno dle proměnné, v rámci které dosahují objekty obsažené ve skupině největšího rozpětí. Dělící hodnotou je medián této proměnné.
3.4.4 Provedené experimenty Nejdříve jsem ověřovala základní funkčnost algoritmu, poté jsem provedla podrobný průzkum vlastností. Nakonec jsem ověřovala časovou náročnost.
Experimenty ověřující základní funkčnost Základní funkčnost algoritmu jsem prověřovala na datech s velmi významně odlehlými objekty. Využila jsem data dvou základních typů popsaných v kapitole 3.2.5,
111
viz obrázky 3.14 a 3.17. V obou případech algoritmus odhalil odlehlé objekty ve velmi krátké době. To znamená, že dvoufázový algoritmus k-průměrů je vhodný pro shlukování objektů v datových souborech obsahujících odlehlé objekty.
Vliv volby parametrů na detekci odlehlých objektů Další z experimentů jsem prováděla na datovém souboru IRIS, popsaném v kapitole 4.1.2. Cílem byl detailní průzkum výsledků algoritmu s různým nastavením vstupních parametrů. Sledovala jsem množinu detekovaných objektů vzniklou při spuštění programu s různě volenými parametry kmax pro určení maximálního počtu center v první fázi a k pro požadovaný cílový počet shluků. Výsledné množiny se lišily. Vybrané případy jsou shrnuty v tabulce 3.16. Ve sloupci A jsou uvedena pořadová čísla odlehlých objektů detekovaných pomocí shluků s jediným objektem a ve sloupci B pořadová čísla objektů detekovaných pomocí shluků s dvěma objekty. Se vzrůstajícími hodnotami parametru k vzrůstal počet shluků s jedním objektem, a tím i počet detekovaných odlehlých objektů. Například pro hodnotu k = 30 algoritmus odhalil devatenáct odlehlých objektů detekovaných pomocí shluků s jediným objektem a osm odlehlých objektů detekovaných pomocí shluků s dvěma objekty. Tab. 3.16 Odlehlé objekty souboru IRIS detekované dvoufázovým
algoritmem k-průměrů k
kmax
3 3 3 6 6 10 10 10 10
10 40 70, 80, 90, 100 50 70, 80, 90, 100, 110 40 50 90, 100 130, 140, 150
Pořadí odlehlých objektů podle jejich počtu ve shlucích A – 1 objekt ve shluku B – 2 objekty 6, 42, 123 7, 48 42, 107, 132 107, 110 118, 132 107, 110 136, 119, 99, 61 107, 110 118, 132 42, 53, 107, 109, 132, 135 42, 61, 99, 107, 110, 135, 136, 119 42, 107, 109, 110, 119, 135, 136 118, 132 42, 107, 109, 110, 135, 136 118, 132
Devět nejčastěji vyskytujících se objektů je vidět na obrázku 3.39, na kterém je znázorněn
výsledek
faktorové
analýzy
provedené
ve
statistickém
systému
STATISTICA 6.0. V úvahu byly brány první dva faktory a data byla převedena do
112
systému Excel, v němž byl vytvořen výsledný graf. Jiný způsob znázornění identifikovaných odlehlých objektů pomocí grafů „scatterplot“ je uveden v příloze 9.
3 2
faktor 2
1 0 -4
-3
-2
-1
0
-1
1
2
3
4
-2 -3 faktor 1
Obr. 3.39 Odlehlé objekty souboru IRIS detekované dvoufázovým
algoritmem k-průměrů
první fáze
čas v sekundách
1200
druhá fáze
celkový čas
1000 800 600 400 200 0 0
20 000
40 000
60 000
80 000
100 000
počet objektů
Obr. 3.40 Průměrný čas průběhu dvoufázového algoritmu v závislosti na počtu objektů n pro počet dimenzí d = 2, požadovaný počet shluků k = 3, maximální počet shluků kmax = 6 a minimální hodnotě vylepšení účelové funkce Q tool = 0,1
113
Závislost doby zpracování na počtu objektů Náhodným výběrem objektů ze souboru GENER, popsaného v kapitole 4.1.3, jsem tvořila datové soubory, které vždy obsahovaly předem daný počet objektů uspořádaných do předem daného počtu objektů. Program jsem pro každý soubor spouštěla desetkrát. Z takto zaznamenaných časů jsem vypočetla průměrnou hodnotu a směrodatnou odchylku. Viz příloha 5. Na obrázku 3.40 je znázorněn vývoj průměrných časů potřebných na zpracování dvoufázového algoritmu v závislosti na počtu objektů v datovém souboru. Byla prozkoumána verze ukončující běh programu v okamžiku, kdy došlo oproti předchozí iteraci ke změně hodnoty funkce Q menší než předem daná hodnota. Z části grafu zpracování první fáze je zřejmé, že časy zpracování této fáze rostou rychleji než lineárně, což není z hlediska použití algoritmu pro shlukování obzvlášť velkých souborů
čas v sekundách
dat vhodné.
1 1 1 1
první fáze
600 400 200 000
druhá fáze
celkový čas
800 600 400 200 0 0
200 000
400 000
600 000
800 000
1 000 000
počet objektů
Obr. 3.41 Průměrný čas průběhu dvoufázového algoritmu v závislosti na počtu
objektů n pro počet dimenzí d = 2, požadovaný počet shluků k = 3, maximální počet shluků kmax = 6 a počet iteračních kroků p = 10 Na obrázku 3.41 je znázorněna závislost průměrných časů potřebných na zpracování dvoufázového algoritmu, verze ukončující běh programu po předem daném počtu iterací, na počtu objektů. Průměrné časy a směrodatné odchylky jsou uvedeny v tabulce 3.17. Podrobněji viz příloha 5. Je zřejmé, že se zpomalil nárůst času
114
zpracování v závislosti na počtu objektů v datovém souboru. Všechny sledované časy zpracování rostou víceméně lineárně, to znamená, že tato verze metody je vhodná pro použití při shlukování i velkých souborů dat. Tab. 3.17 Průměrné časy a směrodatné odchylky potřebné na zpracování dvoufázového
algoritmu počet objektů aritm. průměr směr. odchylka
100 500 0,0380 0,2190 0,0056 0,0202
počet objektů aritm. průměr směr. odchylka
50 000 100 000 20,9060 42,2540 0,3880 1,0621
1 000 0,4060 0,0135
5 000 2,1320 0,1468
10 000 4,5260 0,2619
200 000 500 000 700 000 88,8610 269,3960 364,5480 0,9123 0,6899 1,1364
20 000 8,4060 0,2930 1 000 000 539,1160 0,9164
240
čas v sekundách
200 160 120 80 40 0 0
20
40
60
80
požadovaný počet cílových shluků
Obr. 3.42 Průměrný čas průběhu dvoufázového algoritmu v závislosti na požadovaném
počtu shluků k, pro počet dimenzí d = 2, maximální počet shluků kmax = 100, počet objektů n = 10 000 a počet iteračních kroků p = 10 Experimenty naznačily, že čas zpracování nezávisí na požadovaném cílovém počtu shluků. Průběh průměrných časů dosažených pro různé hodnoty parametru k je zřejmý z obrázku 3.42. Průměrné hodnoty časů a směrodatné odchylky jsou uvedeny v tabulce 3.18. Na obrázku 3.43 je znázorněn vývoj průměrných časů (průměry a smě-
115
rodatné odchylky viz tabulka 3.19) potřebných na zpracování dvoufázového algoritmu v závislosti na maximálním povoleném počtu shluků vytvářených v průběhu první fáze. Podrobněji viz příloha 5. Zkoumaná byla verze ukončující běh programu po předem daném počtu iterací. Je zřejmé, že čas narůstá velmi rychle, mnohem rychleji než lineárně. Tab. 3.18 Průměrné časy a směrodatné odchylky potřebné na zpracování dvoufázového
algoritmu pro různé hodnoty parametru k k aritm. průměr směr. odchylka
čas v sekundách
k aritm. průměr směr. odchylka
4
6
10
15
20
25
209,9850
205,3750
207,9220 209,8280
207,9380
204,3280
0,1197
0,2515
0,2626
0,6607
1,3538
30
35
40
45
50
80
206,2340
205,3750
204,5310
206,3900
206,5780
205,4930
1,2025
1,4530
0,5281
3,0414
1,0940
1,0819
0,3937
1 600 1 400 1 200 1 000 800 600 400 200 0 0
100
200
300
400
500
maximální počet shluků
Obr. 3.43 Průměrný čas průběhu dvoufázového algoritmu v závislosti na maximálním
počtu shluků kmax pro počet dimenzí d = 2, požadovaný počet shluků k = 3, počet objektů n = 5 000 a počet iteračních kroků p = 10
116
Tab. 3.19 Průměrné časy a směrodatné odchylky potřebné na zpracování dvoufázového
algoritmu v závislosti na maximálním povoleném počtu shluků vytvářených v průběhu první fáze kmax 4 6 8 10 20 50 100 150 aritm. průměr 4,5000 6,3440 8,8430 10,7030 19,3130 48,9690 84,9060 141,3590 směr. odchylka 0,1009 0,1892 0,0659 0,2080 0,1938 0,0899 0,4179 0,2448
Autoři ve svém článku [29] doporučují pro datové soubory, v jejichž struktuře jsou objekty rozloženy poměrně rovnoměrně, položit hodnotu parametru kmax blízkou celkovému počtu objektů n. Z těchto dvou výše uvedených důvodů se ukazuje jako nevhodné použití dvoufázového algoritmu pro velké soubory dat s rovnoměrným rozložením objektů.
3.4.5 Shrnutí Byly popsány dvě verze dvoufázového algoritmu k-průměrů umožňující detekci odlehlých objektů a jejich případné vyřazení z dalšího zpracování. Tento algoritmus v první fázi vytvoří pomocí obměněného algoritmu k-průměrů množinu skupin, respektive množinu jejich center, v druhé fázi pak pomocí minimální kostry vyhledá odlehlé objekty a vytvoří požadovaný počet shluků. Experimenty naznačily, že časová náročnost první z variant algoritmu roste s počtem objektů mnohem rychleji než lineárně. Tento rychlý růst byl způsoben zpracováním v rámci první fáze. Tato, pro zpracování velkých souborů dat nevýhodná vlastnost, byla odstraněna v druhé verzi. Tato verze se liší pouze kritériem ukončení běhu první fáze algoritmu. Postup, dle návodu v článku [17], je ukončen, pokud oproti předchozímu iteračnímu kroku došlo k absolutnímu zlepšení hodnoty optimalizované funkce Q menšímu, než předem daná hodnota. Popsaný způsob ukončení jsem nahradila ukončením běhu postupu po předem daném počtu iterací. Tím odpadl výpočet hodnoty funkce Q v každém kroku a průběh nárůstu doby zpracování programu se zmírnil na lineární. Tato druhá verze je tedy použitelná i pro velké datové soubory.
117
Dále se ukázalo, že časová náročnost nezávisí na požadovaném počtu shluků. Naopak doba zpracování enormně roste s povoleným počtem center vzniklých v rámci první fáze. Jelikož autoři doporučují v případě rovnoměrně uspořádaných dat volit hodnotu tohoto parametru blízkou celkovému počtu objektů, není vhodné jeho využití pro velké soubory dat s nevýrazně strukturovanými daty.
118
4 Závěrečné srovnání alternativ metody k-průměrů V této kapitole budou shrnuty výhody a nevýhody všech alternativ metody k-průměrů popsaných v předešlých kapitolách. Dále bude provedeno srovnání
jednotlivých alternativ z různých hledisek. Pro potřeby srovnávacích a ověřovacích experimentů prováděných v rámci této práce jsem algoritmy naprogramovala ve vývojovém prostředí MATLAB. Toto prostředí není pro programování obdobných metod úplně nejvhodnější, zvlášť pokud by programy měly mít praktické a rutinní využití. V takovém případě by bylo vhodnější programovat v některém programovacím jazyku nižší úrovně, jako je například C++ či FORTRAN, ve kterých by bylo zpracování mnohem rychlejší. Cílem mé práce však bylo naprogramování zkušebních verzí. Hlavní důraz jsem kladla na funkčnost algoritmu. Programování v prostředí MATLAB se mi jevilo pro tyto účely nejefektivnější. Vlastnosti algoritmů jsem ověřovala na uměle generovaných datech různých vlastností. Ke srovnání jednotlivých postupů jsem dále využila dva soubory obsahující reálná data. Oba soubory jsou k dispozici na internetové stránce [80]. Ve své práci jsem se zaměřila na hledání možností minimalizace dopadu pouze těch negativních vlastností metody k-průměrů, které nevyplývají přímo z podstaty samotné metody. Příkladem principiální negativní vlastnosti, jíž jsem se nezabývala, je například vytváření pouze konvexních shluků či nutnost zadání požadovaného počtu shluků. Shlukování bez těchto negativních vlastností lze docílit pouze použitím některých jiných z mnoha metod shlukové analýzy. Zabývala jsem se výzkumem a srovnáním existujících alternativ k základnímu algoritmu k-průměrů a v některých případech jsem navrhla vlastní modifikaci postupu. Ve většině navržených změn se jednalo o úpravu vedoucí ke zrychlení zpracování. V některých změnách přináší mnou navržená alternativa nové, dobře využitelné vlastnosti algoritmu.
119
4.1 Popis dat 4.1.1 Soubor VOWEL Soubor VOWEL obsahuje 528 objektů popsaných pomocí 10 kvantitativních proměnných uspořádaných do 11 shluků. Charakterizuje výslovnost samohlásek v britské angličtině. Osm mluvčích (čtyři muži a čtyři ženy) přečetlo šestkrát 11 jednoslabičných slov, která se lišila výslovností samohlásky (heed, hid, head, had, hard, hud, hod, hoard, hood, who`d, heard). Každé slovo tedy bylo proneseno 48krát. V každém z uvedených
případů byl zaznamenán zvuk a převeden do deseti
numerických hodnot. Příslušný záznam je jedním objektem výsledného souboru. Shluky představují jednotlivá slova, kterých je jedenáct. Zdrojem dat byl [80]. Soubor je k dispozici na přiloženém CD, které je přílohou této práce. Popisné charakteristiky všech proměnných jsou uvedeny v tabulce 4.1. Podrobným průzkumem dat jsem zjistila, že hodnoty všech proměnných jsou rozloženy relativně rovnoměrně. Jedinou výjimkou je první proměnná, kde všechny objekty kromě jednoho nabývají záporných hodnot. Pouze u jediného objektu nabývá první proměnná kladné hodnoty. Není vyloučeno, že tato výjimka je způsobena chybou ve zdrojovém datovém souboru. Tab. 4.1 Popisné charakteristiky souboru VOWEL
Aritmetický Medián průměr X1 X2 X3 X4 X5 X6 X7 X8 X9 X10
–3,1598 +1,7353 –0,4480 +0,5250 –0,3893 +0,5850 +0,0175 +0,4174 –0,2681 –0,0846
–3,0970 +1,7330 –0,5025 +0,4565 –0,4170 +0,5275 +0,0400 +0,4770 –0,2550 –0,0825
Min.
Max.
Kvantil 5%
Kvantil 95 %
Směrodatná odchylka
–5,2110 –1,2740 –2,4870 –1,4090 –2,1270 –0,8360 –1,5370 –1,2930 –1,6130 –1,6800
1,8230 5,0740 1,4130 2,1910 1,8310 2,3270 1,4030 1,6730 1,3090 1,3960
–4,6940 –0,1100 –1,6460 –0,6900 –1,5030 –0,4120 –0,7520 –0,6020 –1,3890 –0,9350
–1,5120 +3,7490 +0,8990 +1,7710 +0,7530 +1,6860 +0,8130 +1,3460 +0,7670 +0,8650
0,9805 1,1610 0,7414 0,7694 0,7220 0,6485 0,4793 0,5956 0,6196 0,5603
Na obrázku 4.1 je znázorněn graf komponentního skóre souboru VOWEL s grafickým zvýrazněním příslušnosti jednotlivých objektů ke shlukům, tj. skupinám
120
příslušným ke stejnému slovu. Graf byl vytvořen v programu Excel s využitím výsledků metody hlavních komponent provedené v systému STATISTICA 6.0. Z obrázku je zřejmé, že shluky nejsou výrazně odděleny. Tento dojem však může být způsoben faktem, že první dva faktory popisují data jen z 50 %. 4
Shluk 1 Shluk 2
faktor 2
2
Shluk 3 Shluk 4 Shluk 5
0
Shluk 6 Shluk 7
-2
Shluk 8 Shluk 9
-4
Shluk 10 -6
-3
0
3
6
Shluk 11
faktor 1
Obr. 4.1 Rozptylový graf komponentního skóre souboru VOWEL
4.1.2 Soubor IRIS Soubor IRIS charakterizuje 150 objektů – květy z rodu iris, uspořádaných do tří shuků. Podrobný popis a zdroj dat viz [80]. Soubor je k dispozici na CD, které je přílohou této práce. Každý objekt (květ) je popsán pomocí čtyř kvantitativních proměnných, které představují jednotlivé rozměry, tj. šířku a délku kališních a korunních lístků květů. V tabulce 4.2 jsou uvedeny popisné charakteristiky všech proměnných souboru. Do souboru jsou zařazeny květy tří různých druhů z rodu iris, a to iris-setosa, iris-versicolor a iris-virginica. Soubor obsahuje 50 zástupců z každého druhu. Z průzkumové analýzy je zřejmé, že jeden z druhů se výrazněji odlišuje v popsaných atributech od zbývajících dvou. Ty se sice vzájemně také odlišují, ale ne tak výrazně, dokonce dochází k prolínání. Vše je názorně vidět na obrázku 4.2, na němž je znázorněn graf komponentního skóre souboru IRIS. Graf je vytvořen v programu Excel za využití výsledků metody hlavních komponent provedené v systému STATISTICA 6.0.
121
Data souboru IRIS jsou obsahem přílohy na přiloženém CD. V tabulce 4.2 jsou uvedeny popisné charakteristiky všech proměnných souboru. Jednotlivé grafy „scatterplot“ souboru IRIS jsou uvedeny v příloze 9. Tab. 4.2 Popisné charakteristiky souboru IRIS
Aritmetický Medián průměr X1 X2 X3 X4
5,8433 3,0540 3,7587 1,1987
5,8000 3,0000 4,3500 1,3000
Min.
Max.
Kvantil 5%
Kvantil 95 %
Směrodatná odchylka
4,3000 2,0000 1,0000 0,1000
7,9000 4,4000 6,9000 2,5000
4,6000 2,3000 1,3000 0,2000
7,3000 3,8000 6,1000 2,3000
0,8281 0,4336 1,7644 0,7632
2,0 1,5 faktor 2
1,0 Iris-setosa Iris-versicolor Iris-virginica
0,5 0,0 -0,5 -1,0 -1,5 -6,0
-4,0
-2,0
0,0
2,0
4,0
faktor 1
Obr. 4.2 Rozptylový graf komponentního skóre souboru IRIS
4.1.3 Soubor GENER Soubor GENER obsahuje milion uměle generovaných objektů rozdělených do dvaceti stejně velkých shluků. Každý objekt je popsán pomocí dvou kvantitativních proměnných. Souřadnice objektů jednotlivých shluků byly generovány jako náhodné hodnoty náležící normálnímu rozdělení daných parametrů. Parametry rozdělení v jednotlivých shlucích byly generovány opět náhodně jako hodnoty rovnoměrného rozdělení; střední hodnota náhodně z intervalu (0, 10) a rozptyl 2 z intervalu (0, 3).
122
Data souboru GENER jsou k dispozici na CD, které je přílohou této práce. V tabulce 4.3 jsou uvedeny popisné charakteristiky obou proměnných pro celý soubor, v tabulce 4.4 průměry a směrodatné odchylky těchto proměnných samostatně v rámci každého shluku. Tab. 4.3 Popisné charakteristiky souboru GENER
X1 X2
Aritmetický průměr
Medián
Min.
Max.
2,7468 1,7759
2,7686 1,5462
-7,2367 -7,8476
13,8266 14,0248
Kvantil Kvantil Směrodatná 5% 95 % odchylka -2,1220 0,4778 -3,0756 -0,3011
1,7068 1,9165
Tab. 4.4 Popisné charakteristiky jednotlivých shluků souboru GENER X1 X2
X1 X2
Shluk Arit.průměr Směr.odchylka Arit.průměr Směr.odchylka
1. 0,4 1,8 1,7 1,7
2. 2,3 1,4 0,0 0,0
3. 2,5 1,2 1,5 1,6
4. 3,1 1,8 5,0 2,0
5. 2,1 0,2 2,3 0,3
6. 1,2 0,5 1,6 1,7
7. 4,3 0,2 4,7 0,0
8. 3,0 1,5 2,4 0,9
9. 3,3 1,9 1,1 1,3
10. 2,1 1,0 2,7 1,3
Shluk Arit.průměr Směr.odchylka Arit.průměr Směr.odchylka
11. 2,3 0,4 0,5 2,0
12. 4,7 1,8 0,6 1,9
13. 2,5 0,9 0,7 0,4
14. 2,4 1,8 0,7 1,6
15. 3,8 0,2 2,7 0,0
16. 3,3 0,6 1,4 0,2
17. 4,8 0,5 4,4 0,8
18. 0,3 0,6 0,9 2,0
19. 3,7 0,2 0,1 0,3
20. 3,0 1,9 0,5 0,5
4.1.4 Soubor GENER1 Soubor GENER1 obsahuje 100 000 uměle generovaných objektů rozdělených do dvaceti stejně velkých shluků. Každý objekt je popsán pomocí sta kvantitativních proměnných. Souřadnice objektů jednotlivých shluků byly generovány jako náhodné hodnoty náležící normálnímu rozdělení daných parametrů. Parametry rozdělení v jednotlivých shlucích byly generovány opět náhodně jako hodnoty rovnoměrného rozdělení; střední hodnota náhodně z intervalu (0, 5) a rozptyl 2 z intervalu (0; 2). Data souboru GENER1 jsou k dispozici na CD, které je přílohou této práce. V tabulce 4.5 jsou uvedeny popisné charakteristiky všech proměnných souboru.
123
Tab. 4.5 Popisné charakteristiky souboru GENER1
X1 X2 X3 X4 X5 X6 X7 X8 X9 X10 X11 X12 X13 X14 X15 X16 X17 X18 X19 X20 X21 X22 X23 X24 X25 X26 X27 X28 X29 X30 X31 X32 X33 X34 X35 X36 X37 X38 X39 X40
Aritmetický průměr
Medián
Min.
Max.
Kvantil 5%
Kvantil 95 %
Směrodatná odchylka
2,2355 2,7365 3,2327 2,7260 2,6223 2,6273 2,9068 2,3944 2,3599 2,9530 2,2706 2,7475 2,6651 2,8583 2,5151 2,1205 2,3424 1,9387 2,1539 3,1982 2,5311 2,8669 2,7528 2,5343 2,7368 2,5317 2,7915 2,4550 2,1315 2,4069 2,3830 3,1110 2,3206 2,7465 2,7151 1,8970 2,9987 2,5166 2,4861 2,2694
2,2588 3,0693 3,5299 2,6939 2,5113 2,3900 2,9296 2,4456 2,3418 3,1433 1,9726 2,9532 2,6944 2,9815 2,5440 1,9987 2,3199 1,8203 1,9238 3,2504 2,3276 3,0509 2,9217 2,5694 2,8060 2,5117 2,6270 2,5905 2,0412 2,2966 2,4552 3,3792 2,1643 3,0602 2,9640 1,7698 3,1954 2,4003 2,4383 2,1752
-5,3484 -5,1288 -6,7602 -6,1811 -4,9025 -6,3810 -6,7383 -5,1248 -4,8920 -5,6218 -5,9049 -5,4837 -4,0938 -5,8623 -6,9252 -5,8591 -7,0303 -6,8616 -5,4209 -4,2069 -4,5704 -6,7661 -5,5637 -6,1767 -6,9161 -6,9047 -4,0321 -7,4858 -6,8537 -6,5093 -7,3035 -6,9309 -6,1079 -4,5693 -6,3930 -6,9213 -6,5164 -6,7082 -6,3525 -5,0896
10,4331 11,5859 10,6186 11,4071 11,3583 12,2674 12,3092 9,3178 11,0686 11,5913 12,0433 10,6108 10,0222 11,1088 11,3046 9,4142 8,9958 9,5205 11,6493 11,4323 11,5818 11,3039 11,6332 11,5617 10,5311 11,0549 11,7886 10,9543 10,4338 9,4485 11,2085 9,8277 9,4422 10,6180 12,0741 10,5016 10,0106 10,7510 10,8105 9,7282
-0,3896 -0,3566 -0,1940 -0,7204 -0,1581 -0,3533 -0,5731 -0,5369 -0,6416 -0,1116 -0,6641 -0,3392 0,2172 -0,4229 -0,1735 -0,6705 -0,6997 -0,6735 -0,6556 0,1192 -0,0937 0,0034 -0,3918 -0,5491 -0,5531 -0,7386 0,3684 -1,1186 -0,7007 -0,1940 -0,5561 -0,3244 -0,1933 0,1036 -0,7884 -0,7885 0,0349 -0,3352 -0,7296 -0,3598
5,3882 5,6804 5,6370 6,1994 5,6310 6,0501 6,1973 4,9214 5,4798 5,6760 5,4543 5,6187 5,1326 5,7187 5,5019 4,9393 5,1710 4,7797 5,5884 5,9107 5,3274 5,5018 5,5288 5,3666 5,4797 5,7171 5,4347 5,4638 5,0691 4,8776 5,2427 5,7337 5,2606 5,3163 5,7191 5,0855 5,5281 5,5828 5,3655 4,9527
1,8086 1,8206 1,7421 2,1247 1,7838 2,0618 2,0493 1,7081 1,8936 1,8478 1,8785 2,0686 1,6298 1,8617 1,7731 1,8144 2,0717 1,7349 1,8910 1,7685 1,7752 1,7196 1,9416 1,8417 1,9180 1,9985 1,5635 2,1352 1,7921 1,6121 1,8941 1,8319 1,7054 1,7021 1,9673 1,8618 1,6950 1,8938 1,8832 1,7932
124
X41 X42 X43 X44 X45 X46 X47 X48 X49 X50 X51 X52 X53 X54 X55 X56 X57 X58 X59 X60 X61 X62 X63 X64 X65 X66 X67 X68 X69 X70 X71 X72 X73 X74 X75 X76 X77 X78 X79 X80 X81 X82 X83
Aritmetický průměr
Medián
Min.
Max.
Kvantil 5%
Kvantil 95 %
Směrodatná odchylka
2,7700 2,3754 2,4697 2,7990 2,1735 2,6150 2,2318 2,6048 1,8400 2,5960 2,5412 2,3284 2,8983 2,5211 2,9620 2,5194 2,9264 2,2029 2,1857 2,6346 2,2279 2,4999 2,8019 1,8037 2,7236 2,2010 2,3580 2,6039 2,7389 2,5858 2,5210 2,1696 2,5079 2,1835 2,1727 2,4877 2,4417 2,1876 2,6786 2,4449 2,8013 1,9308 2,2051
3,0371 2,5134 2,4107 2,7489 1,9066 2,4565 1,9950 2,5381 1,6048 2,5118 2,7736 2,3276 2,8045 2,7001 2,9793 2,3630 3,2145 2,0578 2,0679 2,7813 2,1354 2,4264 2,7266 1,7075 2,8342 2,1785 2,0612 2,7561 2,6741 2,3927 2,5980 2,1202 2,4229 2,2039 1,7932 2,5015 2,2766 1,9767 2,4518 2,5024 2,9281 1,8115 2,3476
-6,2123 -5,5693 -5,1300 -5,8091 -6,9393 -6,0695 -6,0158 -6,7036 -4,4556 -5,2092 -7,5074 -6,5236 -6,8650 -4,4469 -7,4323 -6,6672 -6,6241 -6,4853 -6,5766 -5,7804 -5,0515 -4,3415 -5,4956 -6,8879 -6,2005 -7,0331 -6,2636 -6,2826 -3,5071 -6,4089 -6,5481 -7,3906 -5,3262 -6,1870 -6,5136 -5,2046 -5,2893 -6,8428 -5,5093 -5,4434 -5,8615 -7,0025 -7,4768
11,4271 10,6320 11,1240 9,3490 10,4577 9,7423 11,2593 10,9871 10,2191 11,3000 11,5647 10,7956 11,5828 11,9103 10,8915 9,7909 10,4498 8,8560 10,0540 9,1950 10,8722 11,9321 10,8775 10,0325 9,3519 9,6134 9,6871 10,0980 12,0325 10,2458 10,3151 11,2201 11,4838 10,0500 10,9755 12,2937 11,7940 10,2020 10,6451 10,9027 10,0748 10,0412 9,1207
-0,4027 -0,2887 -0,2585 0,1237 -0,5960 -0,2979 -0,7877 -0,2959 -0,6074 -0,0949 -0,7958 -0,6147 -0,0606 -0,0545 -0,0483 0,2733 -0,4698 -0,5959 -0,6939 -0,3256 -0,1129 -0,3355 0,0687 -0,8057 -0,2336 -0,5827 -0,6636 -0,7432 -0,0184 -0,3880 -0,3587 -0,4315 -0,5081 -0,5801 -0,7309 -0,2043 -0,1047 -0,6072 -0,1814 -0,5874 0,0265 -1,0847 -0,9549
5,3158 4,9821 5,3291 5,5516 5,3862 5,4914 5,3286 5,3523 4,8227 5,0982 5,8640 5,2323 5,5937 5,3940 5,6951 5,3078 5,5951 5,0863 5,1950 5,2388 4,9167 5,5456 5,7064 4,9473 5,2329 5,1676 5,4949 5,1362 5,8312 5,0474 4,8960 5,0686 5,5858 4,6185 5,8592 5,4505 5,1993 5,3452 5,6545 5,1940 5,3611 4,9770 4,8139
1,9115 1,6161 1,8335 1,7486 1,9572 1,8020 1,9583 1,7214 1,6856 1,6494 2,0089 1,7544 1,7342 1,7983 1,7342 1,5696 1,9429 1,7435 1,8467 1,6921 1,6499 1,9500 1,7648 1,7450 1,6573 1,7777 1,9727 1,9063 1,9182 1,8205 1,6390 1,8095 2,0133 1,7385 2,1284 1,8621 1,6768 1,8065 1,8420 1,8909 1,7080 1,8935 1,8202
125
X84 X85 X86 X87 X88 X89 X90 X91 X92 X93 X94 X95 X96 X97 X98 X99 X100
Aritmetický průměr
Medián
Min.
Max.
Kvantil 5%
Kvantil 95 %
Směrodatná odchylka
2,2745 2,6152 2,3235 2,4752 2,7183 2,9747 2,4241 2,8256 2,2469 2,5841 3,0096 2,2820 2,6458 2,5418 2,6745 2,1864 2,8415
2,3430 2,5706 2,5525 2,3154 2,9061 3,3831 2,2662 2,7763 2,3610 2,6410 3,1468 2,1493 2,6114 2,5132 2,7212 2,3094 2,8751
-6,0991 -4,4991 -5,8007 -5,7630 -5,7376 -6,5788 -5,2118 -6,5478 -5,4398 -5,6922 -4,4769 -6,3438 -4,4549 -3,8745 -6,7812 -6,3862 -6,0561
9,4675 11,6047 12,5533 11,0622 10,2548 10,6906 11,8403 10,2215 13,9508 8,8770 9,1259 11,3453 12,5693 9,7728 8,9354 11,5849 9,8168
-0,5776 -0,0685 -0,7209 -0,6580 -0,2896 -0,3351 -0,4950 0,1394 -0,4760 -0,3440 0,4298 -0,6498 0,0666 -0,1936 0,2694 -0,6761 0,0338
5,2497 5,4110 5,1343 6,0737 5,2474 5,7376 5,8287 5,5900 5,4933 4,9998 5,2449 5,4537 5,4815 5,2316 4,9820 5,1661 5,3106
1,9676 1,7803 1,8621 2,1321 1,6986 1,9826 1,9222 1,6981 1,8526 1,6748 1,6002 1,8477 1,6992 1,7272 1,4620 1,9394 1,5749
Tab. 4.6 Popisné charakteristiky souboru VILIKUS
X1 X2
Aritmet. průměr
Medián
Min.
Max.
Kvantil 5%
Kvantil 95 %
Směrodatná odchylka
0,52103 0,52610
0,51188 0,52276
0,01294 0,08622
0,97411 0,91789
0,08574 0,15279
0,92332 0,85479
0,21765 0,16440
Tab. 4.7 Popisné charakteristiky jednotlivých shluků souboru VILIKUS
Shluk Počet objektů Arit.průměr X1 Směr.odchylka Arit.průměr X2 Směr.odchylka
1. 529 0,47 0,03 0,44 0,03
2. 516 0,56 0,03 0,52 0,03
3. 490 0,54 0,03 0,32 0,03
4. 482 0,47 0,03 0,66 0,03
5. 488 0,86 0,03 0,39 0,03
6. 507 0,68 0,03 0,57 0,03
7. 473 0,63 0,03 0,77 0,03
8. 522 0,27 0,03 0,18 0,03
9. 532 0,33 0,03 0,36 0,03
10. 477 0,67 0,03 0,35 0,03
Shluk Arit.průměr Směr.odchylka Arit.průměr Směr.odchylka
11. 0,31 0,03 0,59 0,03
12. 0,44 0,03 0,56 0,03
13. 0,84 0,03 0,74 0,03
14. 0,76 0,03 0,49 0,03
15. 0,59 0,03 0,63 0,03
16. 0,40 0,03 0,84 0,03
17. 0,11 0,03 0,47 0,03
18. 0,36 0,03 0,70 0,03
19. 0,90 0,03 0,54 0,03
20. 0,22 0,03 0,46 0,03
X1 X2
126
4.1.5 Soubor VILIKUS Soubor VILIKUS obsahuje 10 000 uměle generovaných objektů rozdělených do dvaceti shluků. Každý objekt je popsán pomocí dvou kvantitativních proměnných. Podrobný popis a zdroj dat viz [65]. Data souboru VILIKUS jsou k dispozici na CD, které je přílohou této práce. V tabulce 4.6 jsou uvedeny popisné charakteristiky obou proměnných pro celý soubor, v tabulce 4.7 průměry a směrodatné odchylky těchto proměnných samostatně v rámci každého shluku.
4.2 Provedené experimenty Na výše uvedených datových souborech jsem provedla ověření a srovnání jednotlivých alternativ algoritmu k-průměrů. Zaměřila jsem se na sledování problematických vlastností základní metody, které jsem blíže popsala v kapitole 2.
4.2.1 Časová náročnost algoritmu Při ověřování časové náročnosti implementací jednotlivých alternativ jsem sledovala časy zpracování shlukování souborů IRIS a VOWEL. Především jsem ale zaměřila na sledování času zpracování při aplikaci programů na části datového souboru GENER obsahující rozdílné počty objektů. Jednotlivé podsoubory původního souboru jsem vytvořila náhodným výběrem objektů z každého shluku tak, aby výsledný podsoubor obsahoval předem daný počet objektů, přičemž všechny shluky byly stejně velké (z hlediska počtu objektů). Většinu algoritmů jednotlivých alternativ se mi podařilo naprogramovat tak, že následné experimenty naznačily lineární nárůst času v závislosti na počtu objektů ve zpracovávaném datovém souboru. Toto je zřejmé z obrázků 3.9, 3.10, 3.21, 3.25, 3.30 a 3.34. Některé z programů, především varianta algoritmu BIRCH, prokazovaly podstatně rychlejší nárůst času. Podstatné snížení rychlosti nárůstu časové náročnosti v závislosti na počtu objektů jsem docílila změnou kritéria zastavení výpočtu. V původních algoritmech bylo kritériem zastavení zanedbatelné zlepšení (tj. absolutní či
127
relativní zlepšení menší než předem daná konstanta) hodnoty účelové funkce Q, popsané vztahem (2.17). V tomto případě je nutno v rámci každé iterace počítat aktuální hodnotu účelové funkce Q. Při výpočtu se prochází všemi objekty. Ve „zrychlených“ variantách je využito jako kritéria zastavení dosažení zadaného počtu iterací. Nevýhodou druhého popsaného způsobu ukončení výpočtu algoritmu je určení počtu prováděných iterací. Neexistuje žádné doporučení vhodné volby. Toto by mohlo být cílem a zaměřením dalších výzkumů. Možným kompromisem by byl výpočet a srovnání zlepšení hodnoty účelové funkce Q ne v rámci každé iterace, ale například v každé desáté iteraci. Z tohoto pohledu jsou jednotlivé alternativy srovnatelné vzhledem k relativně lineárnímu nárůstu časové náročnosti v závislosti na počtu objektů. Časy zpracování jednotlivých programů jsou ovlivněny mou konkrétní implementací. Mým cílem nebyla optimalizace programů, proto je pravděpodobné, že existují rychlejší implementace jednotlivých algoritmů. Uvedené výsledky je dobré považovat jako „horní hranice“ možností algoritmů. Absolutní hodnoty časů zpracování tedy není vhodné porovnávat. Údaje v tabulkách 4.9 a 4.10 o časech zpracování datových souborů IRIS a VOWEL pomocí jednotlivých alternativ je proto nutné brát pouze jako orientační. V tabulkách jsou uvedeny průměrné hodnoty zpracování jednotlivých algoritmů pro oba sledované soubory. Průměrné hodnoty jsem vždy vypočítala z deseti naměřených hodnot (viz přílohy 1 a 2). V případech, kdy se běh zpracování skládal z několika samostatných částí, jsem zaznamenávala časy jednotlivých částí samostatně. V tabulkách jsou pak uváděny průměrné časy jednotlivých částí odděleně. Jednalo se o případ filtrovacího algoritmu, kdy se běh skládal ze dvou částí, uspořádání dat do struktury mrkd-stromu a následné vlastní shlukování. Dalším případem je filtrovací algoritmus využívající inicializačních center vzniklých pomocí algoritmu k-průměrů++. V tomto případě má běh tři samostatné části. Posledním případem je vlastní algoritmus k-průměrů++, jak je popsán v kapitole 3.2.3. I přes relativizaci výsledků je však zřejmé, že velmi výjimečné postavení mají algoritmy postavené na mrkd-stromech, viz kapitola 3.2. Toto postavení je dáno faktem, že oba popsané algoritmy využívající mrkd-stromy jsou složeny ze dvou samostatných fází. V první přípravné fázi se data uspořádají do stromové struktury a v druhé výkonné fázi se provádí vlastní shlukování. Hodnoty celkových časů zpracování nijak nevybočují oproti hodnotám časů zpracování ostatních algoritmů. Při bližším průzkumu, tj.
128
sledování časů zpracování jednotlivých fází, je však zřejmé, že čas první fáze zabírá podstatnou část z celkového času zpracování. V případě, že bychom potřebovali provádět opakované experimenty nad jedněmi konkrétními daty, je vhodné jednorázovým během první fáze data uspořádat do požadované struktury a poté již s malou časovou náročností opakovaně provádět druhou fázi algoritmu.
4.2.2 Snížení vlivu inicializačního rozdělení Vliv inicializačního rozdělení objektů do shluků jsem ověřovala na datových souborech IRIS a VOWEL. V případě algoritmu BIRCH jsem experimenty prováděla pro dvojí nastavení vstupních parametrů. Vždy jsem vybrala jedno nastavení parametrů, jehož výsledky vycházely z mých experimentů nejlépe, a druhé, jehož výsledky patřily v rámci mých experimentů k nejhorším, viz kapitola 3.1.2. Všechny programy jsem spouštěla pro oba soubory desetkrát, vždy s jinými náhodně vybranými inicializačními centry. Dále jsem spouštěla jednotlivé programy (u kterých to má smysl) s množinami inicializačních center vytvořených pomocí algoritmu k-průměrů++. V případě algoritmu BIRCH jsem algoritmus k-průměrů++ aplikovala pro vytváření množiny inicializačních center při shlukování středů vzniklých v první fázi algoritmu. Všechny tyto pokusy jsem opět prováděla pro každý program desetkrát, vždy pro jiný náhodně vybraný objekt souboru, který je v rámci algoritmu k-průměrů++ určen jako první inicializační centrum. Při jednotlivých bězích programů
jsem zaznamenávala hodnotu optimalizované funkce Q dané předpisem (2.17). Viz přílohy 1 a 2. Při sledování množin inicializačních center vytvořených pro soubor VOWEL algoritmem k-průměrů++ jsem zjistila, že se ve všech těchto množinách vyskytuje stejný objekt. Při následném shlukování pomocí libovolného z uvedených algoritmů vytvořil tento objekt samostatný shluk. Fakt, že objekt vytváří svůj vlastní shluk, je jednou z mnoha možných definic odlehlého objektu. Z tohoto důvodu jsem všechny provedené experimenty provedla i pro soubor, v němž byl tento objekt vynechán. Pro každou z výše popsaných skupin deseti hodnot funkce Q jsem vypočítala základní popisné charakteristiky, tj. aritmetický průměr, směrodatnou odchylku, minimum a maximum. Tyto hodnoty jsou uvedené v tabulkách 4.7 a 4.8.
129
Tab. 4.7 Srovnání hodnot funkce Q při shlukování souboru VOWEL pomocí vybraných
metod při různých inicializačních rozděleních Metoda Filtrovací algoritmus, k-průměrů++ bez odlehlého objektu BIRCH(200;0,1), k-průměrů++ bez odlehlého objektu BIRCH(200;0,5), náhodná inic.centra bez odl. objektu, včetně nepov. fáze k-průměrů++ bez odlehlého objektu BIRCH(200;0,1), k-průměrů++ bez odl. objektu, včetně nepov. fáze BIRCH(200;0,5), k-průměrů++ bez odl. objektu, včetně nepov. fáze BIRCH(200;0,1), náhodná inic.centra bez odlehlého objektu k-průměrů++ celý soubor BIRCH(200;0,5), náhodná inic.centra celý soubor, včetně nepovinné fáze Filtrovací algoritmus bez odlehlého objektu BIRCH(200;0,1), náhodná inic.centra bez odl. objektu, včetně nepov. fáze Filtrovací algoritmus celý soubor Filtrovací algoritmus, k-průměrů++ celý soubor BIRCH(200;0,5), náhodná inic.centra celý soubor BIRCH(200;0,5) , k-průměrů++ celý soubor, včetně nepovinné fáze BIRCH(200;0,1), náhodná inic.centra celý soubor, včetně nepovinné fáze BIRCH(200;0,1), náhodná inic.centra celý soubor BIRCH(200;0,5), k-průměrů++ bez odlehlého objektu BIRCH(200;0,1) , k-průměrů++ celý soubor, včetně nepovinné fáze BIRCH(200;0,1) , k-průměrů++ celý soubor
Aritmet. průměr
Směrodat. Minimum Maximum odchylka
0989,21
016,5685
0969,8
1 020,7
0993,33
020,4882
0970,2
1 045,6
0998,14
00,1006
0998,1
0998,3
0998,41
023,2979
0958,7
1 048,7
1 005,44
16,8667
0980,5
1 039,9
1 006,90
14,2981
0984,6
1 028,6
1 009,99
028,0979
0971,1
1 072,5
1 010,70
023,9491
0968,8
1 047,2
1 011,16
00,1200
1 011,1
1 011,4
1 012,51
039,1205
0946,8
1 110,2
1 017,82
00,0400
1 017,8
1 017,9
1 017,90
040,0447
0966,7
1 106,0
1 023,47
023,3139
0976,5
1 057,6
1 123,70
043,0559
1 053,4
1 189,2
1 029,21
15,3233
1 012,6
1 049,5
1 031,22
00,0600
1 031,2
1 031,4
1 033,20
028,0910
0997,2
1 071,2
1 037,84
014,5805
1 016,0
1 071,8
1 055,02
21,6716
1 011,0
1 088,2
1 061,00
036,1995
1 011,3
1 118,1
130
Metoda BIRCH(200;0,5) , k-průměrů++ celý soubor BIRCH(200;0,5), náhodná inic.centra bez odlehlého objektu Dvoufázový algoritmus bez odlehlého objektu Dvoufázový algoritmus celý soubor
Arit. průměr
Směrodat. odchylka
Min.
Max.
1 075,19
014,6442
1 055,1
1 097,3
1 080,92
071,2661
1 003,5
1 283,9
2 885,03
199,5450
2 486,5
3 106,4
3 418,70
197,6450
3 105,0
3 696,8
Tab. 4.8 Srovnání hodnot funkce Q při shlukování souboru IRIS pomocí vybraných
metod při různých inicializačních rozděleních Metoda
Aritmet. průměr
Směrodat. Minimum Maximum odchylka
k-průměrů++
078,94
00,0019
78,94
078,95
Filtrovací algoritmus, k-průměrů++
078,94
00,0017
78,94
078,94
078,94
00,0017
78,94
078,95
078,94
00,0020
78,94
078,95
078,94
00,0013
78,94
078,95
078,94
00,0021
78,94
078,95
BIRCH(50;0,1), k-průměrů++
079,35
00,1852
79,14
079,65
Filtrovací algoritmus
081,69
07,2756
78,94
103,45
BIRCH(50;0,1), náhodná inic.centra
086,16
20,0730
79,24
146,38
BIRCH(100;0,9), k-průměrů++
094,42
07,7617
89,34
106,28
BIRCH(100;0,9), náhodná inic.centra
129,61
47,8427
89,34
210,72
Dvoufázový algoritmus
137,93
77,5380
78,94
361,29
BIRCH(50;0,1), náhodná inic.centra včetně nepovinné fáze BIRCH(50;0,1), k-průměrů++ včetně nepovinné fáze BIRCH(100;0,9), náhodná inic.centra včetně nepovinné fáze BIRCH(100;0,9), k-průměrů++ včetně nepovinné fáze
Ze zjištěných hodnot je zřejmé, že shlukování souboru bez odlehlého objektu dosahuje lepších průměrných hodnot funkce Q. Zvlášť výrazný je tento rozdíl v případě, kdy množina inicializačních center byla vytvářena algoritmem k-průměrů++. Toto je
131
způsobeno výše uvedeným faktem existence shluku obsahujícího pouze jediný objekt. Pokud tento objekt ze souboru vyjmeme, má výsledné shlukování znatelně lepší kvalitu. Dále experimenty ukázaly, že lepší hodnoty funkce Q mají filtrovací algoritmus a algoritmus k-průměrů++. Naopak nejhorších výsledků dosáhl dvoufázový algoritmus. Směrodatné odchylky jsou znatelně menší ve všech případech, kdy jsme množinu inicializačních center vytvářeli pomocí algoritmu k-průměrů++. Z hodnot směrodatných odchylek můžeme usoudit, že výsledky shlukování jsou mnohem vyváženější v případech, kdy jsou inicializační centra rozložena mezi daty rovnoměrně, jako např. u algoritmu k-průměrů++. Je zřejmé, že cíleně rovnoměrné rozložení inicializačních center má daleko menší vliv na výsledné shlukování, než rozložení náhodné. Na výsledky je tedy možno se více spolehnout. Výraznou výjimkou byl algoritmus BIRCH s využitím přidané nepovinné fáze, při níž dochází k vylepšení shlukování dosaženého pomocí standardních fází algoritmu užitím klasické metody k-průměrů. V případě tvorby množiny inicializačních center pomocí algoritmu k-průměrů++ dosahovaly směrodatné odchylky sice velmi nízkých, nikoliv však zanedbatelných hodnot. V případě využití náhodného výběru inicializačních center dosahovaly směrodatné odchylky extrémně malých, téměř nulových hodnot. Ve většině těchto případů byla hodnota funkce Q téměř konstantní. To znamená, že se neprojevil vliv výběru inicializačních center. Z výše uvedeného možno usoudit, že data neobsahující odlehlé objekty je z hlediska kvality výsledného shlukování výhodné použít předzpracování pomocí algoritmu k-průměrů++ za účelem vytvoření optimální množiny inicializačních center. V případě existence odlehlých objektů mezi daty je potřeba tyto objekty ze shlukování vyloučit. Pak platí předchozí doporučení. Pokud ovšem není možné, například z metodických důvodů, odlehlé objekty z procesu shlukování vylučovat, pak naopak toto předzpracování není vhodné použít. Dále je možné doporučit algoritmus BIRCH s přidáním nepovinné fáze, který v rámci experimentů neprojevil závislost na volbě inicializačních center. Nutno ovšem připomenout, že přidáním nepovinné fáze velmi narůstá doba zpracování algoritmu a program se stává špatně použitelný pro velmi rozsáhlé soubory, viz kapitola 3.1.2.
132
4.2.3 Snížení vlivu odlehlých objektů Schopnost detekce odlehlých objektů jsem ověřovala na datových souborech IRIS a VOWEL. Srovnávala jsem výsledky tří algoritmů. Jedním je dvoufázový algoritmus, jehož popis je obsahem kapitoly 3.4. Druhým je algoritmus MFA (tj. mnou vytvořená modifikace filtrovacího algoritmu), která přináší změnu v první fázi postupu, tj. změnu postupu uspořádání dat do struktury mrkd-stromu, viz kapitola 3.2. Třetí zkoumanou možností detekce odlehlých objektů je mnou navržené využití algoritmu k-průměrů++ popsané v kapitole 3.3.
Postup využití algoritmu k-průměrů++ pro detekci odlehlých objektů Jak jsem již v předchozí části uvedla, v průběhu experimentů týkajících se shlukování souboru VOWEL jsem zjistila, že se v množině inicializačních center vytvořené pomocí algoritmu k-průměrů++ vždy vyskytuje jeden z objektů. Při dalším shlukování libovolnou metodou vytvořil tento objekt samostatný shluk. Fakt, že objekt vytvoří samostatný shluk, je považován za jednu z možných definic odlehlého objektu. Tento objekt byl navíc detekován jako odlehlý jak pomocí dvoufázového algoritmu, tak i pomocí metody využívající mrkd-stromy. Popsaná vlastnost je způsobena postupem, jakým jsou postupně vybírána inicializační centra v rámci algoritmu k-průměrů++. Celý postup je uveden v kapitole 3.3 a důležitý je především vztah (3.3). Prováděním mnoha pokusů s různými soubory obsahujícími odlehlý objekt jsem vysledovala, že odlehlý objekt je vždy prvkem množiny „dostatečného množství“ inicializačních center. Toto „dostatečné množství“ je tím menší, čím více je objekt odlehlý. To znamená, že velmi odlehlé objekty, které hodně narušují kvalitu výsledného shlukování se odhalí relativně rychle. K vlastní detekci odlehlého objektu stačí po vytvoření množiny inicializačních center provést dvě či tři iterace algoritmu k-průměrů. Již v průběhu těchto iterací se odlehlé objekty znatelně oddělí. Experimenty ukázaly, že výsledky dvoufázového algoritmu a algoritmu k-průměrů++ jsou závislé na nastavení vstupních parametrů programu. Výsledky
algoritmu MFA nejsou ovlivněny žádným uživatelským nastavením. Pokusy zaměřené na zkoumání chování algoritmu k-průměrů++ při detekci odlehlých objektů v souboru IRIS ukázaly, že pro hodnoty parametru k nižší než 10
133
algoritmus neodhalí žádné odlehlé objekty. Pro hodnotu k = 10 se vytvoří shluk obsahující tři objekty, který má výrazně menší počet objektů než ostatní shluky. Objekty v tomto shluku lze již označit za odlehlé. Situace je zachycena na obrázku 4.3 a). Pro hodnotu parametru k = 15 se vytvořil shluk obsahující samostatný objekt (na obrázku 4.3 b) objekt v kroužku) a dále se vytvořily shluky po dvou objektech. Při nastavení hodnoty parametru k = 20 se vytvoří tři shluky obsahující jediný objekt a dále tři shluky obsahující dva objekty. Takto detekované odlehlé objekty jsou vyznačeny na obrázcích 4.3 c) a d). Pro volbu vyšší hodnoty parametru k již vzniká velké množství malých shluků, a tím i nepřiměřeně velké množství objektů, jež jsou detekovány jako odlehlé. Jiný způsob znázornění identifikovaných odlehlých objektů pomocí grafů
3
3
2
2
1
1 faktor 2
faktor 2
„scatterplot“ je uveden v příloze 9.
0 -4
-3
-2
-1
-1
0
1
2
3
4
0 -4
-2
-1
faktor 1
3
3
2
2
1
1 faktor 2
faktor 2
b)
0 -3
-2
-1
-1
4
-3
-3 faktor 1
-4
2
-2
-2
a)
0
0
1
2
3
4
0 -4
-3
-2
-2
-1
-1
0
1
2
3
4
-2
-3
-3
faktor 1
faktor 1
c) d) Obr. 4.3 Odlehlé objekty souboru IRIS detekované pomocí algoritmu k-průměrů++, pro a) parametr k = 10, shluk obsahující tři objekty b) parametr k = 15, shluky obsahující 1 – 2 objekty c) parametr k = 20, shluky obsahující samostatné objekty d) parametr k = 20, shluky obsahující 1 – 2 objekty Experimenty zaměřené na zkoumání detekce odlehlých objektů v souboru IRIS pomocí dvoufázového algoritmu k-průměrů jsem již blíže popsala v kapitole 3.4. Výsledky jsou vidět na obrázku 4.4 a). Aplikaci algoritmu využívajícího mrkd-stromy
134
na odhalení odlehlých objektů jsem popsala v kapitole 3.2.3 a výsledky jsou znázorněny
3
3
2
2
1
1
faktor 2
faktor 2
na obrázku 4.4 b), znázornění pomocí grafů „scatterplot“ je uvedeno v příloze 9.
0 -4
-3
-2
-1
-1
0
1
2
3
4
0 -4
-3
-2
-1
-1
0
1
2
3
4
-2
-2 -3
-3
faktor 1
faktor 1
a)
b) Obr. 4.4 Odlehlé objekty souboru IRIS detekované pomocí
a) dvoufázového algoritmu b) algoritmu využívajícího mrkd-stromy
4.2.4 Validita výsledků shlukování Porovnání validity výsledného shlukování vytvořeného pomocí různých shlukovacích algoritmů jsem prováděla
na datových souborech IRIS a VOWEL.
V tabulkách příloh 3 (soubor VOWEL) a 4 (soubor IRIS) je uvedeno srovnání příslušností objektů obou zkoumaných souborů ke shlukům vytvořených jednotlivými metodami oproti shlukům faktickým. Tabulky obsahují počty objektů náležejících jednotlivým faktickým shlukům, které byly přiřazeny daným shlukům vytvořeným různými metodami. Validitu jsem ve všech případech měřila pomocí tří různých měr popsaných v kapitole 1.2.7. Kromě hodnoty funkce Q definované vztahem (2.17) jsem použila míru nesouhlasu MD definovanou vztahem (1.35) a hodnotu entropie E vypočítanou dle vztahu (1.37). Všechny spočítané hodnoty jsou uvedeny v tabulkách 4.9 a 4.10. Ve většině případů jsou všechny tři míry kvality shlukování ve vzájemném souladu. Všechny tři sledované míry kvality shlukování vyhodnotily nejhůře dvoufázový algoritmus a dále algoritmus BIRCH k-průměrů s nevhodně zvolenými parametry. V případě shlukování souboru IRIS byly všemi mírami vyhodnoceny obě testované metody využívající tvorbu množiny inicializačních center pomocí metody k-průměrů++. Při ověřování shlukování souboru VOWEL tyto dvě metody nejlépe nedopadly, byly
135
předstiženy klasickou metodou k-průměrů a filtrovacím algoritmem. Tento fakt je způsoben existencí odlehlého objektu v souboru VOWEL, což je blíže popsáno v předchozí části. Tab. 4.9 Srovnání metod při shlukování souboru VOWEL
Průměrný čas zpracování
Výsledná hodnota funkce Q
Míra nesouhlasu MD
Hodnota entropie E
3,2500
1 123,7
0,5833
1,2794
3,7660
1 100,9
0,5890
1,3331
4,1251 (0,125+4,0001)
1 022,7
0,5928
1,3277
k-průměrů (klasická)
5,5160
1 010,8
0,5739
1,2531
Dvoufázový algoritmus
6,2820
3 418,7
0,8674
2,2905
1 017,9
0,5966
1,1380
1 032,8
0,6155
1,2282
1 033,2
0,5663
1,2288
Metoda BIRCH k-průměrů (param. 200; 0,5) BIRCH k-průměrů (param.10; 0,5) k-průměrů++
Filtrovací algoritmus Mrkd stromy k-průměrů++ BIRCH k-průměrů (param. 200; 0,1)
9,359 (0,281+9,078) 9,387 (0,012+0,297+9,078) 14,34400
Výraznější nesoulad se projevil pouze při hodnocení shlukování souboru VOWEL pomocí metody filtrovacího algoritmu využívajícího tvorbu množiny inicializačních center metodou k-průměrů++. V tomto případě míra nesouhlasu MD udává kvalitu shlukování vzhledem k ostatním shlukovacím metodám mnohem horší než ostatní dvě míry kvality. Obdobně je tomu u hodnoty entropie E při shlukování pomocí klasické metody k-průměrů a metody BIRCH k-průměrů s parametry: povolený počet objektů ve shluku L = 200 a poloměr shluku R = 0,5. Při shlukování souboru IRIS došlo k výraznějšímu nesouladu v případě metody BIRCH k-průměrů s parametry: povolený počet objektů ve shluku L = 50 a poloměr shluku R = 0,1. Výsledná hodnota minimalizované funkce Q udávala horší kvalitu shlukování vzhledem k ostatním shlukovacím metodám oproti druhým dvěma mírám kvality.
136
Tab. 4.10 Srovnání metod při shlukování souboru IRIS
Průměrný čas zpracování
Výsledná hodnota funkce Q
Míra nesouhlasu MD
Hodnota entropie E
BIRCH k-průměrů (param, 50; 0,9)
0,1880
90,6007
0,1267
0,2898
k-průměrů (klasická)
0,2146
78,9451
0,1133
0,2900
0,298 (0,141+0,157)
78,9408
0,1067
0,2730
0,4060
79,3455
0,1067
0,2730
0,423 (0,016+0,063+0,344)
78,9408
0,1067
0,2730
0,0620
137,90000
0,2667
0,4121
0,0620
100,15300
0,2400
0,4132
0,625 (0,25+0,375)
79,1156
0,1067
0,2801
Metoda
k-průměrů++
BIRCH k-průměrů (param, 50; 0,1) Mrkd stromy k-průměrů++ Dvoufázový algoritmus BIRCH k-průměrů (param, 100; 0,9) Filtrovací algoritmus
137
5 Závěr Existuje velké množství variant základních metod shlukové analýzy. Neexistuje však dostatečný popis vhodnosti použití jednotlivých postupů. Stěžejní motivací zaměření mé dizertační práce byla potřeba porovnání postupů pro analýzu dat velkých datových souborů. Dílčím cílem práce bylo detailní zhodnocení jednoho z algoritmů použitelného pro velké soubory dat, a to metody k-průměrů. Hlavní důraz byl kladen na rozbor pozitivních a negativních vlastností této metody. Dále bylo cílem práce srovnání několika vybraných existujících alternativních metod k tomuto základnímu postupu a návrh jejich nových modifikací umožňujících minimalizaci negativních vlastností základního algoritmu. Součástí práce měl být detailní rozbor jednotlivých alternativ a modifikací základní metody k-průměrů, jejich programová implementace, experimentální ověření jejich funkčnosti a porovnání chování jednotlivých programů v různých situacích. Cíle práce byly splněny. V teoretické části práce byl uveden přehled vybraných metod určených pro shlukování velkého počtu objektů. Byly vybrány především metody určitým způsobem související s alternativami algoritmu k-průměrů, které jsou hodnoceny v dalších částech práce. Byl zde například uveden základní algoritmus BIRCH, na jehož základě vznikl algoritmus BIRCH k-průměrů, který je jednou z porovnávaných alternativ metody k-průměrů, algoritmy ISODATA, ISOCLUS a metoda shlukování pomocí minimální
kostry, jejichž hlavní myšlenka ovlivnila postup dvoufázového algoritmu k-průměrů a algoritmus CLARANS, využívající k zefektivnění shlukování speciální stromové struktury, jenž inspirovaly autory filtrovacího algoritmu. Dále byla uvedena detailní matematická formulace metody k-průměrů, její vazby na metody k-centroidů a k-mediánů. Poté jsem se soustředila na podrobnou analýzu problematických vlastností metody k-průměrů a návrhy jejich zmírnění. Mezi diskutované problematické vlastnosti patří především časová náročnost zpracování, vliv inicializačního rozdělení do shluků, vliv odlehlých objektů, vliv pořadí objektů a kvalita výsledného shlukování. Experimentální část práce v každé své sekci obsahuje detailní analýzu jedné z vybraných alternativ algoritmu k-průměrů. Výběr metod byl cíleně zaměřen na vytvoření nabídky řešení problémových situací základní metody k-průměrů. Jde
138
o algoritmus BIRCH k-průměrů, filtrovací algoritmus, algoritmus k-průměrů++ a dvoufázový algoritmus k-průměrů. Ve většině případů se mi podařilo připojit vlastní modifikaci, nebo alespoň upřesnění použití či návrh nového využití dané alternativy. Za nejvýznamnější považuji navrženou metodu MFA (modifikovaný filtrovací algoritmus). Dále byl uveden popis programové implementace všech uvedených alternativ a modifikací. Jednotlivé programy byly využity k experimentálnímu ověření funkčnosti algoritmů se zvláštním zaměřením na řešení zmírnění negativních vlastností metody k-průměrů.
Část uvedených algoritmů se zaměřuje na zefektivnění výpočtu. Jedná se především o algoritmy založené na stromové struktuře (např. oba filtrovací algoritmy a dvoufázový algoritmus k-průměrů) nebo algoritmus BIRCH k-průměrů, který efektivitu řeší minimalizací počtu průchodů datovým souborem (teoreticky i jediným průchodem). Další část algoritmů řeší zmírnění vlivu inicializačního rozdělení do shluků. Jedná se především o dvoufázový algoritmus k-průměrů a méně efektivní modifikaci BIRCH algoritmu k-průměrů. Jiné algoritmy (například dvoufázový algoritmus k-průměrů, MFA a všechny modifikace využívající hlavní myšlenky algoritmu k-průměrů++) se zabývají identifikací a odstraněním vlivu odlehlých objektů. Následují vzájemná experimentální srovnání dříve popsaných variant a modifikací při minimalizaci vždy jedné z negativních vlastností základního algoritmu k-průměrů. Přitom bylo využito několika různých datových souborů. Z hlediska výpočetní náročnosti se ukázaly všechny zkoumané algoritmy při použití vhodného
kritéria zastavení jako použitelné pro velké datové soubory. Toto tvrzení sice nebylo teoreticky dokázáno, což si práce nebrala jako svůj cíl, ale experimenty naznačily, že doba zpracování roste přijatelným způsobem, tj. lineárně s počtem shlukovaných objektů. Jako nejefektivnější se jevily algoritmy založené na struktuře mrkd-stromů (oba filtrovací algoritmy). Z hlediska snížení vlivu inicializačního rozdělení do shluků se ukázala dobrá modifikace BIRCH algoritmu k-průměrů (jejíž nevýhodou je menší efektivita, a tím menší vhodnost pro obzvlášť velké soubory) a všechny modifikace a varianty využívající hlavní myšlenku algoritmu k-průměrů++ (bohužel se ukázala nevhodnost použití pro soubory obsahující odlehlé objekty).
139
Identifikaci odlehlých objektů nejefektivněji provedl algoritmus MFA. Jeho
výhodou je fakt, že detekuje odlehlé objekty v rámci své standardní povinné fáze. Podobně je tomu i u dvoufázového algoritmu k-průměrů, jehož výsledek je však, na rozdíl od MFA, velmi závislý na volbě parametrů programu. Další prověřovanou možností byla detekce v rámci předzpracování pomocí modifikovaného algoritmu k-průměrů++. Tato varianta však přináší navýšení času o dobu tohoto předzpracování.
Všechny zkoumané postupy odhalily jednotně velmi odlehlé objekty. Mírně se však lišily při detekci objektů méně odlehlých. Nejvíce rozporuplné výsledky (navíc závislé na volbě vstupních parametrů) vykazoval dvoufázový algoritmus k-průměrů. Na vstupních parametrech je závislý i modifikovaný algoritmus k-průměrů++. Pro žádný z obou algoritmů projevujících závislost výsledku na vstupních parametrech neexistuje zcela jednoznačné doporučení pro volbu ideálních hodnot vstupních parametrů. Navíc, v případě dvoufázového algoritmu k-průměrů, hodnoty parametrů zaručující nejlepší výsledky přinášejí neúměrné navýšení doby zpracování. Předkládaná práce přináší potvrzení, že algoritmus k-průměrů náleží mezi metody vhodné pro shlukování velkých souborů dat v případě, že předpokládáme, že výsledné shluky jsou konvexní množiny, a známe (nebo vhodným předzpracováním zjistíme) požadovaný počet shluků. Ostatní negativní vlastnosti metody lze volbou vhodné modifikace základního algoritmu zásadně minimalizovat. V práci se podařilo vystihnout problematické vlastnosti základní metody k-průměrů, které lze určitým způsobem odstranit či alespoň zmírnit jejich dopad. Byly
splněny jedny z hlavních cílů a pro každou z těchto slabin bylo nalezeno několik možností řešení. Ve většině případů se podařilo navrhnout i vlastní modifikaci stávajících přístupů. Nejpřínosnější byly návrhy v oblasti práce se soubory obsahujícími odlehlé objekty (zvláště algoritmus MFA či modifikovaný algoritmus k-průměrů++). V neposlední řadě jsou přínosná experimentální ověření a porovnání jednotlivých postupů za pomoci mých vlastních programových implementací. Ve většině případů jednotlivé experimenty naznačily oprávněnost teoretických tvrzení. Jak jsem již uvedla dříve, programy nebyly vytvářeny s cílem běžného a pravidelného využití programů, ale byly vytvářeny pouze testovací verze. Dalším krokem by tedy měla být optimalizace programů (případně převedení algoritmů do
140
jiného vývojového prostředí vhodnějšího pro tento typ výpočtů, například jazyk C++) a vytvoření uživatelsky dobře využitelných aplikací. V průběhu práce se také objevilo několik otevřených problémů. Jedná se především o vylepšení stávajících variant, zvláště z hlediska výpočetní náročnosti zpracování a z hlediska kvality výsledného shlukování. Nadějně se jeví kombinace minimalizace počtu průchodů datovým souborem a využití různých forem stromových struktur. Pokusem o zlepšení výsledného shlukování by mohla být výměna metody v okamžiku dosažení lokálního minima a pokračování shlukování druhým způsobem obdobně, jak je například navrženo v [32]. Pokud se týká vytváření nových modifikací, jedná se především o rozšíření použitelnosti metody k-průměrů v případě přípustnosti překrývání se výsledných shluků (tzv. fuzzy shlukování) či použitelnosti metody pro shlukování i jiných než kvantitativních dat. Druhý zmíněný problém nastiňují například autoři v článku [28].
141
Základní pojmy z teorie grafů Základy teorie grafů jsou podrobněji popsány například v [9], [33], či [75]. Graf G je uspořádaná dvojice množin (V, E), kde V je konečná množina vrcholů (neboli
uzlů) a E je množina hran, tj. množina dvojic v 0 , v1 ; v0, v1 V, přičemž v1 = Φ(v0), kde Φ je zobrazení množiny V do podmnožiny V´ V . Sled z vrcholu a do vrcholu b označuje posloupnost vrcholů (v0, v1, ..., vk) grafu G, kde v0 = a, vk = b a h1 = {a, v1}, hi = {vi-1, vi} pro i = 2, 3, ..., k – 1, hk = {vk-1, b} jsou hrany
grafu. Cesta v grafu G = (V, E) je posloupnost vrcholů P (v1 , v 2 , ..., v n ) , pro kterou platí
vi , vi1 E , i 1, ..., n 1
a navíc vi v j , i j . Tj. cesta je sled, ve kterém se
žádný vrchol (a tedy ani hrana) neopakuje. Cyklus označuje uzavřený sled, tj. sled, který začíná a končí ve stejném vrcholu.
Říkáme, že graf G (V , E ) je souvislý, pokud pro každou dvojici vrcholů z V existuje cesta spojující tyto vrcholy. V opačném případě říkáme, že graf G je nesouvislý. Říkáme, že hrana e je incidentní s vrcholem v, pokud v grafu G (V , E ) platí e v, v´ .
Nechť G (V , E ) je konečný graf, vV. Položme EG(v) = {eE; ve}, VG(v) = {v´V; {v, v´}E}, dG(v) = |EG(v)|.
Číslo dG(v) nazýváme stupněm vrcholu v v grafu G. Stupněm vrcholu v tedy rozumíme počet hran incidentních s vrcholem v. Úplným grafem nazýváme graf, v němž je každá dvojice vrcholů spojena hranou.
142
Degenerovaným grafem nazýváme graf G (V , E ) , kde V je jednoprvková a E prázdná
množina (tj. graf obsahující pouze jeden vrchol). Stromem se rozumí souvislý acyklický graf. U stromů se často místo pojmu hrana
používá název větev. Tvrzení: Každý nedegenerovaný strom obsahuje alespoň dva vrcholy stupně jedna. Koncovými vrcholy, neboli listy nazýváme vrcholy stupně jedna. Vnitřním vrcholem stromu rozumíme každý z vrcholů stromu, který není listem. Kořenovým stromem rozumíme strom, jehož jeden vrchol je vybrán jako hlavní. Tento
vybraný vrchol se nazývá kořen. Les je neorientovaný graf, ve kterém jsou libovolné dva vrcholy spojeny nejvýše jednou
cestou. Ekvivalentní definice zní, že les je množina navzájem nepropojených stromů. U stromů využívaných v metodách shlukové analýzy reprezentují uzly stromu určitou množinu datových objektů. Kořen reprezentuje celý zpracovávaný soubor. Větve stromu vždy představují určité dělení množiny dat obsažených v rodičovském uzlu do několika podmnožin dat reprezentovaných uzly – potomky. Listy jsou v tomto případě vrcholy, které nemají žádné potomky. Podgraf vznikne zrušením některých vrcholů původního grafu, všech hran do těchto
vrcholů zasahujících a případně některých dalších hran. Přesněji graf G´ nazveme V (G´) . podgrafem grafu G, jestliže V (G´) V (G ) a E (G´) V (G ) 2 Hloubka vrcholu je definována jako délka cesty od kořene k vrcholu. Délka cesty je rovna počtu hran, které cesta obsahuje.
143
Výška, respektive hloubka, stromu je rovna hodnotě maximální hloubky vrcholu. Vybalancovaný, neboli vyvážený strom je takový strom, který má vrcholy rovnoměrně
rozložené, tedy má pro daný počet vrcholů nejmenší možnou výšku. Hranově ohodnocený graf se nazývá graf G (V , E ) společně s , kde je reálná
funkce definovaná na E, přiřazující každé hraně nějakou reálnou hodnotu. Kostrou grafu G nazýváme strom T (V ´, E´) , který je takovým podgrafem grafu G,
že V = V´ a E´ E. Mějme hranově ohodnocený graf G (V , E ) , kde V značí množinu vrcholů grafu a E označuje množinu hran grafu, s funkcí ohodnocení w : E R . Minimální kostrou T (V , E (T )) grafu G nazveme takovou kostru, pro kterou platí
eE ( S )
w(e) min w(e); S je kostra grafu G .
eE (T )
Hodnotě w(e) říkáme váha (resp. cena) hrany e.
B-strom řádu n [3] je takový strom, který splňuje tyto vlastnosti:
Kořen má nejvýše n potomků.
Všechny listy jsou na stejné úrovni (ve stejné hloubce).
Všechny uzly kromě kořene mají minimálně
Každý vrchol reprezentuje množinu klíčů (dat, objektů), jejichž počet je o jednu
n a maximálně n a potomků. 2
menší, než počet potomků.
Data (klíče) v uzlu jsou organizována vzestupně.
Každý klíč je asociován s potomkem, který je kořenem podstromu, jenž obsahuje klíče, jež jsou menší nebo rovny, než tento klíč, ale větší než klíč předchozí.
144
Příklad B-stromu je znázorněn na obrázku A.1.
3
1
2
4
6
8
7
29
9
15
26
30
35
40
43
Obr. A.1 Příklad B-stromu řádu 5
R-strom
[24]
představuje
jednoduchou
modifikaci
B-stromů,
kde
záznamy
v listových vrcholech stromu obsahují ukazatele k datovým objektům reprezentujícím prostorové objekty. Na rozdíl od B-stromu není striktně dodrženo pravidlo o polovičním naplnění vrcholů v nejhorším případě. R-strom řádu (m1, m) je m-ární strom, v němž minimální počet následníků libovolného vnitřního vrcholu je m1. R-strom řádu (m1, m) je tedy m-ární strom, který má následující vlastností.
Kořen, není-li listem, má nejméně dva bezprostřední následníky.
Každý vnitřní vrchol má n bezprostředních následníků, n m1 , m .
Každý listový vrchol obsahuje n indexových záznamů n m1 , m .
Všechny cesty v R-stromu jsou stejně dlouhé.
Každý vrchol R-stromu je multidimenzionálním pravoúhelníkem, jenž obsahuje všechny multidimenzionální pravoúhelníky obsažené v vrcholech – potomcích. Jednotlivé pravoúhelníky se mohou překrývat. Příklad R-stromu je znázorněn na obrázcích A.2 a A.3. R*-stromy [49] jsou datové struktury využívané k indexování28 prostorových informací. 28
Indexováním se nazývá proces vytvoření a využívání indexu v databázi. Index (nebo také klíč, angl.
Key) je databázová konstrukce, sloužící ke zrychlení vyhledávacích a dotazovacích procesů v databázi, definování unikátní hodnoty sloupce tabulky. Index je obvykle definován výběrem tabulky a jednoho
145
Jsou obdobou R-stromů, hlavním rozdílem je řešení situace, kdy při vkládání nového objektu „přetéká“ nějaký vrchol. V R-stromech je tento problém řešen štěpením uzlu, v R*-stromech vyjmutím a opětovným vložením některých objektů tohoto uzlu. Satisfakcí za menší efektivitu je stabilnější struktura, která je méně závislá na pořadí, v jakém jsou objekty vkládány.
Obr. A.2 Struktura tvorby R-stromu
Obr. A.3 Příklad R-stromu
konkrétního sloupce (nebo více sloupců), nad kterými si analytik databáze přeje dotazování urychlit.
146
Literatura [1] Angiulli, F., Pizzuti, C.: Outlier Mining in Large High-Dimensional Data Sets. IEEE Transactions on Knowledge and Data Engineering, 17(2), 2005, s. 203 – 215 [2] Arthur D., Vassilvitskii, S.: k -means++ The Advantages of Care-ful Seeding. Symposium on Discrete Algorithms ( SODA), New Orleans, Louisiana , 2007 s. 1027–1035. [3] Bayer, R., McCreight, E. M.: Organization and Maintenance of Large Ordered Indices. Acta Informatica, 1972, 1, s. 173 – 189. [4] Ben-Gal, I.: Outlier detection. Maimon O. and Rockach L. (Eds.) Data Mining and Knowledge Discovery Handbook: A Complete Guide for Practitioners and Researchers, Kluwer Academic Publishers, 2005, s. 1 – 16. [5] Bentley, J. L.: Multidimensional Binary Search Trees Used for Associative Searching. Comm. ACM , 18 , 1975, s. 509–517. [6]
Berka, P.: Dobývání znalostí z databází . Academia, Praha, 2003, 366 s.
[7] Bilge, A.H.: Clustering and Classification: Overview with Applications to Ionospheric Data. 11th Statistical Physics Days, Istanbul Technical University, Istanbul, Turkey, June 24-25, 2004. [8] Bilge, A.H., Mizrahi, E., Tulunay, Y.: Classification of the monthly medians of the ionospheric critical frequency fo F2 using clustering technique. COST 271 workshop, Spetses, Greece, 2003. [9]
Demel, J.: Grafy a jejich aplikace. Academia, Praha, 2002, 257 s.
[10] Dempster, A. P., Laird, N. M., Rubin, D. B.: Maximum Likelihood from incomplete data via the EM algorithm. Journal of the Royal Statistical Society - Series B(Methodological), 39, 1977, s. 1 – 38. [11] Doucet, A., de Freitas, N., Gordon, N.: Sequential Monte Carlo in Practice. Springer-Verlag, New York, 2001, 580 s. [12] Duan, L., Xu, L., Liu, Y., Lee, J.: Cluster-based outlier detection. Annals of Operations Research , 168 (1), April 2009,s. 151–168. [13] Ester, M., Kriegel, H-P., Xu, X..: A database Interface for Clustering in Large Spatial Databases. Proc. of 1st Int‘1 Conf. on Knowledge Discovery and Data Mining , 1995. [14] Everit, B.S., Landau, S., Leese, M.: Cluster Analysis. 4.vydání, Hodder Arnold, London, 2001, 256 s. [15] Faber, V.: Clustering and the Continuous k -Means Algorithm. Los Alamos Science , 22, 1994, s. 138–144. [16] Fayyad, U., Piatetsky-Shapiro, G., Smyth, P.: From data mining to knowledge discovery in databases. Artificial Intelligence Magazine, 17(3), 1996, s. 37–54.
147
[17] Fayyad, U., Piatetsky-Shapiro, G., Smyth, P.: The KDD process for extracting useful knowledge from volumes of data. Communications of the ACM , 39 (11), Nov. 1996, s. 27–34. [18] Forgy, E.: Cluster analysis of multivariate data: Efficiency vs. interpretability of classification. Biometrics, 21(3), 1965, s. 768 – 769. [19] Frank, I. E., Todeschini, R.: The data analysis handbook. Elsevier Science Ltd, Amsterdam, 1994, 365 s. [20] Frawley, W., Piatetsky-Shapiro, G., Matheus, C.: Knowledge Discovery in Databases. An Overview. Artificial Intelligence Magazine , Fall 1992, s. 213–228. [21] Goswami, A., Ruoming J., Agrawal,G.: Fast and exact out-of-core k -means clustering Data Mining. Knowledge and Information Systems, 10(1), 2006, s 17–40. [22] Graham, R., Hell, P.: On the history of minimum spanning tree problem. Annals of History of Computing , 7 , 1985. [23] Grygorash, O., Zhou, Y., Jorgensen, Z.: Minimum Spanning Tree Based Clustering Algorithms. 18th IEEE International Conference on Tools with Artificial Intelligence, ICTAI, Nov. 2006, s. 73–81. [24] Guttman, A., Stonebraker, M.: R-Trees: A Dynamic Index Structure for Spatial Searching. EECS Department University of California, Berkeley, Technical Repor t No. UCB/ERL M83/64, 1983. [25] Hartigan, J. A., Wong, M. A.: A k -means Clustering Algorithm. Applied Statistics , 28 (1), 1979, 100–108. [26] Hebák, P., Hustopecký, J., Pecáková, I.,Průša, M., Řezanková H., Svobodová, A., Vlach, P.: Vícerozměrné statistické metody (3). Praha, Informatorium, 2005, 196 s. [27] Hinneburg, A., Keim, D. A.: An Efficient Approach to Clustering in Large Multimedia Databases with Noise. Proceedings of the 4th ACM SIGKDD International Conference on Knowledge Discovery and Data Mining, AAAI Press, 1998, s. 58 – 65. [28] Huang, Z.: Extension to the k-Means Algorithm for Clustering Large Data Sets with Categorical Values. Data Mining and Knowledge Discovery , 2, 1998, s. 283–304. [29] Jiang, M. F., Tseng, S. S., Su, C. M.: Two-phase Clustering Process for Outliers Detection. Pattern Recognition Letters , 22(6-7), 2001, s. 691–700. [30] Kanungo, T., Mount, D. M., Netanyahu, N. S., Piatko, Ch., Silverman, R., Wu, A. Y.: The Analysis of a Simple k -means Clustering Algorithm. Proceedings of the sixteenth annual symposium on Computational geometry. Hong Kong 2000, s. 100–109. [31] Kanungo, T., Mount, D. M., Netanyahu, N. S., Piatko, CH. D., Silverman, R., WU, A. Y.: An Efficient k -Means Clustering Algorithm. Analysis and
148
Implementation. IEEE Transactions on pattern analysis and machina inteligence , 24 (7), 2002.
[32] Kogan, J.: Introduction to Clustering Large and High-Dimensional data . New York, Cambridge University Press, 2007, 205 s. [33] Kolář, J., Štěpánková, O., Chytil, M.: Logika, algebry a grafy, SNTL, Praha, 1989, 440 s. [34] Kruskal, T.: On the Shortest Spanning Subtree of a Graph and the Travelling Salesman Problem. Proc. of the American Mathematical Society, 1957, s. 48–50. [35] Lee, G., Morrison, A.M., O'Leary, J.T.: The Economic Value Portfolio Matrix: A Target Market Selection Tool for Destination Marketing Organizations. Tourism Management, 27 (4), 2006, s. 576 – 588. [36] MacQueen, J. B.: Some Methods for Classification and Analysis of Multivariate Observations. Proceedings of 5-th Berkeley Symposium on Mathematical Statistics and Probability, Berkeley, University of California Press, 1967, s. 281 – 297. [37] Meloun, M., Militký, J., Hill, M.: Počítačová analýza vícerozměrných dat v příkladech . Academia Praha 2005, 436 s. [38] Meloun, M., Militký: Kompendium statistického zpracování dat. Academia Academia Praha 2002, 766 s. [39] Mercer, D. P.: Clustering large datasets. Linacre College , October 2003 www.stats.ox.ac.uk/~mercer/documents/Transfer.pdf [40] Memarsadeghi, N., Mount, D. M., Netanyahu, N. S., Le Moigne, J., A.: Fast Implementation of the ISODATA Clustering Algorithm. International Journal of Computational Geometry and Applications, 17, 2007, s. 71–103. [41] Moore, A.: Very Fast EM-based Mixture Model Clustering using Multiresolution kd-trees. Advances in Neural Information Processing Systems , 1999, s. 543–549. [42] Ordonez, C.: Data Mining - Integrating K -means Clustering with a Relational DBMS Using SQL, IEEE Transaction on Knowledge and data engineering , 18 (2), 2006, s. 188–201. [43] Ordonez, C.: Clustering Binary Data Streams with K-means. Data Mining and Knowledge Discovery , Proceedings of the 8th ACM SIGMOD workshop on Research issues in data mining and knowledge discovery, June 13, 2003, San Diego, s. 12–19. [44] Ordonez, C.: K-means Clustering Using Structured Query Language NCR, Corporation, 07359913, Cl. Statements and Sufficient Statistics. 707-102, 2008. [45] Ordonez, C.:, Programming the K -means Clustering Algorithm in SQL. KDD'04 , August 22-25, Seattle, Washington, 2004, s. 823–828. [46] Ordonez, C., Omiecinski, E.: Efficient disk-based K-means Clustering for Relational Databases. IEEE TKDE , to appear, 2004.
149
[47] Pelleg, D., Moore, A.: Accelerating Exact k-means Algorithms with Geometric Reasoning. Proc ACM SIGKDD Int’l Conf. Knowledge Discovery and Data Mining , Aug. 1999, s. 277–281. [48] Peřina, M.: Aplikace shlukové analýzy v modelech životního pojištění. Diplomová práce, VŠE Praha, 2008, 67 s. [49] Pokorný, J.: Prostorové datové struktury a jejich použití k indexaci prostorových objektů. GIS Ostrava 2000 , Editor J. Růžička, Inst. Ekonomiky a systémů řízení Ostrava, s. 146–160. [50] Punj, G., Stewart, D. W.: Cluster Analysis in Marketing Research: Review and Suggestions for Application. Journal of Marketing Research, 20(2), 1983, s. 134 – 148, http://www.jstor.org/stable/3151680. [51] Qian,W. N., Zhou, A. Y.: Analyzing Popular Clustering Algorithms from Different Viewpoints. Journal of Software , 13 (8), 2002, s. 1382–1394. [52] Rhouma, M., Frigui, H.: Self-organization of pulse-coupled oscillators with application to clustering. IEEE Transactions on Pattern Analysis and Machine Intelligence, 23(2), 2001, s. 180 – 195. [52] Rud, O. P.: Data mining – Praktický průvodce dolováním dat pro efektivní prodej, cílený marketing a podporu zákazníků (CRM). Praha: Computer Press, 2001, 329 s. [53] Rüger, S. M., Gauch, S. E.: Feature Reduction for Document Clustering and Classification, 2000, http://kmi.open.ac.uk/publications/pdf/kmi-00-14.pdf [54] Řezanková, H., Húsek, D.: Klasifikace v programových systémech pro analýzu dat, ROBUST’2000, Praha, 2001, s. 257–266. [55] Řezanková, H.: Shlukování a velké soubory dat. KUPKA, Karel (ed.) Analýza dat 2004/II . Pardubice : TriloByte Statistical Software, 2005, s. 7–19. [56] Řezanková, H., Húsek, D., Snášel, V.: Shluková analýza dat . Professional Publishing, Praha 2007, 196 s. [57] Řezanková, H., Húsek, D., Determination of The Number of Clusters and Idenrification of Outlines in Statistical Software Packages. Mezinárodní statisticko-ekonomické dny na VŠE [CD-ROM]. Praha, 2007, s. 1–6. [58] Řezanková, H.: Hodnocení kvality shluků. KUPKA, Karel (ed.). Analýza dat 2008/II. Pardubice : TriloByte Statistical Software, 2009, s. 19–40. [59] Řezanková, H., Húsek, D.: Zjišťování optimálního počtu shluků ve statistických programových systémech. Robust 2008 . Liberec, 2008, s. 42–43. [60] Salzberg, S., Murthy, S. K.: Clustering Astronomical Objects Using Minimum Spanning Trees. Technical report, Dept. of Computer Science, Johns Hopkins University, July 1992. [61] Snášel, V., Moravec, P., Húsek, D., Frolov, A., Řezanková, H., Polyakov, P.: Pattern Discovery for High-Dimensional Binary Datasets. Neural Information Processing, 2008, s. 861 – 872.
150
[62] Suresh, L., Simha, J. B.: Efficiency Analysis of Efficient SQL based Clustering Algorithm. International Journal of Computer Science and Network Security, 8(11), 2008, s. 293–298. [63] Suresh, L., Simha, J. B.: Novel and Efficient Clustering Algorithm Using Structured Query Language. International Conference on Computing Communication and Networking (ICCCN), 2008. [64] Venkateswarlu, N. B., Raju, P. S. V. S. K.: Fast ISODATA Clustering Algorithms. Pattern Recognition , 25(3), 1992, s. 335–342. [65] Vilikus, O.: Shlukovací metody pro velké soubory dat. Diplomová práce, VŠE Praha, 2007, 110 s. [66] Walfish, S.: A Review of Statistical Outlier Methods. Pharmaceutical Technology, Nov 2, 2006, s. 1 – 5. [67] Wang, W., Yang, J., Muntz, R.: STING: A statistical information grid approach to spatial data mining. Proceedings of the 23rd International Conference on Very large Data Bases, Morgan Kaufman Publishers, Athens, 1997, s. 186 – 195. [68] Zahn, C.: Graph-theoretical methods for detecting and describing gestalt clusters. IEEE Transactions On Computers C20, 1971, s. 68–86. [69] Zhang, T., Ramakrishnan, R., Livny, M.: BIRCH: An Efficient Data Clustering Method for Very Large Databases. ACM SIGMOD Record, 25(2), 1996, s. 103–114. [70] Zhang, T., Ramakrishnan, R., Livny, M.: BIRCH: A New Data Clustering Algorithms and Its Applications. Journal of Data Mining and Knowledge Discovery , 1 (2), 1997, s. 141-182. [71] Žambochová, M.: Užití stromů v analýze dat. Forum statisticum Slovacum 2/2005, Bratislava, 2005, s. 163–167. [72] Žambochová, M.: Použití stromů ve statistice. Ekonomika, regiony a jejich výhledy , Ústí nad Labem 2006, s. 114–120. [73] Žambochová, M.: Rozhodovací stromy a mrkd-stromy v analýze dat. Sborník prací účastníků vědeckého semináře doktorského studia FIS VŠE, Praha, 2006, s. 196–202. [74] Žambochová, M.: Shlukování ve velkých souborech dat. Forum statisticum Slovacum 5/2006, Bratislava, 2006, 168–174. [75] Žambochová, M.: Teorie grafů v příkladech. Skripta FSE UJEP, Ústí nad Labem, 2008, 102 s. [76] Žambochová, M.: Algoritmus BIRCH a jeho varianty pro shlukování velkých souborů dat. Mezinárodní statisticko-ekonomické dny na VŠE [CDROM]. Praha, 2008, s. 1–6. [77] Žambochová, M.: Odlehlé objekty a shlukovací algoritmy. Mezinárodní statisticko-ekonomické dny na VŠE [CD-ROM]. Praha, 2009, s. 1–6.
151
[78] Žambochová, M.: Shlukování velkých souborů dat pomocí metod rozkladu. Robust 2008 . Liberec, 2008, s. 533–539. [79] Žambochová, M.: Inicializační rozdělení do shluků a jeho vliv na konečné shlukování v metodách k-průměrů, Sborník prací účastníků vědeckého semináře doktorského studia FIS VŠE, Praha, 2009, s. 243–250. [80] http://archive.ics.uci.edu/ml/datasets/ [81] http://xin.cz3.nus.edu.sg/group/personal/cx/modules/DM/birch.ppt#36 [82] http://www.cs.uic.edu/~dyu/birch.ppt [83] http://www1.uni-hamburg.de/RRZ/Software/SPSS/Algorith.120/ twostep_cluster.pdf [84] http://csie.org/~dm/clustering.1.1107.ppt#1 [85] http://sorry.vse.cz/~berka/docs/izi456/kap_3.pdf [86] http://gerstner.felk.cvut.cz/biolab/X33BMI/slides/KMeans.pdf [87] http://cs.wikipedia.org [88] http://en.wikipedia.org [89] http://www.mathworks.com/access/helpdesk/help/techdoc/ref/
152
Přílohy: Výsledky experimentálních zpracování Příloha 1: Měření hodnoty optimalizované funkce Q při shlukování souboru IRIS pomocí různých metod
BIRCH (50;0,1)
BIRCH (50;0,1)
BIRCH (100;0,9)
BIRCH (100;0,9)
povinné fáze povinné fáze povinné fáze povinné fáze k-průměrů++ dvoufázový
náhod.inic. inic. centra náhod.inic. inic. centra k-průměrů++ k-průměrů++ centra centra 1. 79,47 79,47 89,34 89,34 2. 79,47 79,47 89,34 89,34 3. 79,24 79,14 181,46 89,34 4. 79,47 79,65 210,72 106,28 5. 79,24 79,14 106,28 106,28 6. 79,24 79,47 210,72 89,34 7. 79,95 79,14 106,28 89,34 8. 79,24 79,47 89,34 106,28 9. 146,38 79,47 106,28 89,34 10. 79,95 79,14 106,28 89,34 86,16 79,35 129,61 94,42 průměr 20,07 0,19 47,84 7,76 s.odch. min. 79,24 79,14 89,34 89,34 max. 146,38 79,65 210,72 106,28
78,95 78,94 78,94 78,95 78,94 78,94 78,94 78,95 78,94 78,94 78,94 0,00 78,94 78,95
153,47 109,66 109,66 361,29 151,43 101,73 109,66 101,73 101,73 78,94 137,93 77,54 78,94 361,29
BIRCH BIRCH BIRCH BIRCH filtrovací filtrovací (50;0,1) (100;0,9) (100;0,9) (50;0,1) náhod.inic. inic. centra všechny fáze všechny fáze všechny fáze všechny fáze k-průměrů++ náhod.inic. inic. centra náhod.inic. inic. centra centra k-průměrů++ k-průměrů++ centra centra 1. 78,95 78,94 78,95 78,94 78,95 78,94 2. 79,12 78,94 78,95 78,94 78,95 78,95 3. 78,95 78,95 78,95 78,94 78,95 78,94 4. 78,94 78,94 78,95 78,95 78,95 78,94 5. 78,94 78,94 78,95 78,94 78,94 78,95 6. 80,32 78,94 78,94 78,95 78,95 78,94 7. 103,45 78,94 78,95 78,94 78,95 78,95 8. 80,32 78,95 78,94 78,94 78,95 78,95 9. 78,95 78,94 78,95 78,95 78,95 78,94 10. 78,94 78,94 78,95 78,94 78,95 78,94 průměr 81,69 78,94 78,94 78,94 78,94 78,94 s.odch. 7,2756 0,0017 0,0017 0,0020 0,0013 0,0021 min. 78,94 78,94 78,94 78,94 78,94 78,94 max. 103,45 78,95 78,95 78,95 78,95 78,95
153
Příloha 2: Měření hodnoty optimalizované funkce Q při shlukování souboru VOWEL pomocí různých metod
Soubor bez odlehlého objektu BIRCH (200;0,5)
BIRCH (200;0,5)
filtrovací
povinné fáze povinné fáze k-průměrů++ dvoufázový náhod.inic.
1. 2. 3. 4. 5. 6. 7. 8. 9. 10. průměr s.odch.
min. max.
náhod.inic. inic. centra k-průměrů++ centra 1056,60 1024,20 1042,80 1042,00 1087,20 1016,00 1067,50 1040,90 1283,90 1046,60 1084,60 1071,80 1003,50 1030,70 1069,00 1038,10 1061,20 1042,00 1052,90 1026,10 1080,92 1037,84 71,27 14,58 1003,50 1016,00 1283,90 1071,80 BIRCH (200;0,1) povinné fáze
1. 2. 3. 4. 5. 6. 7. 8. 9. 10. průměr s.odch.
min. max.
BIRCH (200;0,1)
centra 1017,80 975,45 1005,40 983,72 985,37 968,74 1013,80 1006,30 1048,70 978,88 998,42 23,30 968,74 1048,70 BIRCH (200;0,5)
2872,80 3059,10 2486,50 2965,30 3102,50 2634,90 2865,30 3025,60 3106,40 2731,90 2885,03 199,54 2486,50 3106,40 BIRCH (200;0,5)
1110,20 1026,70 1006,30 946,80 993,10 1001,70 988,60 1021,80 1019,40 1010,50 1012,51 39,12 946,80 1110,20 BIRCH (200;0,1)
povinné fáze všechny fáze všechny fáze všechny fáze
filtrovací inic. centra k-průměrů++ 985,01 1016,80 987,64 976,93 981,08 1020,70 969,80 987,30 995,80 971,00 989,21 16,57 969,80 1020,70 BIRCH (200;0,1) všechny fáze
inic. centra náhod.inic. inic. centra náhod.inic. inic. centra náhod.inic. k-průměrů++ k-průměrů++ centra centra k-průměrů++ centra 977,96 977,10 998,09 1007,60 1017,80 993,51 1018,20 1045,60 998,09 984,63 1017,80 1008,90 1072,50 996,67 998,09 1016,10 1017,80 1006,10 1032,30 990,92 998,09 1000,10 1017,80 1039,90 984,95 980,12 998,34 1018,20 1017,90 980,54 971,07 970,18 998,09 1000,50 1017,80 981,57 998,94 994,29 998,09 1028,60 1017,80 1012,60 1008,00 979,61 998,09 998,84 1017,80 999,25 1017,70 1009,70 998,09 1026,10 1017,90 1015,50 1018,30 989,12 998,34 988,35 1017,80 1016,50 1009,99 993,33 998,14 1006,90 1017,82 1005,44 28,10 20,49 0,10 14,30 0,04 16,87 971,07 970,18 998,09 984,63 1017,80 980,54 1072,50 1045,60 998,34 1028,60 1017,90 1039,90
154
Celý soubor BIRCH (200;0,5)
BIRCH (200;0,5)
filtrovací
povinné fáze povinné fáze k-průměrů++ dvoufázový náhod.inic.
1. 2. 3. 4. 5. 6. 7. 8. 9. 10. průměr s.odch.
min. max.
náhod.inic. inic. centra k-průměrů++ centra 1084,70 1055,70 1170,40 1080,90 1093,80 1092,00 1163,10 1075,60 1053,40 1080,60 1096,50 1057,20 1157,00 1097,30 1189,20 1069,30 1090,60 1088,20 1138,30 1055,10 1123,70 1075,19 43,06 14,64 1053,40 1055,10 1189,20 1097,30
BIRCH (200;0,1) povinné fáze
1. 2. 3. 4. 5. 6. 7. 8. 9. 10. průměr s.odch.
min. max.
BIRCH (200;0,1) povinné fáze
centra 1003,90 1047,20 1031,30 958,80 1012,60 1020,00 984,10 1028,90 1017,50 1002,70 1010,70 23,95 958,80 1047,20
BIRCH (200;0,5)
3521,30 3602,60 3254,40 3105,00 3696,80 3219,60 3490,50 3502,40 3610,30 3184,10 3418,70 197,65 3105,00 3696,80
BIRCH (200;0,5)
1021,30 1015,60 1000,40 1106,00 1017,90 966,70 1002,10 1072,50 1001,30 975,20 1017,90 40,04 966,70 1106,00
BIRCH (200;0,1)
filtrovací inic. centra k-průměrů++ 1022,60 1050,80 1022,40 1019,60 1048,60 1057,60 998,60 976,50 1021,30 1016,70 1023,47 23,31 976,50 1057,60
BIRCH (200;0,1)
všechny fáze všechny fáze všechny fáze
všechny fáze
náhod.inic. inic. centra náhod.inic. náhod.inic. inic. centra k-průměrů++ centra centra centra k-průměrů++
inic. centra k-průměrů++
1007,60 1041,30 1069,25 1007,40 1071,20 1052,90 998,26 1061,40 1025,50 997,18 1033,20 28,09 997,18 1071,20
1100,00 1024,20 1021,70 1053,40 1118,10 1011,30 1052,60 1113,40 1063,00 1052,30 1061,00 36,20 1011,30 1118,10
1011,10 1011,10 1011,10 1011,40 1011,10 1011,10 1011,40 1011,10 1011,10 1011,10 1011,16 0,12 1011,10 1011,40
155
1043,40 1049,50 1017,00 1012,60 1021,10 1015,30 1015,50 1048,30 1019,90 1049,50 1029,21 15,32 1012,60 1049,50
1031,20 1031,20 1031,20 1031,40 1031,20 1031,20 1031,20 1031,20 1031,20 1031,20 1031,22 0,06 1031,20 1031,40
1049,70 1079,70 1053,00 1011,00 1046,70 1081,40 1048,50 1050,80 1088,20 1041,20 1055,02 21,67 1011,00 1088,20
Příloha 3: Srovnání příslušnosti objektů souboru VOWEL ke shlukům vytvořených jednotlivými metodami oproti shlukům faktickým
Metoda k-průměrů shluk 0 1 2 3 4 5 6 7 8 9 10 celkem
0 6 24 12
1 7 17 18
2 12 7 23 6
3
4
5
12 30
6 2 28
8 15 8
6 6 48
6 48
48
6 48
6 48
1 16 48
3
4 32
5 11
12
6
4
6
7
8
9
10
12 18 15 12 12 7 2 48
6 14
28 8 12
25 12
48
6 8 18 15 1 48
11
48
6 12 48
7
8
9
10
15
11
18
6
8
celk. 25 48 53 38 71 51 57 34 62 46 43
Metoda k-průměrů++ shluk 0 1 2 3 4 5 6 7 8 9 10 celkem
0
1
2
24 1 6 6 11
17
10
7 6 18
9 22 4 7
48
48
48
36
48
12
23 10 48
10 48
156
18 16
30
14 48
6 48
6 12 9 48
11 17 1 48
6 6 48
celk. 57 51 1 22 78 51 30 84 63 35 56
Dvoufázový algoritmus shluk 0 1 2 3 4 5 6 7 8 9 10 celkem
0 42
1 48
2 48
3 47
4 43
5 45 1 2
6 48
7 42
8 47
9 45
10 45 2
6
1 2
1 2 1
1 1
5
2 48
48
48
48
48
48
48
48
1 48
2 7
3 36
4
6
7
8
32
5 22 13
14
11
4 11
5
11
4 15
48
11 30 1 1 48
6 6 12 15 48
6 11 19 12 48
6
7
8
9
11
6 15
12 7 13 14
6
23
12 7
2
6
14 48
7 7 7
48
48
48
48
9
10 18
celk. 500 3 8 1 3 2 1 1 6 2 1
Filtrovací algoritmus shluk 0 1 2 3 4 5 6 7 8 9 10 celkem
0 1 24 6
1
17 7
9 9 6
11
6 48
18
6 48
9
6
22
1 48
6 48
5 48
2 48
6 18 48
celk. 83 59 1 50 31 54 51 27 62 38 72
Filtrovací algoritmus s využitím k-průměrů++ shluk 0 1 2 3 4 5 6 7 8 9 10 celkem
0
1 11
2 1 18
3 36
4 12
5 32
10 18
3
1 6 11 6 24
6 18
6
4 6 9
13
48
18
23 6 6
48
6
48
48
10 20 48
11 1 48
157
6 24 48
celk. 99 32 1 29 68 52 37 59 43 48 66
Algoritmus BIRCH k-průměrů s parametry L = 200, R = 0,5 shluk 0 1 2 3 4 5 6 7 8 9 10 celkem
0
1
2
24 12
17 16
5 10 19
3
42 6
4
5
33
15 22
15 6 6 48
8 7 48
2 12 48
48
48
6 3
9 21 5
11
6
48
4 48
7 20
8 7
9 7
10
9 9 22
6 48
5 12 4 20
11 12 11 6 1
48
48
48
8
9
10 2
6 24
celk. 37 46 38 85 79 59 35 15 82 17 35
Algoritmus BIRCH k-průměrů s parametry L = 200, R = 0,1 shluk 0 1 2 3 4 5 6 7 8 9 10 celkem
0
1
2
6 24 12
7 17 18
12 6 22 8
6 48
6 48
48
3
4 32
5 15
12 35
6
10 18
10
4
1 48
48
1 48
6 11
7
15 20 16 14 7
30 6 12
48
48
6 9 18 14 1 48
11 25 6 6 48
8 7
9 7
6 2 3
celk. 60 25 47 52 43 81 63 49 64 23 21
48
Algoritmus BIRCH k-průměrů s parametry L = 10, R = 0,5 shluk 0 1 2 3 4 5 6 7 8 9 10 celkem
0
1
2
3
24 12
17 17
5 17 13
36
12 6 6 48
7 7 48
1 12 48
48
4
5
32
17 18
16
48
6 2
11 20 5
13
6
48
4 48
158
7 20
10
16 2 22
6 48
5 12 4 20
11 12 11 6 1
48
48
6 24
48
celk. 36 46 46 82 63 58 35 15 97 15 35
Příloha 4: Srovnání příslušnosti objektů souboru IRIS ke shlukům vytvořených jednotlivými metodami oproti shlukům faktickým
Metoda k-průměrů shluk 1 2 3 celkem
1 50 50
2 3 47
3 36 14
50
50
2 48
3 14
2 50
36 50
celkem 39 61 50
Metoda k-průměrů++ shluk 1 2 3 celkem
1 50 50
celkem 62 50 38
Dvoufázový algoritmus shluk 1 2 3 celkem
1
2 50
3 40
50
10 50
2 47 3
3 13 37
50
50
50 50
celkem 90 50 10
Filtrovací algoritmus shluk 1 2 3 celkem
1 50 50
celkem 60 40 50
Filtrovací algoritmus s využitím k-průměrů++ shluk 1 2 3 celkem
1
2 48
3 14
2 50
36 50
50 50
celkem 62 50 38
159
Algoritmus BIRCH k-průměrů s parametry L = 50, R = 0,9 shluk 1 2 3 celkem
1 50
50
2
3
18 32 50
49 1 50
celkem 50 67 33
Algoritmus BIRCH k-průměrů s parametry L = 50, R = 0,1 shluk 1 2 3 celkem
1
2 48
3 14
2 50
36 50
50 50
celkem 62 50 38
Algoritmus BIRCH k-průměrů s parametry L = 100, R = 0,9 shluk 1 2 3 celkem
1 50
50
2
3
11 39 50
46 4 50
celkem 50 57 43
160
Příloha 5: Sledování průměrného času zpracování dvoufázového algoritmu v závislosti na jednotlivých parametrech kmax = 6, k
= 3, volba n
počet objektů 1. 2. 3. 4. 5. 6. 7. 8. 9. 10. aritm. průměr směr. odchylka var. koeficient
100 0,038 0,025 0,041 0,031 0,045 0,041 0,042 0,041 0,037 0,039 0,0380 0,0056 0,1470
500 0,221 0,203 0,258 0,205 0,203 0,249 0,202 0,196 0,226 0,227 0,2190 0,0202 0,0921
počet objektů 1. 2. 3. 4. 5. 6. 7. 8. 9. 10. aritm. průměr směr. odchylka var. koeficient
50 000 100 000 20,452 40,156 20,536 42,487 21,006 42,023 21,128 41,965 20,452 44,028 20,568 43,586 20,996 42,965 21,026 42,148 21,154 42,021 21,742 41,161 20,9060 42,2540 0,3880 1,0621 0,0186 0,0251
1 000 0,425 0,384 0,412 0,395 0,397 0,415 0,428 0,401 0,394 0,409 0,4060 0,0135 0,0333
5 000 2,001 2,106 2,368 2,451 2,029 2,046 2,105 2,014 2,153 2,047 2,1320 0,1468 0,0689
200 000 500 000 86,681 268,481 88,059 269,936 89,245 269,024 88,265 268,563 89,764 270,741 89,495 270,036 88,963 269,012 89,285 269,148 88,992 269,925 89,861 269,094 88,8610 269,3960 0,9123 0,6899 0,0103 0,0026
161
10 000 4,025 4,854 4,296 4,425 4,836 4,847 4,348 4,659 4,406 4,564 4,5260 0,2619 0,0579
20 000 8,216 8,294 8,896 8,025 8,845 8,712 8,312 8,105 8,213 8,442 8,4060 0,2930 0,0349
700 000 1 000 000 363,589 537,789 362,025 539,159 364,986 539,896 364,356 539,458 364,896 538,158 363,586 540,865 366,068 540,023 365,369 538,256 364,963 539,045 365,642 538,511 364,5480 539,1160 1,1364 0,9164 0,0031 0,0017
n = 5 000, k = 3, volba kmax kmax 4 6 8 10 20 50 100 150 1. 4,425 6,256 8,698 10,459 18,898 48,861 84,054 141,226 2. 4,524 6,296 8,796 10,554 18,998 49,053 84,459 141,096 3. 4,552 6,792 8,858 10,796 19,296 48,925 85,168 141,663 4. 4,496 6,263 8,929 10,858 19,485 49,088 84,759 141,814 5. 4,405 6,389 8,832 10,963 19,352 48,960 85,687 141,153 6. 4,706 6,354 8,927 10,837 19,462 49,102 85,216 141,026 7. 4,383 5,986 8,845 10,965 19,396 49,028 84,829 141,537 8. 4,484 6,326 8,821 10,442 19,345 48,919 84,975 141,309 9. 4,629 6,335 8,816 10,758 19,502 48,825 84,892 141,493 10. 4,396 6,443 8,908 10,398 19,396 48,929 85,021 141,273 aritm. průměr 4,5000 6,3440 8,8430 10,7030 19,3130 48,9690 84,9060 141,3590 směr. odchylka 0,1009 0,1892 0,0659 0,2080 0,1938 0,0899 0,4179 0,2448 var. koeficient 0,0224 0,0298 0,0075 0,0194 0,0100 0,0018 0,0049 0,0017 n = 10 000, kmax=100, volba k k 1. 2. 3. 4. 5. 6. 7. 8. 9. 10. aritm. průměr směr. odchylka var. koeficient
4 209,785 209,824 209,903 210,063 210,048 209,895 210,128 209,981 210,106 210,117
6 205,046 205,628 205,196 205,854 205,703 205,145 205,287 205,308 205,214 205,369
10 207,512 207,423 208,263 207,893 207,949 208,206 208,068 208,143 207,864 207,899
15 209,025 209,496 209,306 210,164 210,096 210,256 209,975 210,107 210,061 209,794
20 207,086 207,486 208,265 209,263 207,362 207,845 208,941 207,785 207,851 207,496
25 202,563 204,574 204,036 206,957 204,965 205,658 204,039 204,869 203,514 202,105
209,9850
205,3750
207,9220 209,8280
207,9380
204,3280
0,1197
0,2515
0,2626
0,3937
0,6607
1,3538
0,0006
0,0012
0,0013
0,0019
0,0032
0,0066
162
k 1. 2. 3. 4. 5. 6. 7. 8. 9. 10. aritm. průměr směr. odchylka var. koeficient
kmax = 6, k
30 204,039 206,785 206,164 208,103 205,236 207,568 205,954 204,856 207,269 206,366
35 205,196 201,854 206,368 207,152 206,018 206,854 204,658 204,339 205,967 205,344
40 204,035 204,968 203,478 204,369 204,965 205,357 204,924 204,264 204,236 204,714
45 206,036 208,896 201,364 200,381 210,357 206,395 207,958 208,854 207,018 206,641
50 204,365 206,048 206,965 207,235 208,014 207,856 205,476 206,951 205,687 207,183
80 203,564 205,621 205,968 204,193 204,513 206,384 206,941 205,935 206,818 204,993
206,2340
205,3750
204,5310
206,3900
206,5780
205,4930
1,2025
1,4530
0,5281
3,0414
1,0940
1,0819
0,0058
0,0071
0,0026
0,0147
0,0053
0,0053
= 3, volba n – průměrné časy jednotlivých fází
počet objektů n čas první fáze [s] čas druhé fáze [s] celkový čas [s] 100 0,038 0,000 0,038 500 0,219 0,000 0,219 1 000 0,406 0,043 0,449 5 000 2,132 4,212 6,344 10 000 4,526 8,990 13,516 20 000 8,406 18,484 26,890 50 000 20,906 42,766 63,672 100 000 42,254 90,444 132,698 200 000 88,861 174,393 263,254 500 000 269,396 385,968 655,364 700 000 364,548 560,368 924,916 1 000 000 539,116 843,313 1 382,429
163
n = 5 000, k = 3, volba kmax – průměrné časy jednotlivých fází parametr kmax čas první fáze [s] čas druhé fáze [s] celkový čas [s] 4 1,457 3,043 4,500 6 2,132 4,212 6,344 8 4,484 4,359 8,843 10 6,328 4,375 10,703 20 15,938 3,375 19,313 50 43,547 5,422 48,969 100 80,343 4,563 84,906 150 138,265 3,094 141,359 180 176,563 4,297 180,860 190 192,031 4,438 196,469 200 223,875 5,891 229,766 210 230,281 4,453 234,734 250 277,984 3,203 281,187 300 346,625 3,031 349,656 400 766,750 3,687 770,437 500 1 488,900 4,300 1 493,200
164
Příloha 6: Sledování průměrného času zpracování, hodnot optimalizované funkce Q, počtu iteračních kroků v druhé části algoritmu a počtu shluků vytvořených v první části algoritmu BIRCH k-průměrů v závislosti na parametrech R = 1,9
počet objektů parametr L 100 000 300 000 500 000 750 000 1 000 000
50 000 150 000 100 000 250 000 750 000
čas první části [s] 104,797 708,031 1 994,200 3 607,900 5 793,300
čas čas celkový druhé nepovinné čas [s] části [s] části [s] 246,953 60 411,75 1 444,869 500 2 652,90 2 435,900 1 000 5 430,10 4 084,100 2900 10 592,00 5 121,700 7690 18 605,00
n = 100 000, R = 0,9
parametr L 10 500 1 000 2 000 3 000 5 000 10 000 15 000 20 000 30 000 40 000 50 000 60 000 70 000 80 000 90 000 99 000
čas první části [s]
čas druhé části [s]
celkový čas [s]
19 093 861,735 478,468 265,125 211,375 140,782 74,843 62,406 74,14 82,219 83,829 81,593 78,094 79,125 83,312 83,984 81,985
199 77,703 78,266 71,875 92,063 122,156 132,438 115,954 108,750 124,468 124,000 131,219 118,219 117,844 127,016 128,125 126,140
19 292 939,438 556,734 337,000 303,438 262,938 207,281 178,360 182,890 206,687 207,829 212,812 196,313 196,969 210,328 212,109 208,125
165
počet počet výsledná iteračních shluků hodnota kroků vytvořených optimalizované v druhé v první části funkce Q části 39 19 941 92 747 8 944 93 113 9 517 93 807 9 274 93 447 12 212 97 778 4 151 99 296 8 82 103 700 5 41 121 490 4 38 120 810 2 7 99 974 2 7 99 974 2 7 99 974 2 7 99 974 2 7 99 974 2 7 99 974 2 7 99 974 2 7 99 974
n = 100 000, L = 15 000
parametr R
čas první části [s]
čas druhé části [s]
počet počet výsledná iteračních shluků hodnota kroků vytvořených optimalizované v druhé v první části funkce Q části 24 1160 185 420 19 982 188 520 5 159 236 790 6 38 150 510 4 20 104 540 3 29 101 630 5 41 121 490 5 43 108 920 4 40 105 650 2 110 93 202 2 78 103 180 6 49 109 560 6 49 109 560 6 49 109 560 6 49 109 560
celkový čas [s]
0,09 1 722,400 70,900 1 793,300 0,10 1 489,300 69,400 1 558,700 0,30 421,406 74,563 495,969 0,60 142,406 153,453 295,859 0,70 106,297 83,406 189,703 0,80 69,172 129,140 198,312 0,90 62,406 115,954 178,360 1,00 64,422 81,359 145,781 1,10 61,125 91,203 152,328 1,20 106,453 65,015 171,468 1,50 92,266 96,516 188,782 2,00 76,734 119,485 196,219 2,50 76,781 119,937 196,718 3,00 77,438 121,406 198,844 5,00 78,078 126,797 204,875
Časy fází algoritmu BIRCH k -průměrů v závislosti počtu objektů Čas po 1. fázi počet objektů parametr L 1. 2. 3. 4. 5. 6. 7. 8. 9. 10. aritm. průměr směr. odchylka var. koeficient
100 000 50 000 115,863 116,086 117,261 116,296 116,084 117,165 117,085 116,932 116,028 116,440 116,5240 0,5062 0,0043
300 000 150 000 723,285 725,695 722,893 724,251 726,063 724,095 723,752 724,251 722,842 724,503 724,1630 1,0193 0,0014
500 000 100 000 2 058,765 2 059,413 2 059,169 2 057,265 2 061,298 2 059,478 2 059,954 2 061,672 2 060,395 2 057,987 2 059,5396 1,2994 0,0006
166
750 000 250 000 3 793,265 3 789,096 3 792,962 3 795,263 3 796,086 3 794,425 3 794,491 3 793,279 3 792,059 3 793,982 3 793,4908 1,8366 0,0005
1 000 000 750 000 5 916,976 5 923,028 5 927,168 5 925,563 5 925,196 5 919,943 5 923,595 5 924,016 5 921,128 5 928,726 5 923,5339 3,3049 0,0006
Čas po 3. fázi počet objektů parametr L 1. 2. 3. 4. 5. 6. 7. 8. 9. 10. aritm. průměr směr. odchylka var. koeficient
100 000 50 000 379,296 384,563 386,026 381,253 378,983 386,121 383,563 381,752 380,742 382,601 382,4900 2,4244 0,0063
300 000 150 000 2 278,753 2 280,274 2 269,965 2 274,758 2 270,759 2 274,961 2 271,058 2 273,575 2 272,628 2 275,965 2 274,2696 3,2263 0,0014
500 000 100 000 4 539,856 4 523,129 4 537,858 4 526,185 4 540,768 4 528,952 4 530,452 4 532,259 4 531,452 4 530,084 4 532,0995 5,4868 0,0012
750 000 250 000 7 822,468 7 819,962 7 840,563 7 835,524 7 838,065 7 831,365 7 835,149 7 834,856 7 832,965 7 831,513 7 832,2430 6,1429 0,0008
Čas po nepovinné fázi počet objektů 100 000 300 000 parametr L 50 000 150 000 430,456 2 685,269 1. 431,705 2 681,896 2. 435,026 2 689,627 3. 436,532 2 702,965 4. 434,123 2 698,854 5. 432,453 2 692,465 6. 432,827 2 691,954 7. 431,158 2 699,584 8. 430,903 2 690,783 9. 433,318 2 691,466 10. aritm. průměr 432,8501 2 692,4863 1,8435 6,1431 směr. odchylka 0,0043 0,0023 var. koeficient
500 000 100 000 5 496,854 5 510,356 5 497,462 5 508,534 5 502,026 5 504,459 5 500,208 5 501,758 5 508,596 5 491,025 5 502,1278 5,7680 0,0010
750 000 1 000 000 250 000 750 000 10 623,568 18 798,698 10 656,269 18 810,984 10 680,965 18 800,369 10 679,025 18 812,265 10 679,896 18 792,563 10 682,587 18 813,362 10 684,341 18 801,965 10 677,265 18 802,096 10 676,630 18 807,162 10 681,451 18 805,031 10 672,1997 18 804,4495 17,8540 6,2741 0,0017 0,0003
167
1 000 000 750 000 10 991,532 10 896,026 11 024,356 11 095,625 11 057,563 10 965,175 11 013,063 11 000,258 10 999,187 10 993,425 11 003,6210 50,2289 0,0046
Časy fází algoritmu BIRCH k -průměrů v závislosti parametru L Čas po 1.fázi parametr L 1. 2. 3. 4. 5. 6. 7. 8. 9. 10. aritm. průměr směr. odchylka var. koeficient
10 19 098,2540 19 090,3690 19 092,1540 19 093,9650 19 093,5480 19 094,2580 19 096,1540 19 091,0360 19 092,1540 19 088,1540 19 093,0046 00002,7579 0,0001
parametr L 1. 2. 3. 4. 5. 6. 7. 8. 9. 10. aritm. průměr směr. odchylka var. koeficient
5 000 140,0430 140,1520 140,7670 140,9350 141,0360 140,8450 140,4770 140,9990 141,0170 141,5490 140,7820 0,4265 0,0030
500 1 000 862,2450 476,8540 861,4780 477,0260 860,1500 479,2510 861,4860 480,4020 859,0360 478,3640 862,0360 479,0280 862,7590 478,4870 863,4530 477,5860 862,5640 479,4580 862,1430 478,2240 861,7350 478,46800 1,2300 1,0574 0,0014 0,0022
10 000 74,0250 74,9580 74,8960 75,0260 75,1430 74,9890 75,0450 74,6250 74,9020 74,8210 74,8430 0,3037 0,0041
15 000 60,7580 62,8570 62,6980 62,7960 62,9350 61,8540 63,1560 62,2140 62,5870 62,2050 62,4060 0,6644 0,0106
168
2 000 265,8960 265,0210 264,2540 265,8540 264,8630 265,7670 265,8090 264,5410 265,0110 264,2340 265,1250 0,6318 0,0024
20 000 74,7820 73,9670 74,4230 74,4510 73,8020 74,2010 73,4510 74,2570 73,7510 74,3150 74,1400 0,3751 0,0051
30 000 82,1050 80,8540 81,2540 82,7890 82,9050 83,1080 82,8140 82,0150 81,5210 82,8250 82,2190 0,7512 0,0091
3 000 211,0230 211,8940 210,4570 211,8630 210,8520 211,0040 211,4420 211,7810 211,8290 211,6050 211,3750 0,4810 0,0023 40 000 83,0250 83,5890 83,9680 83,8990 84,1270 83,9580 84,2250 83,7510 83,9760 83,7720 83,8290 0,3196 0,0038
parametr L 1. 2. 3. 4. 5. 6. 7. 8. 9. 10. aritm. průměr směr. odchylka var. koeficient
50 000 81,4120 81,9860 81,0360 81,1580 81,6980 81,7590 81,7580 81,6870 81,9050 81,5310 81,5930 0,2937 0,0036
60 000 77,8250 78,1540 78,3680 77,8470 78,2150 78,1420 78,2010 77,8590 78,1980 78,1310 78,0940 0,1755 0,0022
70 000 79,0230 78,8960 79,2490 79,3080 79,0890 79,3980 78,9250 79,0120 79,2080 79,1420 79,1250 0,1573 0,0020
80 000 83,4250 83,2360 83,3060 83,1480 83,3430 83,5010 83,2860 83,2930 83,3010 83,2810 83,3120 0,0918 0,0011
90 000 83,0250 83,9360 84,2540 84,1290 83,9970 84,0680 84,1890 84,1530 84,0950 83,9940 83,9840 0,3326 0,0040
99 000 81,5410 81,6980 82,1680 82,0950 82,1090 81,9940 82,0680 82,1540 81,8510 82,1720 81,9850 0,2071 0,0025
Výsledný čas
parametr L 1. 2. 3. 4. 5. 6. 7. 8. 9. 10. aritm. průměr směr. odchylka var. koeficient
10 19 291,3540 19 290,3590 19 291,2540 19 292,9750 19 292,8480 19 293,9580 19 295,6940 19 290,2460 19 292,2580 19 288,2540 19 291,9200 1,9982 0,0001
500 939,2250 939,2180 938,1540 939,2560 937,0240 940,1520 940,5260 940,6480 940,1520 940,0250 939,4380 1,0777 0,0011
169
1 000 554,9640 555,2460 557,3410 558,6820 556,6540 557,3780 556,6570 555,7860 557,9580 556,6740 556,7340 1,1108 0,0020
2 000 337,7960 337,0210 336,1540 337,6540 336,7630 337,5620 337,5420 336,3210 337,1510 336,0360 337,0000 0,6210 0,0018
3 000 303,1130 303,9640 302,5170 303,9130 302,9320 303,0940 303,4820 303,8310 303,8690 303,6650 303,4380 0,4716 0,0016
parametr L 1. 2. 3. 4. 5. 6. 7. 8. 9. 10. aritm. průměr směr. odchylka var. koeficient
5 000 262,2130 262,2420 262,8370 262,9870 263,4660 262,9550 262,6170 262,9540 263,3510 263,7580 262,9380 0,4741 0,0018
10 000 207,0250 207,1230 207,2160 207,3260 207,4330 207,1290 207,6130 207,0220 207,4020 207,5210 207,2810 0,1981 0,0010
15 000 176,6280 178,7870 178,5430 178,6560 178,8750 177,7940 179,0860 178,2940 178,6120 178,3250 178,3600 0,6697 0,0038
20 000 182,9720 182,9670 183,1030 182,8910 182,9020 182,7510 182,9010 182,7170 182,9810 182,7150 182,8900 0,1210 0,0007
30 000 206,5450 205,9840 205,7340 206,9090 207,9050 207,3180 206,2140 206,4150 206,9210 206,9250 206,6870 0,6134 0,0030
40 000 207,0250 207,5890 207,9680 207,8990 208,1270 207,9580 208,2250 207,7510 207,9760 207,7720 207,8290 0,3196 0,0015
parametr L 1. 2. 3. 4. 5. 6. 7. 8. 9. 10. aritm. průměr směr. odchylka var. koeficient
50 000 212,7020 212,9560 212,7160 212,5180 212,7280 212,9090 212,8580 212,9270 212,9750 212,8310 212,8120 0,1368 0,0006
60 000 195,9250 196,5340 196,6180 195,9270 196,4650 196,3920 196,4510 195,8790 196,4680 196,4710 196,3130 0,2697 0,0014
70 000 197,3530 196,8560 196,8290 196,9080 196,8760 197,3980 196,9250 196,7420 196,8410 196,9620 196,9690 0,2112 0,0011
80 000 210,4450 210,2460 210,3160 210,1680 210,3530 210,5510 210,2960 210,2930 210,3210 210,2910 210,3280 0,1001 0,0005
90 000 212,0250 211,4360 213,2540 212,1790 212,3970 212,0680 212,1890 212,1530 212,0950 211,2940 212,1090 0,5033 0,0024
99 000 208,4250 208,5480 209,1680 208,0450 208,1290 207,3440 208,0630 208,1050 207,3410 208,0820 208,1250 0,5093 0,0024
170
Čas algoritmu BIRCH k-průměrů v závislosti na počtu dimenzí počet dimenzí 1. 2. 3. 4. 5. 6. 7. 8. 9. 10. aritm. průměr směr. odchylka var. koeficient
2 382,7650 362,5780 374,0000 398,5940 383,2660 373,4580 375,8630 381,2590 389,5260 392,0250 381,3334 9,9128 0,0260
4 403,1400 404,3750 427,6880 404,1250 429,3120 409,4150 414,5260 414,1560 421,4520 422,5480 415,0737 9,3183 0,0224
6 1 085,3750 1 088,0310 1 077,2190 1 008,6250 1 085,9380 1 074,8560 1 062,1250 1 044,7450 1 052,2560 1 036,0280 1 061,5198 24,7139 0,0233
171
10 25 265,0710 25 156,4250 25 025,1520 25 186,4580 25 203,8590 25 215,9020 25 195,1570 25 189,9650 25 209,8560 25 254,0960 25 190,1941 62,7233 0,0025
Příloha 7: Sledování průměrného času zpracování algoritmu k-průměrů++ v závislosti na počtu objektů, dimenzí a počtu požadovaných shluků
Počet objektů 2 shluky počet objektů 1. 2. 3. 4. 5. 6. 7. 8. 9. 10. aritm. průměr směr. odchylka var. koeficient
1 000 0,000 0,000 0,000 0,000 0,000 0,000 0,000 0,000 0,016 0,000 0,0016 0,0048 3,0000
10 000 0,000 0,000 0,016 0,000 0,000 0,000 0,015 0,000 0,000 0,000 0,0031 0,0062 2,0013
20 000 0,016 0,000 0,000 0,015 0,000 0,000 0,000 0,016 0,000 0,000 0,0047 0,0072 1,5285
50 000 0,015 0,016 0,000 0,016 0,015 0,016 0,000 0,015 0,016 0,016 0,0125 0,0063 0,5012
80 000 0,031 0,016 0,015 0,031 0,016 0,016 0,031 0,016 0,015 0,031 0,0218 0,0075 0,3450
100 000 0,031 0,031 0,032 0,031 0,031 0,031 0,032 0,031 0,031 0,031 0,0312 0,0004 0,0128
počet objektů 1. 2. 3. 4. 5. 6. 7. 8. 9. 10. aritm. průměr směr. odchylka var. koeficient
150 000 0,047 0,047 0,047 0,047 0,047 0,031 0,047 0,047 0,046 0,047 0,0453 0,0048 0,1054
200 000 0,063 0,062 0,047 0,062 0,063 0,062 0,063 0,047 0,062 0,063 0,0594 0,0062 0,1046
400 000 0,125 0,125 0,110 0,125 0,125 0,125 0,109 0,125 0,109 0,125 0,1203 0,0072 0,0597
600 000 0,188 0,172 0,187 0,172 0,197 0,250 0,172 0,171 0,172 0,172 0,1853 0,0233 0,1257
800 000 0,250 0,235 0,234 0,234 0,235 0,219 0,234 0,266 0,234 0,234 0,2375 0,0118 0,0495
1 000 000 0,312 0,297 0,281 0,297 0,282 0,296 0,297 0,297 0,297 0,281 0,2937 0,0092 0,0315
172
5 shluků počet objektů 1. 2. 3. 4. 5. 6. 7. 8. 9. 10. aritm. průměr směr. odchylka var. koeficient
1 000 0,000 0,000 0,000 0,000 0,015 0,000 0,000 0,000 0,000 0,000 0,0015 0,0045 3,0000
10 000 0,016 0,015 0,016 0,000 0,016 0,015 0,016 0,000 0,000 0,000 0,0094 0,0077 0,8174
20 000 0,031 0,016 0,015 0,016 0,000 0,016 0,031 0,015 0,016 0,016 0,0172 0,0083 0,4842
50 000 0,062 0,047 0,063 0,047 0,046 0,063 0,047 0,047 0,047 0,062 0,0531 0,0077 0,1448
80 000 0,094 0,094 0,109 0,094 0,094 0,094 0,109 0,094 0,109 0,094 0,0985 0,0069 0,0698
100 000 0,157 0,140 0,141 0,141 0,140 0,141 0,140 0,141 0,141 0,140 0,1422 0,0050 0,0349
počet objektů 1. 2. 3. 4. 5. 6. 7. 8. 9. 10. aritm. průměr směr. odchylka var. koeficient
150 000 0,203 0,219 0,219 0,203 0,203 0,203 0,219 0,203 0,203 0,219 0,2094 0,0078 0,0374
200 000 0,281 0,297 0,281 0,297 0,297 0,281 0,266 0,297 0,297 0,265 0,2859 0,0123 0,0431
400 000 0,547 0,563 0,547 0,562 0,563 0,531 0,562 0,641 0,562 0,547 0,5625 0,0281 0,0499
600 000 0,860 0,828 0,843 0,813 0,812 0,829 0,828 0,906 0,828 0,844 0,8391 0,0262 0,0312
800 000 1,125 1,125 1,110 1,093 1,110 1,156 1,219 1,094 1,078 1,187 1,1297 0,0425 0,0376
1 000 000 1,360 1,391 1,359 1,437 1,438 1,359 1,359 1,344 1,609 1,359 1,4015 0,0762 0,0543
173
10 shluků počet objektů 1. 2. 3. 4. 5. 6. 7. 8. 9. 10. aritm. průměr směr. odchylka var. koeficient
1 000 0,016 0,000 0,000 0,000 0,000 0,000 0,016 0,000 0,000 0,000 0,0032 0,0064 2,0000
10 000 0,016 0,015 0,016 0,015 0,016 0,016 0,015 0,016 0,031 0,016 0,0172 0,0046 0,2687
20 000 0,047 0,031 0,031 0,047 0,031 0,031 0,047 0,032 0,031 0,031 0,0359 0,0073 0,2026
50 000 0,109 0,110 0,125 0,109 0,125 0,125 0,110 0,109 0,109 0,125 0,1156 0,0077 0,0665
80 000 0,219 0,234 0,234 0,235 0,218 0,235 0,234 0,235 0,234 0,219 0,2297 0,0072 0,0315
100 000 0,328 0,313 0,344 0,343 0,329 0,328 0,328 0,312 0,328 0,329 0,3282 0,0098 0,0299
počet objektů 1. 2. 3. 4. 5. 6. 7. 8. 9. 10. aritm. průměr směr. odchylka var. koeficient
150 000 0,516 0,500 0,469 0,484 0,469 0,469 0,484 0,485 0,562 0,469 0,4907 0,0280 0,0570
200 000 0,641 0,640 0,641 0,703 0,672 0,641 0,640 0,657 0,718 0,625 0,6578 0,0290 0,0441
400 000 1,282 1,265 1,313 1,297 1,281 1,250 1,359 1,313 1,281 1,281 1,2922 0,0289 0,0224
600 000 1,937 1,969 1,938 1,906 1,985 1,922 1,890 1,938 1,906 1,953 1,9344 0,0281 0,0145
800 000 2,547 2,516 2,547 2,594 2,563 2,547 2,531 2,625 2,562 2,578 2,5610 0,0300 0,0117
1 000 000 3,235 3,187 3,172 3,156 3,328 3,172 3,156 3,235 3,218 3,188 3,2047 0,0497 0,0155
174
20 shluků počet objektů 1. 2. 3. 4. 5. 6. 7. 8. 9. 10. aritm. průměr směr. odchylka var. koeficient
1 000 0,015 0,000 0,016 0,000 0,000 0,047 0,000 0,015 0,000 0,000 0,0093 0,0143 1,5396
10 000 0,031 0,047 0,031 0,031 0,032 0,031 0,031 0,031 0,032 0,031 0,0328 0,0047 0,1448
20 000 0,078 0,062 0,062 0,157 0,062 0,078 0,078 0,079 0,062 0,078 0,0796 0,0269 0,3380
50 000 0,235 0,250 0,234 0,250 0,250 0,250 0,250 0,234 0,250 0,250 0,2453 0,0072 0,0293
80 000 0,484 0,469 0,594 0,578 0,562 0,547 0,547 0,547 0,578 0,578 0,5484 0,0392 0,0714
100 000 0,718 0,782 0,718 0,672 0,703 0,719 0,688 0,703 0,734 0,688 0,7125 0,0290 0,0407
počet objektů 1. 2. 3. 4. 5. 6. 7. 8. 9. 10. aritm. průměr směr. odchylka var. koeficient
150 000 0,922 0,906 0,984 0,922 0,922 1,000 1,031 1,078 1,063 1,062 0,9890 0,0640 0,0647
200 000 1,391 1,391 1,562 1,391 1,343 1,422 1,422 1,360 1,375 1,390 1,4047 0,0573 0,0408
400 000 2,750 2,703 2,844 2,719 2,750 2,797 2,734 2,797 2,750 2,797 2,7641 0,0411 0,0149
600 000 4,125 4,094 4,172 4,125 4,172 4,156 4,078 4,359 4,063 4,172 4,1516 0,0789 0,0190
800 000 5,579 5,609 5,484 5,422 5,516 5,469 5,562 5,453 5,500 5,485 5,5079 0,0560 0,0102
1 000 000 6,859 6,859 6,875 7,078 6,891 6,797 6,875 6,906 6,828 6,875 6,8843 0,0710 0,0103
175
Počet dimenzí 2 shluky počet objektů 1. 2. 3. 4. 5. 6. 7. 8. 9. 10. aritm. průměr směr. odchylka var. koeficient
2 0,031 0,031 0,016 0,031 0,032 0,031 0,015 0,032 0,031 0,016 0,0266 0,0072 0,2696
4 0,063 0,047 0,047 0,046 0,063 0,047 0,062 0,047 0,047 0,063 0,0532 0,0078 0,1468
6 0,062 0,063 0,078 0,062 0,063 0,078 0,062 0,079 0,062 0,063 0,0672 0,0073 0,1087
10 0,110 0,109 0,109 0,110 0,109 0,110 0,109 0,094 0,094 0,109 0,1063 0,0062 0,0580
16 0,172 0,156 0,172 0,187 0,172 0,157 0,171 0,157 0,172 0,156 0,1672 0,0098 0,0585
počet objektů 1. 2. 3. 4. 5. 6. 7. 8. 9. 10. aritm. průměr směr. odchylka var. koeficient
24 0,235 0,250 0,234 0,250 0,234 0,250 0,235 0,234 0,234 0,235 0,2391 0,0071 0,0299
32 0,328 0,312 0,328 0,313 0,328 0,328 0,313 0,328 0,312 0,313 0,3203 0,0077 0,0241
44 0,422 0,453 0,531 0,453 0,422 0,438 0,437 0,422 0,438 0,437 0,4453 0,0306 0,0686
64 0,625 0,656 0,625 0,641 0,625 0,609 0,641 0,703 0,625 0,625 0,6375 0,0250 0,0392
100 0,985 0,984 0,985 1,031 0,984 0,985 0,953 0,968 0,985 0,984 0,9844 0,0185 0,0188
176
5 shluků počet objektů 1. 2. 3. 4. 5. 6. 7. 8. 9. 10. aritm. průměr směr. odchylka var. koeficient
2 0,125 0,125 0,125 0,125 0,125 0,109 0,125 0,125 0,109 0,125 0,1218 0,0064 0,0525
4 0,296 0,204 0,234 0,219 0,218 0,219 0,219 0,234 0,219 0,219 0,2281 0,0240 0,1054
6 0,281 0,297 0,282 0,296 0,297 0,375 0,297 0,297 0,297 0,297 0,3016 0,0252 0,0836
10 0,454 0,453 0,453 0,454 0,468 0,469 0,453 0,453 0,438 0,437 0,4532 0,0098 0,0217
16 0,750 0,719 0,687 0,672 0,672 0,703 0,703 0,672 0,687 0,672 0,6937 0,0244 0,0352
počet objektů 1. 2. 3. 4. 5. 6. 7. 8. 9. 10. aritm. průměr směr. odchylka var. koeficient
24 1,062 1,000 1,063 0,984 1,000 1,078 0,969 1,000 1,063 1,187 1,0406 0,0613 0,0589
32 1,297 1,313 1,312 1,297 1,360 1,328 1,281 1,312 1,329 1,281 1,3110 0,0228 0,0174
44 1,781 1,750 1,735 1,829 1,765 1,766 1,781 1,813 1,750 1,875 1,7845 0,0407 0,0228
64 2,562 2,563 2,500 2,594 2,531 2,562 2,641 2,594 2,562 2,735 2,5844 0,0616 0,0239
100 3,953 4,016 3,969 4,000 3,890 3,907 3,984 3,953 4,000 3,969 3,9641 0,0384 0,0097
177
10 shluků počet objektů 1. 2. 3. 4. 5. 6. 7. 8. 9. 10. aritm. průměr směr. odchylka var. koeficient
2 0,282 0,281 0,359 0,281 0,282 0,281 0,281 0,281 0,313 0,328 0,2969 0,0261 0,0878
4 0,515 0,500 0,500 0,500 0,500 0,500 0,485 0,485 0,500 0,515 0,5000 0,0095 0,0190
6 0,672 0,672 0,765 0,703 0,657 0,671 0,672 0,703 0,672 0,672 0,6859 0,0298 0,0434
10 1,063 1,094 1,031 1,062 1,016 1,000 1,062 1,032 1,015 1,032 1,041 0,027 0,026
16 1,860 1,531 1,562 1,516 1,563 1,531 1,531 1,609 1,547 1,532 1,5782 0,0972 0,0616
počet objektů 1. 2. 3. 4. 5. 6. 7. 8. 9. 10. aritm. průměr směr. odchylka var. koeficient
24 2,281 2,235 2,203 2,312 2,250 2,235 2,250 2,234 2,297 2,234 2,2531 0,0318 0,0141
32 2,985 2,953 3,000 2,906 3,031 2,969 2,953 3,016 3,000 2,953 2,9766 0,0352 0,0118
44 3,500 4,000 3,937 4,094 3,968 3,953 4,047 3,985 4,000 4,015 3,9499 0,1561 0,0395
64 5,828 5,688 5,765 5,704 5,828 5,765 5,703 5,735 5,812 5,875 5,7703 0,0603 0,0104
100 9,000 8,969 8,906 8,969 8,828 9,000 9,047 9,140 8,938 8,968 8,9765 0,0784 0,0087
178
20 shluků počet objektů 1. 2. 3. 4. 5. 6. 7. 8. 9. 10. aritm. průměr směr. odchylka var. koeficient
2 0,688 0,703 0,703 0,719 0,687 0,688 0,703 0,703 0,703 0,687 0,6984 0,0100 0,0144
4 1,079 1,031 1,125 1,078 1,094 1,062 1,078 1,063 1,078 1,062 1,0750 0,0231 0,0215
6 1,438 1,687 1,422 1,453 1,422 1,469 1,422 1,422 1,484 1,453 1,4672 0,0762 0,0519
10 2,250 2,171 2,188 2,172 2,140 2,297 2,141 2,172 2,172 2,234 2,194 0,048 0,022
16 3,296 3,360 3,265 3,250 3,313 3,250 3,359 3,297 3,281 3,282 3,2953 0,0374 0,0113
počet objektů 1. 2. 3. 4. 5. 6. 7. 8. 9. 10. aritm. průměr směr. odchylka var. koeficient
24 4,766 4,781 4,781 4,813 4,781 4,813 4,797 4,968 4,735 4,812 4,8047 0,0591 0,0123
32 6,438 6,187 6,328 6,235 6,218 6,250 6,313 6,265 6,360 6,406 6,3000 0,0789 0,0125
44 8,391 8,562 8,516 8,516 8,500 8,515 8,578 8,532 8,531 8,484 8,5125 0,0482 0,0057
64 12,391 12,109 12,266 12,250 12,297 12,109 12,141 12,265 12,235 12,203 12,2266 0,0844 0,0069
100 18,985 18,547 18,718 18,516 18,578 18,875 18,625 18,641 18,797 18,672 18,6954 0,1426 0,0076
179
Čas algoritmu k -průměrů ++ v závislosti počtu shluků a počtu objektů 2 shluky n 1 000 10 000 20 000 50 000 80 000 100 000 150 000 200 000 400 000 600 000 800 000 1 000 000
1.
2.
3.
4.
5.
6.
7.
8.
9.
10.
0,000 0,000 0,016 0,015 0,031 0,031 0,047 0,063 0,125 0,188 0,250 0,312
0,000 0,000 0,000 0,016 0,016 0,031 0,047 0,062 0,125 0,172 0,235 0,297
0,000 0,016 0,000 0,000 0,015 0,032 0,047 0,047 0,110 0,187 0,234 0,281
0,000 0,000 0,015 0,016 0,031 0,031 0,047 0,062 0,125 0,172 0,234 0,297
0,000 0,000 0,000 0,015 0,016 0,031 0,047 0,063 0,125 0,197 0,235 0,282
0,000 0,000 0,000 0,016 0,016 0,031 0,031 0,062 0,125 0,250 0,219 0,296
0,000 0,015 0,000 0,000 0,031 0,032 0,047 0,063 0,109 0,172 0,234 0,297
0,000 0,000 0,016 0,015 0,016 0,031 0,047 0,047 0,125 0,171 0,266 0,297
0,016 0,000 0,000 0,016 0,015 0,031 0,046 0,062 0,109 0,172 0,234 0,297
0,000 0,000 0,000 0,016 0,031 0,031 0,047 0,063 0,125 0,172 0,234 0,281
počet objektů aritmetický průměr 0,0016 1 000 0,0031 10 000 0,0047 20 000 0,0125 50 000 0,0218 80 000 0,0312 100 000 0,0453 150 000 0,0594 200 000 0,1203 400 000 0,1853 600 000 0,2375 800 000 0,2937 1 000 000
směrodatná odchylka 0,0048 0,0062 0,0072 0,0063 0,0075 0,0004 0,0048 0,0062 0,0072 0,0233 0,0118 0,0092
180
variační koeficient 3,0000 2,0013 1,5285 0,5012 0,3450 0,0128 0,1054 0,1046 0,0597 0,1257 0,0495 0,0315
5 shluků n 1 000 10 000 20 000 50 000 80 000 100 000 150 000 200 000 400 000 600 000 800 000 1 000 000
1.
2.
3.
4.
5.
6.
7.
8.
9.
10.
0,000 0,016 0,031 0,062 0,094 0,157 0,203 0,281 0,547 0,860 1,125 1,360
0,000 0,015 0,016 0,047 0,094 0,140 0,219 0,297 0,563 0,828 1,125 1,391
0,000 0,016 0,015 0,063 0,109 0,141 0,219 0,281 0,547 0,843 1,110 1,359
0,000 0,000 0,016 0,047 0,094 0,141 0,203 0,297 0,562 0,813 1,093 1,437
0,015 0,016 0,000 0,046 0,094 0,140 0,203 0,297 0,563 0,812 1,110 1,438
0,000 0,015 0,016 0,063 0,094 0,141 0,203 0,281 0,531 0,829 1,156 1,359
0,000 0,016 0,031 0,047 0,109 0,140 0,219 0,266 0,562 0,828 1,219 1,359
0,000 0,000 0,015 0,047 0,094 0,141 0,203 0,297 0,641 0,906 1,094 1,344
0,000 0,000 0,016 0,047 0,109 0,141 0,203 0,297 0,562 0,828 1,078 1,609
0,000 0,000 0,016 0,062 0,094 0,140 0,219 0,265 0,547 0,844 1,187 1,359
počet objektů aritmetický průměr 0,0015 1 000 0,0094 10 000 0,0172 20 000 0,0531 50 000 0,0985 80 000 0,1422 100 000 0,2094 150 000 0,2859 200 000 0,5625 400 000 0,8391 600 000 1,1297 800 000 1,4015 1 000 000
směrodatná odchylka 0,0045 0,0077 0,0083 0,0077 0,0069 0,0050 0,0078 0,0123 0,0281 0,0262 0,0425 0,0762
181
variační koeficient 3,0000 0,8174 0,4842 0,1448 0,0698 0,0349 0,0374 0,0431 0,0499 0,0312 0,0376 0,0543
10 shluků n 1 000 10 000 20 000 50 000 80 000 100 000 150 000 200 000 400 000 600 000 800 000 1 000 000
1.
2.
3.
4.
5.
6.
7.
8.
9.
10.
0,016 0,016 0,047 0,109 0,219 0,328 0,516 0,641 1,282 1,937 2,547 3,235
0,000 0,015 0,031 0,110 0,234 0,313 0,500 0,640 1,265 1,969 2,516 3,187
0,000 0,016 0,031 0,125 0,234 0,344 0,469 0,641 1,313 1,938 2,547 3,172
0,000 0,015 0,047 0,109 0,235 0,343 0,484 0,703 1,297 1,906 2,594 3,156
0,000 0,016 0,031 0,125 0,218 0,329 0,469 0,672 1,281 1,985 2,563 3,328
0,000 0,016 0,031 0,125 0,235 0,328 0,469 0,641 1,250 1,922 2,547 3,172
0,016 0,015 0,047 0,110 0,234 0,328 0,484 0,640 1,359 1,890 2,531 3,156
0,000 0,016 0,032 0,109 0,235 0,312 0,485 0,657 1,313 1,938 2,625 3,235
0,000 0,031 0,031 0,109 0,234 0,328 0,562 0,718 1,281 1,906 2,562 3,218
0,000 0,016 0,031 0,125 0,219 0,329 0,469 0,625 1,281 1,953 2,578 3,188
počet objektů aritmetický průměr 0,0032 1 000 0,0172 10 000 0,0359 20 000 0,1156 50 000 0,2297 80 000 0,3282 100 000 0,4907 150 000 0,6578 200 000 1,2922 400 000 1,9344 600 000 2,5610 800 000 3,2047 1 000 000
směrodatná odchylka 0,0064 0,0046 0,0073 0,0077 0,0072 0,0098 0,0280 0,0290 0,0289 0,0281 0,0300 0,0497
182
variační koeficient 2,0000 0,2687 0,2026 0,0665 0,0315 0,0299 0,0570 0,0441 0,0224 0,0145 0,0117 0,0155
20 shluků n 1 000 10 000 20 000 50 000 80 000 100 000 150 000 200 000 400 000 600 000 800 000 1 000 000
1.
2.
3.
4.
5.
6.
7.
8.
9.
10.
0,015 0,031 0,078 0,235 0,484 0,718 0,922 1,391 2,750 4,125 5,579 6,859
0,000 0,047 0,062 0,250 0,469 0,782 0,906 1,391 2,703 4,094 5,609 6,859
0,016 0,031 0,062 0,234 0,594 0,718 0,984 1,562 2,844 4,172 5,484 6,875
0,000 0,031 0,157 0,250 0,578 0,672 0,922 1,391 2,719 4,125 5,422 7,078
0,000 0,032 0,062 0,250 0,562 0,703 0,922 1,343 2,750 4,172 5,516 6,891
0,047 0,031 0,078 0,250 0,547 0,719 1,000 1,422 2,797 4,156 5,469 6,797
0,000 0,031 0,078 0,250 0,547 0,688 1,031 1,422 2,734 4,078 5,562 6,875
0,015 0,031 0,079 0,234 0,547 0,703 1,078 1,360 2,797 4,359 5,453 6,906
0,000 0,032 0,062 0,250 0,578 0,734 1,063 1,375 2,750 4,063 5,500 6,828
0,000 0,031 0,078 0,250 0,578 0,688 1,062 1,390 2,797 4,172 5,485 6,875
počet objektů aritmetický průměr 0,0093 1 000 0,0328 10 000 0,0796 20 000 0,2453 50 000 0,5484 80 000 0,7125 100 000 0,9890 150 000 1,4047 200 000 2,7641 400 000 4,1516 600 000 5,5079 800 000 6,8843 1 000 000
směrodatná odchylka 0,0143 0,0047 0,0269 0,0072 0,0392 0,0290 0,0640 0,0573 0,0411 0,0789 0,0560 0,0710
183
variační koeficient 1,5396 0,1448 0,3380 0,0293 0,0714 0,0407 0,0647 0,0408 0,0149 0,0190 0,0102 0,0103
Čas algoritmu k -průměrů ++ v závislosti počtu shluků a počtu dimenzí 2 shluky d 2 4 6 10 16 24 32 44 64 100
1.
2.
3.
4.
5.
6.
7.
8.
9.
10.
0,031 0,063 0,062 0,110 0,172 0,235 0,328 0,422 0,625 0,985
0,031 0,047 0,063 0,109 0,156 0,250 0,312 0,453 0,656 0,984
0,016 0,047 0,078 0,109 0,172 0,234 0,328 0,531 0,625 0,985
0,031 0,046 0,062 0,110 0,187 0,250 0,313 0,453 0,641 1,031
0,032 0,063 0,063 0,109 0,172 0,234 0,328 0,422 0,625 0,984
0,031 0,047 0,078 0,110 0,157 0,250 0,328 0,438 0,609 0,985
0,015 0,062 0,062 0,109 0,171 0,235 0,313 0,437 0,641 0,953
0,032 0,047 0,079 0,094 0,157 0,234 0,328 0,422 0,703 0,968
0,031 0,047 0,062 0,094 0,172 0,234 0,312 0,438 0,625 0,985
0,016 0,063 0,063 0,109 0,156 0,235 0,313 0,437 0,625 0,984
počet dimenzí 2 4 6 10 16 24 32 44 64 100
aritmetický průměr 0,0266 0,0532 0,0672 0,1063 0,1672 0,2391 0,3203 0,4453 0,6375 0,9844
směrodatná odchylka 0,0072 0,0078 0,0073 0,0062 0,0098 0,0071 0,0077 0,0306 0,0250 0,0185
184
variační koeficient 0,2696 0,1468 0,1087 0,0580 0,0585 0,0299 0,0241 0,0686 0,0392 0,0188
5 shluků d 2 4 6 10 16 24 32 44 64 100
1.
2.
3.
4.
5.
6.
7.
8.
9.
10.
0,125 0,296 0,281 0,454 0,750 1,062 1,297 1,781 2,562 3,953
0,125 0,204 0,297 0,453 0,719 1,000 1,313 1,750 2,563 4,016
0,125 0,234 0,282 0,453 0,687 1,063 1,312 1,735 2,500 3,969
0,125 0,219 0,296 0,454 0,672 0,984 1,297 1,829 2,594 4,000
0,125 0,218 0,297 0,468 0,672 1,000 1,360 1,765 2,531 3,890
0,109 0,219 0,375 0,469 0,703 1,078 1,328 1,766 2,562 3,907
0,125 0,219 0,297 0,453 0,703 0,969 1,281 1,781 2,641 3,984
0,125 0,234 0,297 0,453 0,672 1,000 1,312 1,813 2,594 3,953
0,109 0,219 0,297 0,438 0,687 1,063 1,329 1,750 2,562 4,000
0,125 0,219 0,297 0,437 0,672 1,187 1,281 1,875 2,735 3,969
počet dimenzí 2 4 6 10 16 24 32 44 64 100
aritmetický průměr 0,1218 0,2281 0,3016 0,4532 0,6937 1,0406 1,3110 1,7845 2,5844 3,9641
směrodatná odchylka 0,0064 0,0240 0,0252 0,0098 0,0244 0,0613 0,0228 0,0407 0,0616 0,0384
185
variační koeficient 0,0525 0,1054 0,0836 0,0217 0,0352 0,0589 0,0174 0,0228 0,0239 0,0097
10 shluků d 2 4 6 10 16 24 32 44 64 100
1.
2.
3.
4.
5.
6.
7.
8.
9.
10.
0,282 0,515 0,672 1,063 1,860 2,281 2,985 3,500 5,828 9,000
0,281 0,500 0,672 1,094 1,531 2,235 2,953 4,000 5,688 8,969
0,359 0,500 0,765 1,031 1,562 2,203 3,000 3,937 5,765 8,906
0,281 0,500 0,703 1,062 1,516 2,312 2,906 4,094 5,704 8,969
0,282 0,500 0,657 1,016 1,563 2,250 3,031 3,968 5,828 8,828
0,281 0,500 0,671 1,000 1,531 2,235 2,969 3,953 5,765 9,000
0,281 0,485 0,672 1,062 1,531 2,250 2,953 4,047 5,703 9,047
0,281 0,485 0,703 1,032 1,609 2,234 3,016 3,985 5,735 9,140
0,313 0,500 0,672 1,015 1,547 2,297 3,000 4,000 5,812 8,938
0,328 0,515 0,672 1,032 1,532 2,234 2,953 4,015 5,875 8,968
počet dimenzí 2 4 6 10 16 24 32 44 64 100
aritmetický průměr 0,2969 0,5000 0,6859 1,0407 1,5782 2,2531 2,9766 3,9499 5,7703 8,9765
směrodatná odchylka 0,0261 0,0095 0,0298 0,0272 0,0972 0,0318 0,0352 0,1561 0,0603 0,0784
186
variační koeficient 0,0878 0,0190 0,0434 0,0262 0,0616 0,0141 0,0118 0,0395 0,0104 0,0087
20 shluků 1. d
2.
3.
4.
5.
6.
7.
8.
9.
10.
2 0,688 0,703 0,703 0,719 0,687 0,688 0,703 0,703 0,703 0,687 4 1,079 1,031 1,125 1,078 1,094 1,062 1,078 1,063 1,078 1,062 6 1,438 1,687 1,422 1,453 1,422 1,469 1,422 1,422 1,484 1,453 10 2,250 2,171 2,188 2,172 2,140 2,297 2,141 2,172 2,172 2,234 16 3,296 3,360 3,265 3,250 3,313 3,250 3,359 3,297 3,281 3,282 24 4,766 4,781 4,781 4,813 4,781 4,813 4,797 4,968 4,735 4,812 32 6,438 6,187 6,328 6,235 6,218 6,250 6,313 6,265 6,360 6,406 44 8,391 8,562 8,516 8,516 8,500 8,515 8,578 8,532 8,531 8,484 64 12,391 12,109 12,266 12,250 12,297 12,109 12,141 12,265 12,235 12,203 100 18,985 18,547 18,718 18,516 18,578 18,875 18,625 18,641 18,797 18,672 počet dimenzí 2 4 6 10 16 24 32 44 64 100
aritmetický průměr 0,6984 1,0750 1,4672 2,1937 3,2953 4,8047 6,3000 8,5125 12,2266 18,6954
směrodatná odchylka 0,0100 0,0231 0,0762 0,0480 0,0374 0,0591 0,0789 0,0482 0,0844 0,1426
187
variační koeficient 0,0144 0,0215 0,0519 0,0219 0,0113 0,0123 0,0125 0,0057 0,0069 0,0076
Příloha 8: Sledování časů zpracování filtrovacího a modifikovaného filtrovacího algoritmu
Filtrovací algoritmus - čas na vytvoření mrkd-stromu v závislosti na počtu dimenzí d počet dimenzí 1. 2. 3. 4. 5. 6. 7. 8. 9. 10. aritm. průměr směr. odchylka var. koeficient
2 37,721 37,419 37,531 37,500 37,609 37,682 37,844 37,350 37,581 37,703 37,5940 0,1420 0,0038
4 38,122 39,422 38,156 38,962 38,917 38,953 38,711 38,871 38,982 39,804 38,8900 0,4793 0,0123
6 40,012 40,125 41,013 40,438 40,106 41,021 40,293 40,172 39,255 40,375 40,2810 0,4805 0,0119
10 42,828 41,978 42,843 42,983 42,824 42,931 45,491 43,361 43,132 45,849 43,4220 1,1757 0,0271
počet dimenzí 1. 2. 3. 4. 5. 6. 7. 8. 9. 10. aritm. průměr směr. odchylka var. koeficient
24 53,823 52,784 52,651 52,541 52,953 53,843 53,278 53,062 53,596 54,589 53,3120 0,6130 0,0115
32 57,963 57,924 58,459 58,688 58,485 59,427 58,536 58,857 58,672 58,769 58,5780 0,4107 0,0070
44 66,235 71,406 65,541 69,093 68,396 69,259 71,617 67,597 69,762 68,594 68,7500 1,8649 0,0271
64 90,916 87,721 89,813 88,781 89,538 88,982 89,957 88,675 90,624 87,963 89,2970 1,0079 0,0113
188
16 47,675 47,269 46,376 47,012 48,060 47,343 48,116 47,159 47,659 48,171 47,4840 0,5378 0,0113 100 108,701 112,751 111,926 112,362 109,017 112,034 112,016 113,063 109,042 110,188 111,1100 1,6039 0,0144
MFA - čas na vytvoření mrkd-stromu v závislosti na počtu dimenzí d počet dimenzí 1. 2. 3. 4. 5. 6. 7. 8. 9. 10. aritm. průměr směr. odchylka var. koeficient
2 47,134 47,141 47,685 47,049 46,985 47,251 46,425 46,997 47,462 47,281 47,1410 0,3157 0,0067
4 49,531 48,511 47,986 48,606 47,894 47,826 47,945 48,614 48,531 48,616 48,4060 0,4906 0,0101
6 52,890 51,685 51,281 50,974 49,925 50,868 50,684 50,891 49,974 50,678 50,9850 0,8099 0,0159
10 56,263 55,047 57,042 54,165 54,251 55,154 55,263 54,529 54,109 54,647 55,0470 0,9076 0,0165
16 58,734 59,425 58,987 60,354 58,687 58,263 58,464 57,921 58,752 57,753 58,7340 0,7132 0,0121
počet dimenzí 1. 2. 3. 4. 5. 6. 7. 8. 9. 10. aritm. průměr směr. odchylka var. koeficient
24 63,501 65,218 64,476 64,127 63,395 62,096 63,764 61,321 63,194 64,218 63,5310 1,0815 0,0170
32 71,493 73,798 71,563 70,968 71,571 70,805 71,682 70,968 71,915 70,867 71,5630 0,8310 0,0116
44 83,325 81,647 83,458 82,396 84,094 82,459 83,296 81,163 82,874 82,158 82,6870 0,8490 0,0103
64 96,453 94,126 96,623 98,061 96,386 98,061 96,213 97,163 96,603 97,031 96,6720 1,0516 0,0109
100 113,041 110,821 114,121 116,456 114,522 112,026 113,364 111,943 116,162 112,854 113,5310 1,7224 0,0152
189
Srovnání první fáze filtrovacího a modifikovaného filtrovacího algoritmu počet dimenzí 2 4 6 10 16 24 32 44 64 100
čas tvorby stromu s dělením čas tvorby stromu s dělením na úrovni mediánu [s] na úrovni průměru [s] 37,594 47,141 38,890 48,406 40,281 50,985 43,422 55,047 47,454 58,734 53,312 63,531 58,578 71,563 68,750 82,687 89,297 96,672 111,1100 113,5310
Filtrovací algoritmus - čas vlastního shlukování v závislosti na počtu objektů n počet objektů 1. 2. 3. 4. 5. 6. 7. 8. 9. 10. aritm. průměr směr. odchylka var. koeficient
100 0,672 0,531 0,562 0,532 0,531 0,547 0,547 0,516 0,516 0,515 0,5469 0,0442 0,0808
1 000 1,290 1,268 1,263 1,275 1,197 1,275 1,297 1,324 1,264 1,197 1,2650 0,0382 0,0302
100 000 250 000 500 000 1 000 000 15,557 25,031 35,344 61,145 16,072 24,513 35,531 61,037 16,015 25,093 35,162 61,319 16,141 25,016 35,375 61,108 16,125 24,734 35,532 61,216 16,184 24,922 35,375 61,315 16,119 24,891 35,625 61,053 16,132 24,875 35,428 60,832 16,134 25,063 35,344 61,123 16,141 24,922 35,344 61,102 16,0620 24,9060 35,4060 61,1250 0,1738 0,1652 0,1237 0,1349 0,0108 0,0066 0,0035 0,0022
Srovnání první fáze filtrovacího a modifikovaného filtrovacího algoritmu počet objektů 1 000 10 000 100 000 250 000 500 000 750 000 1 000 000
čas tvorby stromu s dělením čas tvorby stromu s dělením na úrovni mediánu [s] na úrovni průměru [s] 0,469 0,484 4,344 4,860 44,141 50,937 93,141 133,656 212,531 251,578 315,171 379,265 407,532 525,625
190
Filtrovací algoritmus - čas na vytvoření mrkd-stromu v závislosti na počtu objektů n počet objektů 1. 2. 3. 4. 5. 6. 7. 8. 9. 10. aritm. průměr směr. odchylka var. koeficient
100 0,0385 0,0424 0,0495 0,0487 0,0479 0,0452 0,0486 0,0496 0,0460 0,0486 0,0465 0,0034 0,0736
1 000 0,4024 0,4461 0,4223 0,4264 0,4193 0,4321 0,4396 0,4184 0,4302 0,4582 0,4295 0,0149 0,0348
10 000 3,8524 4,0395 4,1340 4,1086 3,9250 4,0782 4,1531 3,9504 3,9561 4,0377 4,0235 0,0941 0,0234
100 000 40,4135 40,8963 40,4785 40,2375 40,7856 40,4589 40,4568 40,4853 40,7631 40,3395 40,5315 0,2011 0,0050
počet objektů 1. 2. 3. 4. 5. 6. 7. 8. 9. 10. aritm. průměr směr. odchylka var. koeficient
250 000 90,4586 91,7856 93,4861 94,5935 94,0597 93,9648 92,4581 93,8562 92,4751 93,2523 93,0390 1,1880 0,0128
500 000 200,2584 199,2581 198,2365 200,3521 201,5681 202,6934 199,2522 200,2542 200,0364 198,4010 200,0310 1,2937 0,006468
750 000 299,2540 300,3680 301,4520 300,4520 301,0250 299,4750 299,4560 300,0250 299,4570 300,2060 300,1170 0,6948 0,0023
1 000 000 418,0250 418,9870 417,7860 418,5860 418,7820 418,9620 417,9250 418,9240 418,5280 418,3450 418,4850 0,4250 0,0010
Filtrovací algoritmus počet objektů 100 1 000 100 000 250 000 500 000 1 000 000
čas pro čas vlastního celkový čas [s] vytvoření stromu [s] shlukování [s] 0,0465 0,547 0,2965 0,4295 1,265 1,6945 40,5315 16,062 56,5935 93,0390 24,906 117,945 200,0310 35,406 235,437 418,4850 61,125 479,61
191
MFA - čas na vytvoření mrkd-stromu v závislosti na počtu objektů n 1 000 10 000 100 000 n 1. 0,465 4,452 50,457 2. 0,412 4,932 50,925 3. 0,493 4,796 51,054 4. 0,501 4,892 50,994 5. 0,487 4,986 51,241 6. 0,493 4,905 50,897 7. 0,484 4,924 51,125 8. 0,489 4,917 50,572 9. 0,492 4,895 50,998 10. 0,524 4,901 51,107 aritm. průměr 0,4840 4,8600 50,9370 směr. odchylka 0,0277 0,1432 0,2330 var. koeficient 0,0573 0,0295 0,0046
250 000 133,015 133,286 133,961 133,493 133,852 133,483 133,895 133,899 133,783 133,893
500 000 250,458 251,485 251,028 252,128 251,156 251,864 251,925 252,263 251,984 251,489
750 000 1 000 000 377,589 520,758 379,486 525,945 378,896 527,025 380,027 526,457 381,253 527,029 379,924 525,752 379,046 525,962 378,457 526,892 379,193 525,425 378,779 525,005
133,6560 251,5780 379,2650 525,6250 0,3040
0,5376
0,9436
1,7485
0,0023
0,0021
0,0025
0,0033
Časy druhé fáze filtrovacího algoritmu v závislosti na struktuře souboru inicializační centra soubor 1. 2. 3. 4. 5. 6. 7. 8. 9. 10. aritm. průměr směr. odchylka var. koeficient
pomocí k-průměrů++ usebe 1,203 1,094 1,094 1,093 1,094 1,094 1,172 1,094 1,093 1,094 1,1125 0,0381 0,0343
odsebe 0,469 0,406 0,484 0,438 0,422 0,406 0,422 0,406 0,406 0,407 0,4266 0,0271 0,0635
odsebeA 0,422 0,359 0,360 0,344 0,359 0,422 0,390 0,360 0,359 0,391 0,3766 0,0266 0,0705
192
prvních k objektů usebe 1,406 1,438 1,390 1,438 1,375 1,422 1,390 1,375 1,422 1,375 1,4031 0,0242 0,0173
odsebe 1,250 1,125 1,125 1,094 1,172 1,218 1,125 1,110 1,172 1,093 1,1484 0,0504 0,0439
odsebeA 0,782 0,765 0,813 0,750 0,734 0,750 0,766 0,734 0,735 0,734 0,7563 0,0246 0,0326
Příloha 9: Soubor IRIS – grafy „scatterplot“, odlehlé objekty (vytvořeno v STATISTICA 6.0)
Čísly jsou v jednotlivých grafech „scatterplot“ označeny objekty, jenž byly některým z použitých algoritmů identifikovány jako odlehlé. Objekty identifikované za odlehlé pomocí různých algoritmů algoritmus
identifikovaný odlehlý objekt
MFA
1, 5, 8, 10, 11
dvoufázový algoritmus
1, 3, 4, 6, 7, 8, 9, 12, 13
k-průměrů++, parametr k = 10, shluk obsahující 3 objekty k-průměrů++, parametr k = 15, shluky obsahující 1-2 objekty k-průměrů++, parametr k = 20, shluky obsahující 1 objekt k-průměrů++, parametr k = 20, shluky obsahující 1-2 objekty
4, 5, 8 2, 3, 4, 5, 6, 7, 8, 9 1, 2, 3, 4, 5, 6, 7, 8, 9 1, 3, 4
Scatterplot (iris_data-upravena 5v*151c) Var2 = 3,3886-0,0573*x 4,6 11
4,4 4,2 4,0
5
3,8
8
4
3,6 Var2
3,4 3,2 29
3,0
7
2,8 2,6 2,4
3
13
10
6
12
1
2,2 2,0 1,8 4,0
4,5
5,0
5,5
6,0
6,5 Var1
193
7,0
7,5
8,0
8,5
Scatterplot (iris_data-upravena 5v*151c) Var3 = -7,0954+1,8575*x 8 6 7 2 5
7 6
Var3
12
13
5
4
9
8
3
4 10
3 2
11
1 1 0 4,0
4,5
5,0
5,5
6,0
6,5
7,0
7,5
8,0
8,5
Var1
Scatterplot (iris_data-upravena 5v*151c) Var4 = -3,2063+0,7538*x 3,0 4
2,5
2 2,0
9 6 5 7
8
12
3 13
Var4
1,5 10 1,0
0,5
11
1
0,0
-0,5 4,0
4,5
5,0
5,5
6,0
6,5 Var1
194
7,0
7,5
8,0
8,5
Scatterplot (iris_data-upravena 5v*151c) Var1 = 6,4812-0,2089*x 8,5 8,0
6
7
8 5
9 2
7,5
4
Var1
7,0
12
6,5 13 6,0
11
5,5 10 3
5,0 1
4,5 4,0 1,8
2,0
2,2
2,4
2,6
2,8
3,0
3,2
3,4
3,6
3,8
4,0
4,2
4,4
4,6
Var2
Scatterplot (iris_data-upravena 5v*151c) Var3 = 8,9847-1,7112*x 8 6
7 12
6
Var3
5
7
2 9
4
5 8
13
3
4 10
3 2
11
1 1 0 1,8
2,0
2,2
2,4
2,6
2,8
3,0
3,2 Var2
195
3,4
3,6
3,8
4,0
4,2
4,4
4,6
Scatterplot (iris_data-upravena 5v*151c) Var4 = 3,1152-0,6275*x 4
2,6 2,4
6
9
2,2 7
2,0
5
2
8
12 3
1,8
Var4
1,6 13
1,4 1,2
10
1,0 0,8 0,6 0,4
11
1
0,2 0,0 1,8
2,0
2,2
2,4
2,6
2,8
3,0
3,2
3,4
3,6
3,8
4,0
4,2
4,4
4,6
Var2
Scatterplot (iris_data-upravena 5v*151c) 8,5 8
8,0 9
5 6 7 2
7,5 4 7,0
Var1
12 6,5 13 6,0 11 5,5 10 3
5,0 1
4,5 4,0 0
1
2
3
4 Var3
196
5
6
7
8
Scatterplot (iris_data-upravena 5v*151c) 4,6 11
4,4 4,2 4,0
8
3,8
5
4
3,6
Var2
3,4 3,2 9
3,0
2 7
2,8 2,6
10
2,4
13 12
3
6
1
2,2 2,0 1,8 0
1
2
3
4
5
6
7
8
Var3
Scatterplot (iris_data-upravena 5v*151c) 2,8 2,6
4
2,4
9
2,2 2,0 1,8
5 2 8 7
6
12
3
Var4
1,6 13
1,4 1,2
10
1,0 0,8 0,6 0,4
1
11
0,2 0,0 -0,2 0
1
2
3
4 Var3
197
5
6
7
8
Scatterplot (iris_data-upravena 5v*151c) 8,5 8 7
8,0
2
5
6 9
7,5 4 7,0
Var1
12 6,5 13 6,0 11 5,5 10 3
5,0 1
4,5 4,0 0,0
0,2
0,4
0,6
0,8
1,0
1,2
1,4
1,6
1,8
2,0
2,2
8
5
2,4
2,6
Var4
Scatterplot (iris_data-upravena 5v*151c) Var2 = 3,2968-0,2026*x 4,6 11
4,4 4,2 4,0 3,8
4
3,6 Var2
3,4 3,2 2
3,0
9
7
2,8 2,6
13
10
2,4
6
3 12
1
2,2 2,0 1,8 0,0
0,2
0,4
0,6
0,8
1,0
1,2
1,4
Var4
198
1,6
1,8
2,0
2,2
2,4
2,6
Scatterplot (iris_data-upravena 5v*151c) 8
7
7 8
6
5
6 9
12
13
5 Var3
2
4
3
4 10
3
2 1
11
1
0 0,0
0,2
0,4
0,6
0,8
1,0
1,2
1,4
Var4
199
1,6
1,8
2,0
2,2
2,4
2,6
Příloha 10: Soubor IRIS – grafy „scatterplot“, inicializační centra (vytvořeno v STATISTICA 6.0)
V grafech „scatterplot“ jsou písmenem A označena inicializační centra získaná výběrem prvních tří objektů, písmenem B inicializační centra získaná pomocí algoritmu k-průměrů++ a písmenem C inicializační centra získaná algoritmem BIRCH k-průměrů. Scatterplot (iris_data-upravena 5v*154c) Var2 = 3,4015-0,0593*x 4,4 4,2 4,0 3,8 3,6
BA
Var2
3,4 A
3,2 3,0
C A
B B
2,8 2,6
C
C
2,4 2,2 2,0 4,3
4,6
4,9
5,2
5,5
5,8
6,1
6,4
6,7
7,0
7,3
7,6
7,9
Var1 Scatterplot (iris_data-upravena 5v*154c) Var3 = -7,1379+1,8645*x
C 6,6 B
6,0 5,4
Var3
4,8
C
B
4,2 3,6 3,0
1,6
A
C A BA
1,0
4,3
4,6
4,9
5,2
5,5
5,8
6,1
6,4
Var1
200
6,7
7,0
7,3
7,6
7,9
Scatterplot (iris_data-upravena 5v*154c) Var4 = -3,2283+0,7576*x
2,5
C
2,2
B
1,9
C
Var4
1,6
B
1,3 1,0
0,4
A
0,1
4,3
4,6
A C
B A
4,9
5,2
5,5
5,8
6,1
6,4
6,7
7,0
7,3
7,6
7,9
Var1
Scatterplot (iris_data-upravena 5v*154c) Var1 = 6,5112-0,2179*x
7,9
C
7,6 7,3 B
7,0
Var1
6,7 6,4 6,1
B
5,8 5,5 5,2
C
4,9
BA
A C A
4,6 4,3 2,0
2,2
2,4
2,6
2,8
3,0
3,2 Var2
201
3,4
3,6
3,8
4,0
4,2
4,4
Scatterplot (iris_data-upravena 5v*154c) Var3 = 9,054-1,7325*x
C 6,6 B
6,0 5,4
Var3
4,8
C
B
4,2 3,6 3,0
A C A
1,6
BA
1,0
2,0
2,2
2,4
2,6
2,8
3,0
3,2
3,4
3,6
3,8
4,0
4,2
4,4
3,8
4,0
4,2
4,4
Var2
Scatterplot (iris_data-upravena 5v*154c) Var4 = 3,1443-0,6365*x 2,4
C
2,2
B
2,0 1,8
C
Var4
1,6
B
1,4 1,2 1,0
0,5 0,3
A
0,1 2,0
2,2
2,4
2,6
2,8
A
C
3,0
3,2 Var2
202
B A
3,4
3,6
Scatterplot (iris_data-upravena 5v*154c) Var1 = 4,3063+0,4092*x
7,9
C
7,6 7,3 B
7,0
Var1
6,7 6,4 6,1
B
5,8 5,5 AB AC A
5,2 4,9
C
4,6 4,3 1,0
1,6
3,0
3,6
4,2
4,8
5,4
6,0
6,6
Var3
Scatterplot (iris_data-upravena 5v*154c) 4,4 4,2 4,0 3,8 3,6
AB
Var2
3,4 A
3,2
C A
3,0
B
2,8
B
2,6
C
C
2,4 2,2 2,0 1,0
1,6
3,0
3,6
4,2 Var3
203
4,8
5,4
6,0
6,6
Scatterplot (iris_data-upravena 5v*154c)
2,5 C 2,2
B
2,0 1,8
C
Var4
1,6
B
1,4 1,2 1,0
0,6 B AA C
0,3 0,1
1,0
1,6
3,0
3,6
4,2
4,8
5,4
6,0
6,6
Var3
Scatterplot (iris_data-upravena 5v*154c)
7,9
C
7,6 7,3 B
7,0
Var1
6,7 6,4 6,1
B
5,8 5,5 5,2 4,9
AB C A A
C
4,6 4,3 0,1
0,3
0,5
1,0
1,2
1,4
Var4
204
1,6
1,8
2,0
2,2
2,4
Scatterplot (iris_data-upravena 5v*154c) 4,4 4,2 4,0 3,8 3,6
AB
Var2
3,4 3,2
C
3,0
A
B
A B
2,8 2,6
C
C
2,4 2,2 2,0 0,1
0,3
0,5
1,0
1,2
1,4
1,6
1,8
2,0
2,2
2,4
Var4
Scatterplot (iris_data-upravena 5v*154c)
C 6,6 6,0
B
5,4
Var3
4,8
C
B
4,2 3,6 3,0
1,6
C AB A
1,0
0,1
0,3
0,5
1,0
1,2
1,4
Var4
205
1,6
1,8
2,0
2,2
2,4