ISIS - Vysoká škola ekonomická v Praze

Transkript

ISIS - Vysoká škola ekonomická v Praze
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
pp
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 ) 
2xj  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
 Dx, m(x) ,
xX
(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)
xX
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)
xX
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 i1
 n  n  1
c
c


nc
nc
2
2
1
2


  x i  x i 2

   i 1 i1
 n  n  1

c
c




nc
nc







1
2
 nc nc d
  xij  xij 2
 i 1 i1 j 1

nc  nc  1



 nc nc d 2
  xij  2 xij xij  xij 2
 i 1 i1 j 1

nc  nc  1




1
2


 



nc
d
 d nc 2
 d nc 2
 nc
  xij

x
x


  ij  ij   xij
 j 1 i 1
j 1  i 1
i  1
  j 1 i1

 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  xij  xi2j

 i 1 i n1 1 j 1

 
n1  n2







n1  n2
d  n1
 n1 d 2
 d n1  n2 2


   xij

x
x
x




ij
i
j
ij
 i 1

 

j
i
n
1
1



i 1 j 1
1
  j 1 in1 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 i1
 n  n   n  n  1 
2
1
2
 1



n1  n2 n1  n2
1
2
 n1  n2 n1  n2 d 2
    xij  2  xij  xij  xi2j
 i 1 i1 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
 i1 




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

xij   xt3 j     xt3 j 



d n1  n2


j 1 i  n 1
t3  n1 1
  j 1  t3  n1 1  
   xi2j  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 xCl
(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 xCl
2
2

d
1
2
  x j  clj  , l  1, ..., k ,
nl xCl 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 xCl
(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 i1
(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)
xX
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  ,
xX

(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 
xX
 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  .

xX 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  .
xX

xX 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  2x   ai  a1 ,
i 2
m
2
i 3
i 1
I3 má funkce g(x) tvar g 3 ( x)   m  4x   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  2l  1x   ai   ai ,
což je lineární funkce se směrnicí  m  2l  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  2l  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  2l  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  .
xX 1 j  d

xX

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)
xX
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)
xX
2
2
 xc
xCl
k
2
l 2
   x  cl
l 1 xCl
, 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 xX, 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)
xCl
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
xCl
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
xX 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 , vi1 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, vV. Položme EG(v) = {eE; ve},
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í


eE ( S )

 w(e)  min   w(e); S je kostra grafu G  .
eE (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

Podobné dokumenty

Hodnotenie genetických zdrojov rastlín pre výživu a

Hodnotenie genetických zdrojov rastlín pre výživu a Obsah Benediková, D.; Benková, M.; Žáková, M.;Hauptvogel, P.: Realizácia Národného programu ochrany genetických zdrojov rastlín v 7. fáze ECPGR........................................................

Více

Použití stromů ve statistice - Algoritmus BIRCH a jeho varianty pro

Použití stromů ve statistice - Algoritmus BIRCH a jeho varianty pro Obr. 3 Ukázka dělení prostoru datových bodů na hyperkvádry pomocí nadrovin pro d = 3 Použití mrkd-stromů ve shlukové analýze Myšlenka využití mrkd-stromů ve shlukové analýze se objevuje v [6]. Zde ...

Více

Untitled

Untitled a dává mu určitou strukturu a řád.

Více

Stáhnout učebnici

Stáhnout učebnici Klasickým příkladem je provázanost analýzy hlavních komponent s parametrickou kovariancí nebo korelací, kdy přítomnost odlehlé hodnoty vede k vysoké hodnotě korelace a její významnosti, i když zbýv...

Více

Knocking from Highlands

Knocking from Highlands ] GiYQRUR]HEUDQpNRPSLODFHE\ODMHQQD SURPRDOEXMH%VWUDQRX0&VLQJOXDNRQHþQ DE\O\ Y\GiQ\MHQQD(3  3URWHOHYL]QtVHULiO6RSUDQRVQDKUiOY]SRPtQNXQDPODGiOpWDStVQLþN...

Více

E-Book. E-Kniha. Elektronická kniha.

E-Book. E-Kniha. Elektronická kniha. číst sekvenčně, častěji však – a to je typické – otevíráme knihu podle obsahu nebo podle indexu na určité straně, která obsahuje určitou konkrétní informaci, vysvětlení, rozbor, o který nám v konkr...

Více

Rozhodovací stromy - Algoritmus BIRCH a jeho varianty pro

Rozhodovací stromy - Algoritmus BIRCH a jeho varianty pro Algoritmus poprvé popsali jeho autoři Breiman, Freidman, Olshen a Stone v roce 1984 ve článku „Classification and Regression trees“. Algoritmus je použitelný v případě, že máme jednu nebo více nezá...

Více

08.11.2006 Lenka Reinerová dostane Velký kříž za zásluhy [pdf

08.11.2006 Lenka Reinerová dostane Velký kříž za zásluhy [pdf BOTSCHAFT DER BUNDESREPUBLIK DEUTSCHLAND IN DER TSCHECHISCHEN REPUBLIK VELVYSLANECTVÍ SRN V ýESKÉ REPUBLICE

Více

Vítám vás na veřejné hodině Atanští Tvorové Téma dnešní hodiny

Vítám vás na veřejné hodině Atanští Tvorové Téma dnešní hodiny (šepot) Claire Salveguart Walker prohlásila: "To závisí na počtu rybiček, přece pět rybek nenacpu do malého kruhového akvária. Velikostí je moho je jen na nás pro kterou se rozhodneme ale k tomu ja...

Více