Klaszterezés Alapok A hasonlóság és távolság tulajdonságai

Hasonló dokumentumok
MISKOLCI EGYETEM GÉPÉSZMÉRNÖKI ÉS INFORMATIKAI KAR

Klaszterezés. Kovács Máté március 22. BME. Kovács Máté (BME) Klaszterezés március / 37

Regresszió. Csorba János. Nagyméretű adathalmazok kezelése március 31.

Vektorterek. =a gyakorlatokon megoldásra ajánlott

Gauss-Jordan módszer Legkisebb négyzetek módszere, egyenes LNM, polinom LNM, függvény. Lineáris algebra numerikus módszerei

Szinguláris érték felbontás Singular Value Decomposition

Saj at ert ek-probl em ak febru ar 26.

Szinguláris értékek. Wettl Ferenc április 3. Wettl Ferenc Szinguláris értékek április 3. 1 / 28

Adatbányászati szemelvények MapReduce környezetben

Gyakorló feladatok adatbányászati technikák tantárgyhoz

Kvadratikus alakok és euklideszi terek (előadásvázlat, október 5.) Maróti Miklós, Kátai-Urbán Kamilla

Hadamard-mátrixok Előadó: Hajnal Péter február 23.

Szinguláris értékek. Wettl Ferenc április 12. Wettl Ferenc Szinguláris értékek április / 35

Vektorok, mátrixok, lineáris egyenletrendszerek

A mérési eredmény megadása

Matematika (mesterképzés)

26. MINIMÁLIS KÖLTSÉGŰ UTAK MINDEN CSÚCSPÁRRA

II. Két speciális Fibonacci sorozat, szinguláris elemek, természetes indexelés

6. gyakorlat. Gelle Kitti. Csendes Tibor Somogyi Viktor. London András. jegyzetei alapján

Miskolci Egyetem Gazdaságtudományi Kar Üzleti Információgazdálkodási és Módszertani Intézet

Feladatok a Gazdasági matematika II. tárgy gyakorlataihoz

Közösség detektálás gráfokban

LINEÁRIS ALGEBRA. matematika alapszak. Euklideszi terek. SZTE Bolyai Intézet, őszi félév. Euklideszi terek LINEÁRIS ALGEBRA 1 / 40

Lin.Alg.Zh.1 feladatok

Műveletek mátrixokkal. Kalkulus. 2018/2019 ősz

Principal Component Analysis

7. Régió alapú szegmentálás

Gauss-eliminációval, Cholesky felbontás, QR felbontás

3. Fuzzy aritmetika. Gépi intelligencia I. Fodor János NIMGI1MIEM BMF NIK IMRI

Numerikus módszerek 1.

Véletlen jelenség: okok rendszere hozza létre - nem ismerhetjük mind, ezért sztochasztikus.

Funkcionálanalízis. n=1. n=1. x n y n. n=1

Általános algoritmustervezési módszerek

Lineáris algebra és a rang fogalma (el adásvázlat, szeptember 29.) Maróti Miklós

Függvények növekedési korlátainak jellemzése

1. Generátorrendszer. Házi feladat (fizikából tudjuk) Ha v és w nem párhuzamos síkvektorok, akkor generátorrendszert alkotnak a sík vektorainak

A szimplex algoritmus

Adatbányászat: Klaszterezés Haladó fogalmak és algoritmusok

1 Lebegőpontos számábrázolás

Gráfelmélet. I. Előadás jegyzet (2010.szeptember 9.) 1.A gráf fogalma

FEGYVERNEKI SÁNDOR, Valószínűség-sZÁMÍTÁs És MATEMATIKAI

Lin.Alg.Zh.1 feladatok

Adatbányászat. Klaszterezés Szociális hálózatok. Szegei Tudományegyetem. Lehetetlenségi tétel Hierarchikus eljárások Particionáló módszerek

17. előadás: Vektorok a térben

Adatelemzés és adatbányászat MSc

Miért fontos számunkra az előző gyakorlaton tárgyalt lineáris algebrai ismeretek

Determinánsok. A determináns fogalma olyan algebrai segédeszköz, amellyel. szolgáltat az előbbi kérdésekre, bár ez nem mindig hatékony.

Mindent olyan egyszerűvé kell tenni, amennyire csak lehet, de nem egyszerűbbé.

KOVÁCS BÉLA, MATEMATIKA I.

Adaptív dinamikus szegmentálás idősorok indexeléséhez

Gráfelmélet/Diszkrét Matematika MSc hallgatók számára. 13. Előadás

Numerikus módszerek I. zárthelyi dolgozat (2017/18. I., A. csoport) Megoldások

22. GRÁFOK ÁBRÁZOLÁSA

Numerikus módszerek beugró kérdések

Skalárszorzat, norma, szög, távolság. Dr. Takách Géza NyME FMK Informatikai Intézet takach/ 2005.

Érdekes informatika feladatok

0-49 pont: elégtelen, pont: elégséges, pont: közepes, pont: jó, pont: jeles

24. szakkör (Csoportelméleti alapfogalmak 3.)

9. Előadás. Megyesi László: Lineáris algebra, oldal. 9. előadás Mátrix inverze, Leontyev-modell

6. Előadás. Megyesi László: Lineáris algebra, oldal. 6. előadás Bázis, dimenzió

Összeállította: dr. Leitold Adrien egyetemi docens

15. LINEÁRIS EGYENLETRENDSZEREK

Alap-ötlet: Karl Friedrich Gauss ( ) valószínűségszámítási háttér: Andrej Markov ( )

1.1. Vektorok és operátorok mátrix formában

Matematikai alapok és valószínőségszámítás. Statisztikai becslés Statisztikák eloszlása

Lineáris algebra 2. Filip Ferdinánd december 7. siva.banki.hu/jegyzetek

2. előadás. Lineáris algebra numerikus módszerei. Mátrixok Mátrixműveletek Speciális mátrixok, vektorok Norma

Számelméleti alapfogalmak

Bevezetés az algebrába 2 Vektor- és mátrixnorma

Relációk Függvények. A diákon megjelenő szövegek és képek csak a szerző (Kocsis Imre, DE MFK) engedélyével használhatók fel!

9. Előadás. Megyesi László: Lineáris algebra, oldal. 9. előadás Mátrix inverze, mátrixegyenlet

Keresés képi jellemzők alapján. Dr. Balázs Péter SZTE, Képfeldolgozás és Számítógépes Grafika Tanszék

Fraktálok. Kontrakciók Affin leképezések. Czirbusz Sándor ELTE IK, Komputeralgebra Tanszék. TARTALOMJEGYZÉK Kontrakciók Affin transzformációk

A maximum likelihood becslésről

Vektorterek. Wettl Ferenc február 17. Wettl Ferenc Vektorterek február / 27

Amortizációs költségelemzés

Példa Hajtsuk végre az 1 pontból a Dijkstra algoritmust az alábbi gráfra. (A mátrixban a c i j érték az (i, j) él hossza, ha nincs él.

Diszkrét matematika I., 12. előadás Dr. Takách Géza NyME FMK Informatikai Intézet takach november 30.

Első zárthelyi dolgozat megoldásai biomatematikából * A verzió

Lineáris leképezések (előadásvázlat, szeptember 28.) Maróti Miklós, Kátai-Urbán Kamilla

1. feladatsor: Vektorterek, lineáris kombináció, mátrixok, determináns (megoldás)

MÉRÉSI EREDMÉNYEK PONTOSSÁGA, A HIBASZÁMÍTÁS ELEMEI

1. előadás: Halmazelmélet, számfogalom, teljes

Mindent olyan egyszerűvé kell tenni, amennyire csak lehet, de nem egyszerűbbé. (Albert Einstein) Halmazok 1

MBNK12: Permutációk (el adásvázlat, április 11.) Maróti Miklós

Felvételi tematika INFORMATIKA

1. előadás. Lineáris algebra numerikus módszerei. Hibaszámítás Számábrázolás Kerekítés, levágás Klasszikus hibaanalízis Abszolút hiba Relatív hiba

Keresztmetszet másodrendű nyomatékainak meghatározása

Permutációk véges halmazon (el adásvázlat, február 12.)

12. előadás. Egyenletrendszerek, mátrixok. Dr. Szörényi Miklós, Dr. Kallós Gábor

10. Előadás. 1. Feltétel nélküli optimalizálás: Az eljárás alapjai

Gauss-Seidel iteráció

I. VEKTOROK, MÁTRIXOK

1. Az euklideszi terek geometriája

Ellenőrző kérdések. 36. Ha t szintű indexet használunk, mennyi a keresési költség blokkműveletek számában mérve? (1 pont) log 2 (B(I (t) )) + t

0,424 0,576. f) P (X 2 = 3) g) P (X 3 = 1) h) P (X 4 = 1 vagy 2 X 2 = 2) i) P (X 7 = 3, X 4 = 1, X 2 = 2 X 0 = 2) j) P (X 7 = 3, X 4 = 1, X 2 = 2)

FEGYVERNEKI SÁNDOR, Valószínűség-sZÁMÍTÁs És MATEMATIKAI

1. Házi feladat. Határidő: I. Legyen f : R R, f(x) = x 2, valamint. d : R + 0 R+ 0

STATISZTIKA. A maradék független a kezelés és blokk hatástól. Maradékok leíró statisztikája. 4. A modell érvényességének ellenőrzése

út hosszát. Ha a két várost nem köti össze út, akkor legyen c ij = W, ahol W már az előzőekben is alkalmazott megfelelően nagy szám.

Átírás:

29. Klaszterezés A klaszterezés egy adathalmaz pontjainak, rekordjainak hasonlóság alapján való csoportosítását jelenti. A klaszterezés szinte minden nagyméretu adathalmaz leíró modellezésére alkalmas. A teljesség igénye nélkül néhány példa: csoportosíthatunk weboldalakat tartalmuk, webfelhasználókat böngészési szokásaik, kommunikációs és szociális hálózatok pontjait közösségeik, kémiai vegyületeket szerkezetük, géneket funkcióik, betegségeket tüneteik szerint. A klaszterezés feladatával eleinte a statisztikában kezdtek foglalkozni, majd az adatbányászat keretében az igen nagy méretu adathalmazok klaszterezésének kérdései kerültek az elotérbe. Így a klaszterezés az adatbányászat egyik legrégebbi és talán leggyakrabban alkalmazott része. A klaszterezés, illetve osztályozás során az adatpontokat diszjunkt csoportokba, a késobbiekben használt nevükön klaszterekbe, illetve osztályokba soroljuk, azaz particionáljuk az adathalmaz elemeit. Az klaszterezés célja, hogy az elemeknek egy olyan partícióját adjuk meg, amelyben a közös osztályba kerülo elempárok lényegesen hasonlóbbak egymáshoz, mint azok a pontpárok, melyek két különbözo osztályba sorolódtak. Klaszterezés során a megfelelo csoportok kialakítása nem egyértelmu feladat, hiszen a különbözo adatok eltéro jelentése és felhasználása miatt adathalmazonként más és más szempontok szerint kell csoportosítanunk. További nehézséget jelent, hogy egy n darab adatpontot tartalmazó adathalmaznak Bell-számnyi, O(e n lg n ) darab klaszterezése lehet, vagyis az adatpontok számában exponenciálisnál nagyobb méretu keresési térben kívánunk egy több szempontból is optimális klaszterezést megtalálni. A klaszterezéshez hasonló feladat az osztályozás. A klaszterezéstol az osztályozás feladatát az különbözteti meg, hogy az osztályozás felügyelt (supervised), a klaszterezés pedig felügyelet nélküli (unsupervised) csoportosítás. Osztályozás esetén a választható osztályok valamilyen ábrázolással, mintával vagy modellel leírva elore adottak. Klaszterezés esetén elozetesen megadott osztályok nincsenek, az adatok maguk alakítják ki a klasztereket, azok határait. Egy klaszterezési feladat megoldásához ismernünk kell a fellelheto algoritmusok lényeges tulajdonságait, illetve szükségünk van az eredményként kapott klaszterezés kiértékelésére, jóságának mérésére. Ezeket az alapveto elemeket tárgyalja a 29.2. fejezet. Mivel egy klaszterezés az adatpontok hasonlósági viszonyaiból indul ki, ezért az elso fontos lépés az adatpontok páronkénti hasonlóságát leheto legjobban megragadó hasonlósági függvény kiválasztása. A különféle adattípusokra leggyakrabban használt távolság és hasonlóság függvények leírása a 29.3. fejezetben található meg.

1396 29. Klaszterezés Nagy adathalmazok klaszterezése során gyakran találkozunk azzal a problémával, hogy az adatpontok távolságának, illetve hasonlóságának kiszámítása nem oldható meg elég gyorsan ahhoz, hogy az adott klaszterezo algoritmus elfogadható futási idoben véget érjen. Számos esetben e problémának az adatok sok (tízes nagyságrendnél nagyobb számú) attribútummal való jellemzése az oka. Ebben az esetben szoktuk az adatok dimenzióját nagynak tekinteni. A hasonlóság vagy távolság hatékony kiszámításának problémáját megoldhatja az adatok dimenzió-csökkentése, amely során az adathalmazt az adatpontok közötti hasonlósági viszonyokat a legkevésbé torzítva olyan formába alakítjuk, amelyen már hatékonyan tudjuk a kívánt klaszterezo algoritmust futtatni. A dimenzió-csökkentés két módszerérol olvashatunk a 29.4. fejezetben. A klaszterezo módszerek tárgyalása során bemutatunk három klaszterezési elvet és azok legjellemzobb algoritmusait. A particionáló algoritmusok (29.5. fejezet) és a hierarchikus módszerek (29.6. fejezet) a foleg a régebb óta ismert, de ma is gyakran használt módszereket képviselik, míg a suruség alapú eljárások (29.7. fejezet) az elmúlt évtized új elveire, eljárásaira mutatnak példát. 29.1. Alapok 29.1.1. A hasonlóság és távolság tulajdonságai A klaszterezés általunk használt modelljeiben minden egyes elempár hasonlósága vagy távolsága ismert, illetve kiszámítható. 29.1. deníció. Tetszoleges két x,y klaszterezendo elem esetén azok hasonlóságát s(x, y) jelöli. Feltesszük, hogy 0 s(x, y) 1 és s(x, y) = s(y, x) minden x, y pontpárra, valamint s(x, x) = 1 minden x adatpontra. Hasonlóság helyett többször az x, y pontok d(x, y)-vel jelölt távolságát fogjuk használni. 29.2. deníció. Egy d(x, y) függvény távolság ha teljesülnek rá a következo tulajdonságok: 1. minden x, y esetén 0 d(x, y) <, 2. minden x adatpontra d(x, x) = 0, 3. szimmetrikus, azaz minden x, y esetén d(x, y) = d(y, x). Idonként feltesszük, hogy d-re teljesül a háromszög-egyenlotlenség. 29.3. deníció. Egy d távolságra akkor teljesül a háromszög-egyenlotlenség, ha minden x, y, z ponthármasra d(x, z) d(x, y) + d(y, z). Ha egy távolságra a háromszögegyenlotlenség teljesül, akkor azt metrikának hívjuk. A késobbiekben, hacsak külön nem említjük, nem követeljük meg a háromszögegyenlotlenség teljesülését. Számos esetben az eloforduló hasonlóság és távolság összekapcsolható a d(x, y) = 1 s(x, y) vagy az s(x, y) = 1/(1 + d(x, y)) összefüggésekkel.

29.2. A klaszterezo algoritmusok jóságának kérdései 1397 29.1.2. Mátrixábrázolások Egy klaszterezo eljárás bemenetét a szimmetrikus távolságmátrixszal is reprezentálhatjuk: 0 d(1, 2) d(1, 3) d(1, n) d(2, 1) 0 d(2, 3) d(2, n) d(3, 1) d(3, 2) 0 d(3, n)......... d(n, 1) d(n, 2) d(n, 3) 0 ahol d(i, j) adja meg az i-edik és a j-edik elem távolságát és n az adatpontok száma. Ennek mintájára értelmezheto a hasonlóságmátrix is. A gyakorlatban legtöbbször az n adatpont attribútumokkal van leírva, és a hasonlóságokat az attribútumok értékeibol valamilyen függvény segítségével számolhatjuk ki. Ha megadjuk a függvényt, akkor elvben felírhatjuk a megfelelo hasonlóságmátrixot. Elképzelheto, hogy a mátrix elemeinek kiszámolása megoldható, de elemeinek száma olyan nagy, hogy a hasonlóságmátrix nem fér el a belso tárban. Ha a hasonlóságmátrix ritka, azaz ha csak lineárisan sok nullától különbözo elem szerepel benne, akkor segítséget jelent a ritka mátrixos tárolási forma használata. Ekkor a mátrixnak csak a nullától különbözo elemeit tároljuk el., 29.2. A klaszterez algoritmusok jóságának kérdései Egy jó klaszterezo algoritmussal szemben sokféle követelményt támaszthatunk. Ebben a fejezetben eloször arra mutatunk példát, hogy egy klaszterezo eljárás kimenetének jóságát hogyan lehet numerikusan mérni. A fejezet további részében megadjuk azokat a legfontosabb tulajdonságokat, amelyeket egy klaszterezo eljárástól meg szeretnénk követelni, majd a kívülálló adatpontok problémáját tárgyaljuk. Végül a 29.4. tétel a klaszterezés elvi határaira mutat példát: nem létezik túl sok intuitív szempontnak pontosan megfelelo klaszterezo algoritmust. Ha egy klaszterezo eljárás jóságát, eredményének pontosságát szeretnénk mérni, és rendelkezésünkre áll egy elore adott, pontosnak tartott minta klaszterezés, akkor a vizsgálandó algoritmus adta klaszterezést össze tudjuk hasonlítani a minta klaszterezéssel. Egy ilyen összehasonlítás alapja a tévesztésmátrix. Legyen a minta klaszterezés t darab osztálya M 1, M 2,..., M t, és az eredményként kapott klaszterezés s darab osztálya K 1, K 2,..., K s. A t s méretu C tévesztésmátrix elemei legyenek c i, j = M i K j. Látható, hogy ha a klaszterezo algoritmus pontosan a minta klaszterezést adja eredményképpen, akkor C (feltéve a klaszterek megfelelo címkézését) egy diagonális mátrix lesz. Minden M i, K j klaszterpárra értelmezhetjük az r i, j = M i K j K j felidézés (recall) és a p i, j = M i K j M i

1398 29. Klaszterezés pontosság (precision) mennyiségeket. Az így kapott t s mutatószámot többféleképpen aggregálhatjuk. Az egyik elterjedt lehetoség, hogy a koordinátánkénti két érték harmonikus közepeinek összegzése, 2 i, j M i K j, M i + K j adja a két klaszterezés eltérését. Alább felsorolunk olyan általános tulajdonságokat, amelyek döntoen befolyásolják egy klaszterezo algoritmus alkalmazhatóságát. Skálázhatóság: az algoritmus tár és ido szükséglete agy adathalmazon, illetve magas dimenziós adatokon alkalmazva is kezelheto maradjon. Adattípusok: többfajta adattípusra is muködjön (numerikus, bináris, kategorikus és ezek keverékei). Klaszter-geometria: ne preferáljon a kialakítható klaszterek között azok geometriai tulajdonságai alapján. Robusztusság: ne legyen zajos adatokra érzékeny; Sorrend-függetlenség: ne függjön az adatpontok beolvasási sorrendjétol. Hasznos tulajdonsága lehet egy klaszterezo algoritmusnak, hogy ha elore megadhatunk számára klaszterhatárokat, azaz a kimenete egy elore adott (kényszer) klaszterezés nomítása lesz. Gyakorlati példák esetében gyakran találkozhatunk olyan adatpontokkal, amelyekhez kevés más pont hasonló. Az olyan adatpontokat, amelyek lényegesen különböznek szinte minden más adatponttól, kívülállóknak (outlier) nevezzük. A gyakorlatban eloforduló kívülálló adatpontok egyik forrása mérési hiba, zaj. Ebben az esetben a kívülálló pontok elhagyása kívánatos. Ezzel szemben ha pontos adatok alapján bizonyul egy adatpont lényegesen különbözonek az adathalmaztól, akkor ez az információ fontos lehet. Mindkét esetben elonyben részesítjük a kívülállókat elkülöníto klaszterezo algoritmusokat. Végül célszeru lehet a klaszterezést a várhatóan homogénebb maradék adatpontokon újra elvégezni, mert a kívülállók kihagyásával a maradék adathalmazt leíró modell, klaszterezés minosége ugrásszeruen javulhat. Egy klaszterezo algoritmustól számos intuitíven többé-kevésbé indokolt formális tulajdonságot követelhetünk meg. Ilyen tulajdonságok például az alábbiak: Skála-invariancia: Ha minden elempár távolsága helyett annak az α-szorosát vesszük alapul (ahol α > 0), akkor a klaszterezo eljárás eredménye ne változzon meg. Gazdagság: Tetszoleges elore megadott klaszterezéshez létezzen olyan távolságmátrix, hogy a klaszterezo eljárás az adott elore megadott partícióra vezessen. Konzisztencia: Tekintsük egy adott adathalmazon alkalmazott klaszterezo algoritmus eredményét. Ha ezután a pontok közötti távolságokat úgy változtatjuk meg, hogy tetszoleges, azonos csoportban lévo elempárok között a távolság nem no, illetve különbözo csoportban lévo elempárok közötti távolság nem csökken, akkor az újonnan kapott távolságokra alkalmazott algoritmus az eredetivel megegyezo csoportosítást adja. Meglepo negatív eredmény a következo, legalább kételemu adathalmazokat klaszterezo algoritmusokról szóló Kleinberg-tétel, amelyet bizonyítás nélkül közlünk.

29.3. Adattípusok és távolságfüggvények 1399 29.4. tétel. Nem létezik olyan klaszterezo eljárás, ami egyszerre rendelkezik a skálainvariancia, gazdagság és konzisztencia tulajdonságokkal. 29.3. Adattípusok és távolságfüggvények Egy adathalmaz klaszterezésének sikere nagymértékben függ a megfelelo, az adatok hasonlóságát jól modellezo hasonlósági, illetve távolság függvények megválasztásától. Adatpontokat alapvetoen kétfajta attribútum típussal szokták leírni: numerikus és kategorikus értékekkel. Numerikus érték esetén az attribútumok valós számok, amelyeken aritmetikai muveleteket és rendezést alkalmazhatunk. Kategorikus adatok esetén csak az adatpontok megfelelo attribútumainak egyenloségét vagy különbözoségét tudjuk felhasználni az adatpontok közötti távolságok deniálására. 29.3.1. Numerikus adatok Numerikus attribútumok esetén a kapott vektorok távolságának mérésére a legfontosabb példa az L p vagy más néven Minkowski-metrika. Legyen u, v két adatpont (illetve az oket leíró vektorok) és u i, v i az attribútumok (koordináták) értékei, ahol i = 1,..., d. Ekkor 1/p d d p (u, v) = u i v i p i=1 adja a két pont távolságát. A p paraméter értéke elvileg tetszoleges pozitív szám lehet. A legnépszerubb a p = 2 értékhez tartozó, geometriailag és statisztikailag könnyen interpretálható euklideszi metrika. A p = 1 értékhez tartozó metrikát Manhattan-távolságnak nevezik. A p esetben kapjuk a d max (u, v) = max i {1,...,d} u i v i maximum távolságot. Ha az adatpontokat leíró attribútumok nagysága helyett csak azok aránya lényeges, akkor az adatpontok távolságának mérésére a két attribútumvektor által bezárt szög koszinuszát megadó d cos (u, v) = koszinusz távolságot alkalmazhatjuk. u T v u 2 v 2 = 29.3.2. Bináris és kategorikus adatok d i=1 u iv i d d i=1 u2 i i=1 v2 i Kategorikus attribútumok esetén az egyezo értéket felvett attribútum számát osztva az összes attribútum számával kapjuk a s R (u, v) = {i u i = v i } d Rand-hasonlóságot (másnéven egyszeru illeszkedési hasonlóságot).

1400 29. Klaszterezés Bináris (0-1) értéku attribútumok esetén, amikor a hasonlóság szempontjából csak az 1 értéket felvett attribútumok megegyezése lényeges, a s J (u, v) = {i u i = 1 és v i = 1} {i u i = 1 vagy v i = 1} Jaccard-hasonlóságot használhatjuk. Kettonél több értéku kategorikus attribútumok átírhatók bináris attribútumokká úgy, hogy az attribútum minden lehetséges értékéhez hozzárendelünk egy bináris változót, amely 1 lesz, ha az attribútum felveszi az adott értéket, és 0 lesz különben. Gyakorlatok 29.3-1. Legyen G = (V, E) egy egyszeru gráf. Mutassuk meg, hogy a gráf pontjain értelmezett { 1, ha (u, v) E; d(u, v) = 2, különben függvény metrika. 29.3-2. Legyen d egy metrika és t egy tetszoleges pozitív szám. Mutassuk meg, hogy a d (u, v) = függvény is metrika. 29.3-3. Mutassuk meg, hogy ha az s a a. Rand-hasonlóságot, b. Jaccard-hasonlóságot jelöli, akkor az 1 s függvény metrika. d(u, v) d(u, v) + t 29.4. Dimenzió-csökkentés A klaszterezo algoritmusok alapveto építoeleme egy hatékonyan kiértékelheto, az adatpontok közötti viszonyokat huen tükrözo hasonlóság- vagy távolságfüggvény. A dimenziócsökkentés módszere, melynek során az adatpontok túlságosan sok attribútummal való leírását kevesebb attribútumot használó új leírással helyettesítjük, a korábban bevezetett hasonlósági függvényeken több szempontból is javíthat. A továbbiakban az eredeti adathalmazt az m n-es M mátrixszal (m az adatpont, n az attribútumok száma), az új leírást pedig az m k méretu M mátrixszal (k darab új attribútum, lásd a 29.1. ábrát) reprezentáljuk. A dimenzió-csökkentésnek eltéro céljai lehetnek. Egyik nyilvánvaló cél az adatbázis tömörítése, a tárolandó adatok mennyiségének csökkentése. Másik lehetséges cél, hogy a csökkentés utáni m mátrix sorai között hatékonyan tudjuk kiértékelni két adatpont hasonlóságát, illetve hogy megfelelo adatszerkezettel támogassuk az olyan lekérdezéseket, amelyek egy adott ponthoz kikeresik a hozzá leghasonlóbbakat. Végül a dimenzió-csökkentés céljai között megemlíthetjük a zajszurést is. E mögött az a feltételezés áll, hogy az adatpontok egy alacsony dimenziójú térbol származnak, és a dimenzió megnövekedését valamilyen véletlen zaj okozza. Az utóbbi esetben a dimenzió-csökkentési eljárás után számított hasonlóság értékek pontosabbak lesznek, mint ha az eredeti M mátrixból számítanánk oket.

29.4. Dimenzió-csökkentés 1401 n k m M m M 29.1. ábra. A dimenziócsökkentés célja, hogy az M mátrix mérete jelentosen csökkenjen, azaz k n legyen. Az alábbiakban két példát mutatunk dimenzió-csökkentésre; mindketto jelentosen csökkentheti egy adatbázis méretét. Az elso példánál egy lineáris algebrai szempontból optimális dimenzió-csökkentést ismertetünk, melynek zajszurési tulajdonságait több tapasztalati tény is mutatja. A második ismertetett módszer algoritmikus szempontból érdekes, segítségével nagyban növelheto a hasonlósági lekérdezések hatékonysága. 29.4.1. Szinguláris felbontás A szinguláris felbontás az elméleti szempontból egyik legtöbbet vizsgált, klasszikus lineáris algebrai eszközöket használó dimenzió-csökkentési eljárás. Ennek alkalmazása után nyert M mátrix soraiból jól közelítheto az euklideszi távolság, illetve az attribútumok vektoraiból számított skaláris szorzattal mért hasonlóság. Utóbbi megegyezik a koszinusz mértékkel, ha a mátrix sorai normáltak. Ebben a pontban néhány jelölés és alapveto fogalom után deniáljuk a szinguláris felbontást, igazoljuk a felbontás létezését, majd megmutatjuk, hogy miként használható a felbontás dimenzió-csökkentésre. Megjegyezzük, hogy a szakasz nem mutat a gyakorlatban numerikus szempontból jól alkalmazható módszert a felbontás kiszámítására. Kisebb adathalmaz esetén általános lineáris algebrai programcsomag (Matlab, Octave, Maple) használata javasolt, míg nagyobb adatbázisoknál az adatok sajátosságát kihasználó szinguláris felbontó program (SVDPack) használata ajánlott. Egy U R n n mátrixot ortogonálisnak nevezünk, ha oszlopai ortogonális rendszert alkotnak, azaz U T U = I n, ahol I n az n n méretu egységmátrixot, és U T az U transzponáltját jelöli. Másképpen mondva U invertálható és U 1 inverzére U 1 = U T teljesül. Mátrix ortogonalitásának szemléletes tárgyalásához szükségünk lesz a vektorok hosszának általánosítására, a norma fogalmára. Egy v R n vektor v 2 -vel jelölt 2-normáját a v 2 = i v 2 i egyenloséggel deniáljuk. Egyszeruen látható, hogy v 2 2 = v T v teljesül. A 2-norma általánosítása a tetszoleges M R m n mátrix esetén értelmezett M F Frobenius-norma, mi=1 amelynek deníciója M F = nj=1 Mi, 2 j. Visszatérve az ortogonalitás szemléletes jelentésére, egy ortogonális mátrix által reprezentált lineáris transzformációra úgy gondolhatunk, mint egy forgatásra, amely a vektorok hosszát nem változtatja. A szemlélet alapja, hogy tetszoleges U R n n ortogonális mátrix és x R n vektor esetén Ux 2 = x 2 teljesül. Az azonosság az alábbi elemi lépésekbol következik: Ux 2 2 = (Ux)T (Ux) = x T (U T U)x = x T x = x 2 2. Hasonlóan belátható, hogy tetszoleges X Rm n mátrix ese-

1402 29. Klaszterezés U m m { }} { M m n = u 1... u m Σ m n { }} { σ 1... σ r 0... 0 V T n n { }} { v T 1.. v T n 29.2. ábra. A szinguláris felbontás sematikus vázlata. tén és U R m m illetve V R n n ortogonális mátrixok esetén igaz, hogy UXV T F = X F. A rövid bevezeto után rátérünk a szinguláris felbontás deníciójára. Egy nem szükségszeruen négyzetes M R m n mátrix szinguláris érték felbontásán (singular value decomposition, SVD) az olyan M = UΣV T szorzattá bontást értjük, ahol U R m m, V R n n ortogonális mátrixok, továbbá a Σ mátrix M-mel megegyezo méretu és a bal felso sarokból 45 -ban lefele elhelyezkedo σ 1 σ 2 σ r > 0 pozitív számokat csupa 0 követ és a többi elem szintén 0. A σ i számokat szinguláris értékeknek nevezzük, és a σ i = 0 választással terjesztjük ki az i > r esetre. A felbontásból látható, hogy rang(m) = rang(σ) = r. Az U és a V oszlopait bal-, illetve jobboldali szinguláris vektoroknak mondjuk. A jelölések áttekintése a 29.2. ábrán látható. 29.5. tétel. Tetszoleges M R m n mátrixnak létezik szinguláris érték felbontása, azaz léteznek U R m m, V R n n ortogonális mátrixok, melyekkel ahol M = UΣV T, Σ R m n, Σ = ( Σ+ 0 0 0 továbbá Σ + egy r r méretu diagonális mátrix, amelynek foátlójában a σ 1 σ 2 σ r > 0 számok helyezkednek el sorrendben. Bizonyítás. Az M T M mátrix szimmetrikus, ezért ortogonális transzformációval diagonalizálható és sajátértékei valósak. Továbbá pozitív szemidenit, mert tetszoleges x R n n vektor esetén x T M T Mx = (Mx) T (Mx) = Mx 2 2 0, ezért a sajátértékek nem negatívak. A sajátértékek legyenek σ 2 1 σ2 2 σ2 r > 0. Az ezekhez tartozó sajátvektorokból alkotott ortogonális mátrixot jelölje V, ekkor ( ) Σ V T M T 2 MV = + 0. 0 0 ),

29.4. Dimenzió-csökkentés 1403 A mátrixot két részre osztva V = (V r V 2 ), ahol V r R n r a pozitív sajátértékhez tartozó sajátvektorokat tartalmazza. Vagyis Vezessük be az jelölést, ekkor V T r M T MV r = Σ 2 +. U r = MV r Σ 1 + M = U r Σ + V T r. Az U r vektorai ortogonális vektorrendszert alkotnak, ezt tetszolegesen kiegészítve U = (U r U 2 ) ortogonális mátrixszá a eredményt kapjuk. ( Σ+ 0 M = U 0 0 Most megmutatjuk, hogy szinguláris felbontás segítségével hogyan lehet dimenziócsökkentést végrehajtani. Emlékeztetünk rá, hogy az M mátrix n-dimenziós sorvektorai adatpontokat jellemeznek. Dimenzió-csökkentéskor az n attribútumot szeretnénk k < n dimenziójú vektorokkal jellemezni úgy, hogy közben az adatpontok euklideszi távolsága vagy skaláris szorzattal mért hasonlósága csak kis mértékben változzon. A mátrixszorzás elemi tulajdonsága, hogy a szinguláris felbontás az alábbi formában is írható. ) V T M = UΣV T = r σ i u i v T i, i=1 ahol u i v T i a bal- illetve a jobboldali szinguláris vektorokból képzett diádszorzat, azaz egy oszlop- és egy sorvektor szorzataként felírt m n méretu 1-rangú mátrix. Látható, hogy az u i v T i diádok monoton csökkeno σ i súllyal szerepelnek az összegben. Innen adódik az ötlet, hogy k < r esetén csak az elso k legnagyobb súlyú diád összegével közelítsük az M mátrixot. Azaz k M k = σ i u i v T i = U k Σ k Vk T, i=1 ahol U k = (u 1 u 2... u k ) és V k = (v 1 v 2... v k ), valamit Σ k egy k k méretu diagonális mátrix, melynek foátlójában a σ 1, σ 2,..., σ k értékek vannak. Könnyen látható, hogy M k sorai egy k-dimenziós altérben helyezkednek el, hiszen rang(m k ) = rang(σ k ) = k. Sokkal mélyebb eredmény a következo, melynek bizonyítását mellozzük. 29.6. tétel. Legyen M egy legalább k rangú mátrix és legyen M k a fenti módon számított közelítése. Ha a közelítés hibáját Frobenius-normával mérjük, akkor a k-rangú mátrixok közül az M k mátrix a leheto legjobban közelíti M-et, azaz M M k F = min M N F. N: rang(n)=k

1404 29. Klaszterezés Továbbá a közelítés hibája a σ i szinguláris értékekkel kifejezheto: r M M k F = σ 2 i. i=k+1 Az M k mátrix sorai az M-éhez hasonlóan n méretuek, de most már egy k-dimenziós altérnek az elemei. Ennek az altérnek egy bázisát alkotják a Vk T sorai, és az M = U k Σ k mátrix k-dimenziós sorvektorai e bázisban fejezik ki az M k sorait. Tehát a dimenziócsökkentés eredménye, hogy az M mátrix n-dimenziós sorait a vetítés után az M mátrix k-dimenziós soraival közelítjük. A Vk T sorainak ortogonalitásából könnyen belátható, hogy az M k, illetve az M soraiból számított euklideszi távolságok és skaláris szorzatok is megegyeznek. Tehát a közelítés alatt torzítás kizárólag az M-bol M k -ba történo vetítés során történik, melynek mértéke a 29.6. tétel alapján felülrol becsülheto. Gyakorlatok 29.4-1. a. Igazoljuk, hogy ha az u és v vektorokra u 2 = v 2 = 1 teljesül, akkor az uv T diádszorzatra is fennáll, hogy uv T F = 1. b. Bizonyítsuk be, hogy tetszoleges M mátrix esetén, ahol M szinguláris értékeit σ i jelöli, r M F = σ 2 i. c. Lássuk be a 29.6. tétel második egyenloségét. 29.4-2. Az M mátrix sorai által reprezentált adatpontok hasonlóságát skaláris szorzattal számítjuk. Az M M T mátrix hasonlóságmátrix lesz, mert elemei az egyes adatpontok közti hasonlóságok értékeivel egyeznek meg. Fejezzük ki az M mátrixból számított hasonlóságmátrix Frobenius-normában mért hibáját a σ i értékekbol és k-ból, ahol a jelölések megegyeznek a 29.6. tételben használtakkal. 29.4-3. Legyen M egy m n méretu mátrix, jelölje A az alábbi (m + n) (m + n) méretu mátrixot. ( A = i=1 0 M M T 0 Az A mátrix szimmetrikus, ezért tudjuk, hogy sajátértékei valósak, és sajátvektorai ortogonális rendszert alkotnak. Azaz létezik az A = WDW T szorzattá bontás, ahol W ortogonális és D diagonális mátrix, melynek foátlójában valós számok szerepelnek. a. Igazoljuk, hogy A pozitív sajátértékei megegyeznek M szinguláris értékeivel. b. Lássuk be, hogy ha λ > 0 sajátértéke A-nak, akkor λ is az. c. Adjunk új bizonyítást a 29.5. tételre felhasználva, hogy az A-nak létezik az A = WDW T sajátérték-felbontása. 29.4.2. Ujjlenyomat alapú dimenzió-csökkentés Ebben a pontban egy véletlen mintavételezésen alapuló, elemi eszközöket használó dimenzió-csökkentési eljárást tárgyalunk, melynek segítségével bináris attribútumok ál- )

29.4. Dimenzió-csökkentés 1405 tal jellemzett adatpontok Jaccard-hasonlóságát lehet közelíteni. Eloször ismertetjük, hogy miként lehet a dimenziót csökkenteni, majd a rövidebb vektorokból hasonlóságot számítani. Utána megmutatjuk a módszer igazi erejét, egy olyan hasonlóság-keresési eljárást, amely külso táron elhelyezett adatbázison is muködik, lekérdezési idoben korlátozott számú adatbázis-hozzáférést igényel, ezért különösen nagy adatbázisokon is alkalmazható. Tegyük fel, hogy az M {0, 1} m n mátrix m sora m különbözo adatpontot jellemez egyenként n darab bináris attribútummal. Jelöljük X(i)-vel az i-edik sorban elhelyezkedo 1-ek indexeinek halmazát, azaz X(i) = { j : M i j = 1 }. A továbbiakban feltesszük, hogy X(i). Az i 1 és i 2 adatpontok s J (i 1, i 2 ) Jaccardhasonlóságát a korábbi deníció alapján az alábbi formában is írhatjuk: s J (i 1, i 2 ) = X(i 1) X(i 2 ). X(i 1 ) X(i 2 ) Most egy olyan eljárást ismertetünk, amely minden adatponthoz egy véletlen ujjlenyomatot rendel úgy, hogy az i 1 és i 2 ujjlenyomata pont s J (i 1, i 2 ) valószínuséggel egyezzen meg. Legyen σ az attribútumok 1, 2,, n indexeinek egy véletlen permutációja, amelyet az n! darab permutáció közül egyenletes eloszlás szerint választunk ki. Az i-edik adatponthoz tartozó u(i) ujjlenyomatot az alábbiak szerint választjuk meg: u(i) = argmin σ( j), j X(i) azaz u(i) = j, ahol j az M i j = 1 egyenloséget kielégíto indexek közül a σ permutáció alkalmazása után a legkisebb értéket kapja. 29.7. tétel. A tetszoleges i 1 és i 2 adatpontok ujjlenyomatai s J (i 1, i 2 ) valószínuséggel egyeznek meg, azaz Pr{u(i 1 ) = u(i 2 )} = s J (i 1, i 2 ). Bizonyítás. Az u(i 1 ) = u(i 2 ) egyenloség pontosan akkor teljesül, ha argmin σ( j) X(i 1 ) X(i 2 ). j X(i 1 ) X(i 2 ) Az utóbbi esemény valószínusége X(i 1 ) X(i 2 ) / X(i 1 ) X(i 2 ) = s J (i 1, i 2 ), mivel bármelyik X(i 1 ) X(i 2 )-beli elem azonos valószínuséggel lesz a permutáció alkalmazása után minimális. Az elozo állítás alkalmazásával egy olyan algoritmust mutatunk, amely független minták átlagaként becsüli a hasonlóság-értékeket. Eloször a dimenzió-csökkento lépés során minden adatponthoz k darab ujjlenyomatot generálunk, ezzel az M {0, 1} m n mátrixból egy M {1, 2,, n} m k mátrixot készítünk az alábbi pszeudokód szerint. Fontos, hogy a σ 1, σ 2,, σ k véletlen permutációkat egymástól függetlenül válasszuk meg.

1406 29. Klaszterezés UJJLENYOMAT(M,k) 1 for l 1 to k 2 do σ l = az 1, 2,, n indexek egy véletlen permutációja 3 M il = argmin j : M i j =1 σ l( j) 4 return M Ha az ujjlenyomatokat már elkészítettük, és az i 1 és i 2 adatpontok hasonlóságát szeretnénk kiértékelni, akkor összeszámoljuk, hogy hány pozícióban egyezik meg az M mátrix i 1 -ik és i 2 -ik sora, majd az egyezések számát osztjuk k-val, azaz a { l : M i 1 l = M i 2 l } k mennyiséggel becsüljük az s J (i 1, i 2 ) hasonlóságot. Bizonyítás nélkül megemlítjük, hogy bármely rögzített δ > 0 esetén annak a valószínusége, hogy a becsült hasonlóság a valóditól legalább δ értékkel eltér, k növelésével exponenciálisan tart 0-hoz. Megjegyezzük, hogy n elem véletlen permutációjának kiszámítása, tárolása és a permutáció által meghatározott rendezés hatékony lekérdezése nem könnyu feladat nagy n esetén. A gyakorlatban nem az összes lehetséges n!-féle permutáció közül választunk, hanem permutációk egy kisebb, tömören reprezentálható családjából. Egy lehetséges megoldás, hogy választunk egy p n prímet. Ekkor a véletlen permutációt úgy kapjuk, hogy az a, b számokat egyenletesen véletlenül generáljuk az [1, p 1] intervallumból, és az j {1, 2,, n} indexek σ permutációbeli sorrendjét az a j + b (mod p) értékek sorrendjével határozzuk meg. Rögzített p esetén a permutációk családjának mérete (p 1) 2, és egy permutáció tárolásához elég az a és b számokat tárolni. A módszer elonye, hogy a permutáció tömören reprezentálható; hátránya, hogy nem csak egy kisebb családból választ permutációt, továbbá a nagy egészekkel való aritmetika lassítja az ujjlenyomatok kiszámítását. A szakasz befejezéseként egy egyszeru eljárást mutatunk a hasonlóság-keresési feladatra, melynek bemenete egy i q {1, 2,, m} adatpontként adott lekérdezés és egy α > 0 küszöb, a kimenet pedig az olyan adatpontok halmaza, melyek az α küszöbnél hasonlóbbak i q -hoz. Formálisan megfogalmazva tehát az { i : s J (i q, i) > α } elemeit keressük. Kézenfekvo, de nem hatékony megoldás, hogy az i q adatpontot összehasonlítjuk az összes többivel az M mátrix alapján. Ez a megoldás különösen sokáig tart, ha az M mátrix csak a háttértáron fér el. A következo algoritmusban nem követeljük meg, hogy M mátrix a memóriában legyen. Az M elemeit most egy adatbázisban tároljuk, amely a háttértárról az M [i] lekérdezés hatására betölti az i adatponthoz tartozó k darab ujjlenyomatot a memóriába. A hasonlósági lekérdezések elott elkészítjük az I adatbázist is, amely az I[l][ j] lekérdezés hatására azon i indexeket adja vissza, amelyeknek l-ik ujjlenyomata j. Az I adatbázis M -bol úgy számítható, hogy M elemeit l és j szerint lexikograkusan rendezzük. Háttértáras rendezés alkalmazásával ez akkor is megteheto, ha M nem fér el a memóriában. A következo algoritmus egyszer fér hozzá M -höz, k-szor az I-hez, és eközben megszámolja, hogy a többi adatpontnak az adott i q -val hány közös ujjlenyomata van. Az egyes adatpontokkal közös ujjlenyomatok számát a H hash-táblában tároljuk azon adatpontok esetén, amelyekkel már találtunk közös ujjlenyomatot. Az alábbi pszeudokódban H[i] = 0, ha i nincs benne még a hash-táblában.

29.5. Particionáló klaszterezo algoritmusok 1407 HASONLÓ(i q, α) 1 u M [i q ] 2 for l 1 to k 3 do for i I[l][u l ] 4 do H[i] H[i] + 1 5 return { i : H[i]/k > α } A dimenzió-csökkentés eredményeként egyrészt sikerült M helyett a k által szabályozható méretu M mátrixba tömöríteni az adatbázist. Másrészt a hasonlóság keresési problémára is hatékonyan, mindössze k + 1 tömbelem hozzáféréssel tudunk válaszolni. Gyakorlatok 29.4-1. Javasoljunk olyan módszert véletlen ujjlenyomat generálására, hogy az i 1 és i 2 adatpontok esetén az ujjlenyomatok egybeesésének valószínusége az érték legyen. X(i 1 ) X(i 2 ) X(i 1 ) X(i 2 ) 29.5. Particionáló klaszterez algoritmusok A particionáló algoritmusok alapgondolata, hogy a megfelelo klaszterezést a pillanatnyi eredményként kapott klaszterezés folyamatos pontosításával iterálva érjük el. Az iteráció egy fázisában a klasztereket tömören reprezentáljuk úgy, hogy a reprezentáció segítségével a reprezentált klaszterek és az adatpontok közötti távolságokat értelmezni és hatékonyan számolni tudjuk. Ezek után az adatpontokat újból particionáljuk, minden adatpontot hozzárendelünk a hozzá legközelebb eso klaszterhez. Az algoritmus akkor ér véget, ha az iterációs lépés során nem (vagy csak alig) változik meg a partíció, illetve a klaszterek reprezentánsai. Egy particionáló klaszterezo algoritmus elvileg tetszoleges reprezentációból, illetve a hozzátartozó partícióból kiindulhat, de általában célszeru valamilyen egyszeru (klaszterezo) heurisztikát alkalmazni a kezdeti klaszter-reprezentánsok meghatározására vagy véletlenszeruen választani azokat. A kezdeti partíció megadásával az osztályok k száma is adott lesz. Ez az szám az itt bemutatandó particionáló klaszterezo algoritmusok futása során nem változik. 29.5.1. k-közép A k-közép (k-means) algoritmus az egyik legrégebbi és legegyszerubb klaszterezo algoritmus. Feltesszük, hogy az adatpontok egy vektortérben helyezkednek el. Ekkor a klasztereket súlypontjukkal, középpontjukkal (innen az algoritmus elnevezése) reprezentáljuk, azaz az adott klasztert az adatpontjaihoz tartozó vektorok átlagával reprezentáljuk. Az algoritmus olyan C klaszterezést keres, ahol az adatpontoknak a klaszterük r(c i ) reprezentánsától mért E(C) = k i=1 u C i d(u, r(c i )) 2

1408 29. Klaszterezés ÈË Ö Ö ÔÐ Ñ ÒØ C 1 C 2 r(c 1 ) r(c 2 ) r(c 3 ) r(c 4 ) r(c 5 ) C 3 C 4 C 5 29.3. ábra. A k-közép klaszterezo algoritmus egy fázisa: a C i klasztereket az r(c i ) súlypontjaik reprezentálják. négyzetes távolságösszege minimális. Egy adott C klaszterezés esetén az E(C) mennyiségre a késobbiekben a klaszterezés hibájaként fogunk hivatkozni. Az algoritmus menete a következo. Legyen k a felhasználó által elore megadott klaszterszám. Ezután k darab tetszoleges elemet választunk az adatpontok vektorterében (célszeruen azok konvex burkában). Az iteráció elso fázisában ezek a pontok reprezentálják a kezdeti k darab klasztert. Ezután minden adatpontot a legközelebbi reprezentánssal rendelkezo klaszterhez sorolunk be. A besorolás során kialakult klaszterek új reprezentáns pontjai az új klaszterek középpontjai lesznek (lásd a 29.3. ábrát). A besorolás, középpont választás lépéseket addig iteráljuk, amíg a reprezentánsok rendszere változik. Akkor állunk meg, amikor a klaszterek elemei, illetve középpontjai már nem változnak meg az iterációs lépéstol. Jelölje D az adatpontok halmazát egy euklideszi vektortérben. Legyen k az elore adott klaszterszám. A k-közép algoritmus pszeudokódja a következo: k-közép(d, k) 1 {r(c 1 ), r(c 2 ),..., r(c k )} reprezentánsok tetszoleges k elemu kezdeti halmaza 2 while az r(c i ) reprezentánsok rendszere változik 3 do for i 1 to k 4 do r(c i ) 1 u C i u C i 5 for minden u D 6 do u legyen az argmin i d(u, r(c i )) indexu klaszterben 7 C az új klaszterezés 8 return C Az algoritmus jól alkalmazható, ha a valódi klaszterek konvex burkai diszjunktak. Fontos elonye, hogy egyszeruen megvalósítható. Futási ideje O(nkt) darab távolságszámítás, ahol n az adatpontok, k a klaszterek és t az iterációk számát jelöli. Látható, hogy az algoritmus futási ideje nagyban függ az alkalmazott távolságszámítástól. A gyakorlatban az

29.5. Particionáló klaszterezo algoritmusok 1409 algoritmus fenti alapváltozata kis (tízes nagyságrendu) k és t értékeket igényel. Az algoritmus további elonye, hogy nem érzékeny az adatpontok sorrendjére és alkalmazható L p terekben is. A k-közép algoritmus egyik hátránya, hogy az algoritmus a hiba lokális minimumában is megállhat, azaz elofordulhat, hogy egy újabb iteráció során nem változik meg a partíció, mégis létezik olyan klaszterezés, aminek hibája kisebb, mint az algoritmus által adott partícióé. Gyakorlatban a lokális optimumba kerülés esélyének csökkentése érdekében érdemes az algoritmust többször futtatni különbözo kezdeti középpontokkal. Azt a klaszterezést fogadjuk el a többszöri futások végeredményei közül, amelyik hibája a legkisebb hibát adja. Megmutatjuk, hogy a k-közép algoritmus érzékeny a kívülálló pontokra. Ebbol a célból bevezetjük a Voronoi-tartomány fogalmát. Egy ponthalmaz u pontjának Voronoitartománya álljon azon pontokból, amelyeknek u-tól vett távolsága nem nagyobb, mint bármely más ponthalmazbeli ponttól vett távolsága. A k-közép algoritmus során a klaszterek a reprezentáló középpontok által kialakított konvex Voronoi-tartományokba esnek, ahogyan ez a 29.3. ábrán is látható. Mivel a klaszterek a Voronoi-tartományok belsejében alakulnak ki, ezért a k-közép eredményében a klaszterek konvex burkai diszjunktak lesznek. Az algoritmus tehát a nyilvánvalóan kívülálló pontokat is besorolja valamelyik klaszterbe, és ezek a pontok a klaszter-középpont meghatározásakor indokolatlan torzító hatást okoznak. További problémák az algoritmussal, hogy a megfelelo k klaszterszám megtalálása többszöri futtatást igényelhet, az iterációk során szélsoséges klaszterméretek alakulhatnak ki és a végeredmény nagyban függ a kezdeti partíciótól. A k-közép egyik, a gyakorlatban jobb minoségu eredményt adó módosítása a következo. A pontokat egy rögzített sorrend szerint ciklikusan vizsgálva meghatározzuk a vizsgált ponthoz legközelebbi klaszter-középpontot, majd ha szükséges, átsoroljuk az adatpontot a hozzá közelebbi középpontú klaszterbe. Átsorolás esetén kiszámoljuk a két érintett klaszter új középpontjait. Az alapváltozathoz hasonlóan akkor állunk meg az algoritmussal, ha már nem változnak a klaszterek. Az eljárás pszeudokódja a következo. k-közép VÁLTOZAT(D, k) 1 {r(c 1 ), r(c 2 ),..., r(c k )} reprezentánsok tetszoleges k elemu kezdeti halmaza 2 while r(c i ) reprezentánsok változnak 3 do for minden u D adatpontra egy rögzített sorrend szerint 4 do h u klaszterének indexe 5 j argmin i d(u, r(c i )) 6 if h j 7 then C j C j {u} 8 C h C h \ {u} 9 r(c j ) 1 v C j v C j 10 r(c h ) 1 C h 11 return C v C h u Meglepo módon euklideszi vektortérben adott pontok esetén a fenti k-közép VÁLTOZAT futtatása ugyanannyi távolságszámítást igényel, mint az k-közép alapváltozat. További al-

1410 29. Klaszterezés goritmus változathoz jutunk, ha a pszeudokód 3. sorát megváltoztatva a pontokat nem egy rögzített sorrend szerint, hanem véletlenül választva vizsgáljuk. 29.5.2. k-medoid A k-közép klaszterezo algoritmus csak olyan adatpontok csoportosítására használható, ahol értelmezheto a klaszterek középpontja, például a pontok vektortérben vannak megadva. Így a k-közép nem használható olyan alkalmazásokban, ahol az adatpontok nem attribútumokkal adottak, vagy amikor az adatpontokat leíró attribútumok között kategorikus értékek is szerepelnek. Ilyen helyzetekben a k-medoid algoritmus használható, mert futása során csak az adatpontok közötti távolságok összehasonlítását használja. A k-medoid módszer a klasztereket egy-egy, az adott klaszter elemeihez legközelebbi adatponttal, a medoiddal reprezentálja. A k-közép módszerhez hasonlóan itt is egy távolságnégyzetek összegén alapuló függvényt minimalizálunk, amit az összes adatpont és klaszterük medoidjának távolságnégyzetét összegezve számolunk ki: E(C) = k i=1 u C i d(u, m i ) 2, ahol m i a C i klaszter medoidja és d az adatpontokon értelmezett metrika. A k-medoid algoritmus menete megegyezik a k-közép menetével. Kezdetben választunk k darab tetszoleges adatpontot, ezek lesznek eloször a medoidok. Ezután elkezdodik az adatpontok medoidokhoz történo hozzárendelése, illetve az új medoidok választásából álló iteratív folyamat. Az iteráció során a k-közép algoritmus módosításánál látott stratégiához hasonló módszert célszeru követni. Tekintsünk egy véletlen nem medoid v adatpontot és vizsgáljuk meg, hogy van-e olyan klaszter, amelyet a v pont jobban reprezentál, mint a klaszter jelenlegi medoidja (az új medoid nem feltétlenül a klaszter eleme, de klaszterezendo adatpont). Ezt a lépést a következoképpen valósíthatjuk meg. Az összes m i medoidra meghatározzuk, hogy mennyivel változna a klaszterezés jósága, ha v átvenné az m i szerepét. Az algoritmus menetét egyszerusíti, hogy a hiba változására azok az elemek nincsenek hatással, amelyekhez létezik v-nél és m i -nél is közelebbi medoid. Ha találunk olyan m i -t, amellyel v-t cserélve E(C) csökken, akkor javítunk a klaszterezésen; azt a cserét hajtjuk mindig végre, amellyel pillanatnyilag a legnagyobb csökkenést érjük el. A pszeudokódból látható, hogy a számoláshoz csak az adatpontok egymástól mért távolságainak értékeit használjuk. Az iteráció egy fázisához O(nk 2 ) távolság kiszámítása kell, mert minden potenciális m i -rol v-re történo medoid csere esetén a hiba változásának kiszámolásához n k darab pont-medoid pár távolságára van szükségünk. A teljes futási idot az határozza meg, hogy az adatpontok számának növekedésével lineárisan no a fázisok szükséges száma. Fontos elonye a k-medoid módszernek, hogy a k-középhez képest kevésbé érzékeny a kívülálló pontokra. A pszeudokód a következo:

29.6. Hierarchikus eljárások 1411 k-medoid(d, k) 1 Adjunk meg k darab tetszoleges m i D (i = 1,..., k) adatpontot. A elso medoidok. 2 while C i osztályok változnak 3 do for minden u D adatpont 4 do u-t tegyünk be az j = argmin i d(u, m i ) indexu C j klaszterbe. 5 v véletlen adatpont, ahol v m i minden i-re 6 for i 1 to k 7 do i az E(C) hiba változása, ha az m i medoidot v-re cseréljük 8 if min i i < 0 9 then v legyen medoid m j helyett, ahol j = argmin i i 10 C az új klaszterezés 11 return C Gyakorlatok 29.5-1. Mutassunk példát arra, hogy a k-közép algoritmus által kimenetként adott klaszterezés hibája nem a hiba globális minimuma. 29.6. Hierarchikus eljárások A hierarchikus eljárások onnan kapták a nevüket, hogy az elemeket egy hierarchikus adatszerkezetbe (fába, dendogramba, taxonómiába) rendezik el. Az adatpontok a fa leveleiben találhatók. A fa minden belso pontja egy klaszternek felel meg, amely azokat a pontokat tartalmazza, melyek a fában alatta találhatók. A gyökér az összes adatpontot tartalmazza. 29.6.1. Felhalmozó és lebontó módszerek A hierarchikus klaszterezési módszereket két csoportra bonthatjuk: a felhalmozó (egyesíto, bottom-up) és lebontó (felosztó, top-down) módszerek. A lentrol felfelé építkezo felhalmozó eljárásoknál kezdetben minden elem különálló klaszter, majd az eljárás a legközelebbi klasztereket egyesíti, a hierarchiában egy szinttel feljebb újabb klasztert alakítva ki. A fentrol lefelé építkezo lebontó módszerek fordítva muködnek: egyetlen, minden adatpontot tartalmazó klaszterbol indulnak ki, amit kisebb klaszterekre particionálnak, majd ezeket is tovább bontják. A kapott hierarchiából számos klaszterezést tudunk kinyerni, amennyiben például a futás során kialakult a fa egy-egy szintjén található pontokat tekintjük. Az így kinyert klaszterezések egymás nomításai lesznek. Általánosabban választhatjuk a fa gyökere és levelei közötti tetszoleges, tartalmazásra minimális elvágó ponthalmaz elemeit; az ezekhez rendelt klaszterek a ponthalmaz egy partícióját alkotják. Általában tetszoleges hasonlóság vagy távolság fogalomra építve könnyen kidolgozható hierarchikus algoritmus, így bármilyen típusú adat klaszterezéséhez több rugalmas és többnyire hatékony módszerhez juthatunk. A hierarchikus algoritmusok kulcslépése az egyesítendo vagy osztandó klaszterek kiválasztása. Miután egy egyesítés (osztás) megtörténik, minden további muveletet az új klasztereken végezzük el. Tehát egyik muvelet sem fordítható meg, így egy rossz választás késobb

1412 29. Klaszterezés nem javítható ki. Nehézséget jelent annak eldöntése, hogy mennyire, milyen magas szintig épüljön fel a hierarchikus klaszterezés fája, illetve az elkészült dendogram melyik vágásával tudjuk a feladatot legjobban megoldó klaszterezést kiválasztani. A legegyszerubb felhalmozó hierarchikus klaszterezo eljárás az alábbi. Legyen D az adatpontok halmaza, d (C i, C j ) két klaszter távolságát méro függvény és S (C) egy megállási szabály. Kezdetben minden pont különálló egyelemu klaszterhez tartozik. Keressük meg, majd egyesítsük a két, d szerint legközelebbi klasztert. Iteráljuk ezt a lépést, amíg S (C) meg nem állítja az eljárást. Például S (C) deniálható úgy, hogy az algoritmus akkor álljon meg, amikor a C vagy d aktuális értéke elér egy elore adott küszöböt. EGYSZERU-FELHALMOZÓ(D, S ) 1 C {{u} u D} 2 while S (C) engedi 3 do (a, b) argmin (i, j) d (C i, C j ) 4 C C {C a C b } \ {C a, C b } 5 return C 29.6.2. Klasztertávolságok mértékei A d klaszterek távolságát méro függvény megválasztásától függoen különbözo hierarchikus klaszterezo algoritmusokat kapunk. Mivel a klaszterezés bemenete az adatpontok d távolságfüggvénye, ezen értékekbol számíthatjuk d -ot. A továbbiakban d leggyakrabban használt megvalósításait mutatjuk be. Amennyiben két klaszter d min távolságát azok legközelebbi pontjainak távolságával de- niáljuk, akkor legkisebb távolságot (single linkage) használó eljárásról beszélünk. Ekkor d min (C i, C j ) = min u C i v C j d(u, v). Általános esetben, távolságmátrixot használva az eljárás O(n 2 ) összehasonlítást igényel. A legkisebb távolságon alapuló algoritmusok alkalmasak jól elkülönülo, tetszoleges alakú klaszterek felfedezésére. Mivel a klaszterelemek minimális távolságát veszik gyelembe, hajlamosak azonban összekötni két klasztert, ha egy-egy elemük túl közel kerül egymáshoz. További hibája a módszernek, hogy érzékeny az kívülállókra. Ha egy legkisebb távolságon alapuló klaszterzést gráfelméleti algoritmusként tekintünk úgy, hogy a gráf pontjai az adatpontok és az éleken adott költségeknek pedig a távolságok felelnek meg, akkor algoritmusunk a minimális költségu feszítofát építo Kruskalalgoritmussal lesz azonos. A Kruskal-algoritmus megvalósításához nagyon hatékony adatstruktúrák ismertek. Amennyiben a távolságok ritka mátrix formátumban adottak, az algoritmus O(eα(e)) futási idovel is megvalósítható, ahol e az élek száma és α az inverz Ackermann-függvényt 1 jelöli. 1 Az A(n) = A(n, n) Ackermann-függvény a következo rekurzióval adható meg: m + 1, ha n = 0, A(n, m) = A(n 1, 1), ha n > 0 és m = 0, A (n 1, A(n; m 1)), ha n > 0 és m > 0.

29.6. Hierarchikus eljárások 1413 Ha a d max (C i, C j ) = max d(u, v) u C i v C j klasztertávolságot használjuk, akkor a legnagyobb távolságon (complete linkage) alapuló eljárást kapjuk. További klaszterek közötti távolságfüggvényt ad a 1 d avg (C i, C j ) = d(u, v) C i C j u C i v C j átlagos távolság. Ha az adatpontok vektortérbeliek és d a vektortér metrikája, akkor d a klaszterközéppontok távolságaként értelmezheto: 1 d mean (C i, C j ) = d C i u C i u, 1 C j v C j v További hagyományos klasztermetrika az átlagos távolsághoz hasonló Ward-távolság d Ward (C i, C j ) = d 2 (u, v) d 2 (u, v) + d 2 (u, v). u,v C i C j u,v C i u,v C j Ward módszere a klasztereken belüli távolságnégyzetek összegének minimalizálását célozza. Azt a két klasztert egyesíti, amelyek a legkisebb négyzetes hibanövekedést okozzák. A fenti klasztertávolságok mindegyike alkalmazható, mint az EGYSZERU-FELHALMOZÓ hierarchikus algoritmus d függvénye. Ehhez hasonlóan dolgozhatók ki a lebontó hirarchikus algoritmusok részletei. Gyakorlatok 29.6-1. Legyen f monoton növo függvény. Mutassuk meg, hogy az f (d min ), illetve az f (d max ) klasztertávolságon alapuló hierarchikus klaszterezo módszer esetén ugyanazt az eredményt kapjuk, mint a d min, illetve a d max klasztertávolság alkalmazása esetén. 29.6-2. Vektortérbeli adatpontok hierarchikus klaszterezését gyorsítják az úgynevezett CFhármasok. Egy C klasztert egy CF(C) = (s 0, s 1, s 2 ) hármas jellemezzen, ahol s 0 = C a klaszterben található adatpontok száma, s 1 = u C u az adatpontok vektoriális összege és s 2 = u C u 2 az adatpontok normáinak négyzetösszege. Mutassuk meg, hogy a két klaszter CF-hármasából kiszámítható a két klaszter a. uniójának CF-hármasa, b. átlagos távolsága, c. Ward-távolsága. 29.6.3. A ROCK algoritmus A korábban tárgyalt klaszterezo eljárások a k-medoid kivételével numerikus attribútumokkal rendelkezo adatpontokra lettek kitalálva. A ROCK felhalmozó hierarchikus klaszterezo algoritmus kifejezetten olyan kategorikus attribútumokkal jellemezheto adatok klaszterezésére szolgál, mint amilyenek a bináris attribútumokkal leírható tranzakciók. A ROCK. Az α(e) = min{n : A(n) e} inverz Ackermann-függvény rendkívül lassan tart a végtelenbe, a gyakorlatban eloforduló esetekben értéke legfeljebb 4 lesz.

1414 29. Klaszterezés az EGYSZERU-FELHALMOZÓ algoritmus sémáját követi. Specialitása a d klaszterek távolságát méro függvény és az S megállási szabály megvalósításában van. A ROCK algoritmus az adatpontok közötti kapcsolat fogalma köré épül fel. Legyen ε az algoritmus paramétere. Az u és v pontok kapcsolatát közös szomszédainak l(u, v) = N ε (u) N ε (v) száma adja. Két klaszter kapcsolat alapú hasonlóságát az l(c i, C j ) = l(u, v) u C i v C j mennyiséggel, egy klaszter belso kapcsolatát az l(c) = l(c, C) = l(u, v) mennyiséggel deniáljuk. A ROCK egyik alapötlete, hogy mivel az l(c i, C j ) mennyiség érzékeny a C i, C j klaszterek méretére, az algoritmus az l függvény egy normalizált változatát használja a klaszterek hasonlóságának mérésére. A következokben egy olyan h(n i, n j ) mennyiséget deniálunk, amely két, n i, illetve n j méretu átlagos klaszter kapcsolat alapú távolságát modellezi. A h függvény meghatározásához a következo észrevételt használjuk, amelynek bizonyítását az Olvasóra hagyjuk (29.6-2. gyakorlat). u,v C 29.8. állítás. Legyen C i és C j két diszjunkt klaszter. Ekkor l(c i C j ) = l(c i ) + l(c j ) + l(c i, C j ). Ennek analógiájára megköveteljük, hogy h(n i, n j ) = h(n i + n j ) h(n i ) h(n j ) is igaz legyen, ahol h(n i ) az átlagos n i méretu klaszter belso kapcsolata. A ROCK algoritmusban a h(n i ) = n 1+2 f (ε) függvény modellezi az átlagos klaszter belso kapcsolatfüggvényét, ahol f : [0, 1] [0, 1] alkalmasan választott függvény. Például, ha tranzakciós adatok Jaccard-hasonlósággal adottak, akkor az f (ε) = (1 ε)/(1 + ε) függvény javasolható. Így két klaszter hasonlóságát az s ROCK (C i, C j ) = l(c i, C j ) h(n i, n j ) alakban írjuk fel, ahol n i = C i és n j = C j. A ROCK algoritmusnak, mint hierarchikus módszernek minden klaszterösszevonási lépés elott O(n 2 ) lehetséges klaszterpár közül kell választania. A hierarchia felépítéséhez O(n) összevonás szükséges, így a naív megvalósítás futási ideje O(n 3 ) lesz. Gyakorlatban az adatpontok l kapcsolatának kiszámítása, illetve a klaszterek összevonásának lépése adatstruktúrák alkalmazásával gyorsítható, így az algoritmus futási ideje hatékonyan csökkentheto. Gyakorlatok 29.6-1. Mutassuk meg, hogy két klaszter kapcsolat alapú távolsága kiszámolható a következo módon: l(c i, C j ) = N ε (u) C i N ε (u) C j, u D ahol az összegzés az adatpontok D halmazán történik. 29.6-2. Bizonyítsuk be az 29.8. állítást.

29.7. Suruség alapú eljárások 1415 29.7. S r ség alapú eljárások Síkban, térben vizualizált adatpontokra szemmel ránézve tetszoleges formájú klasztereket tudunk azonosítani, ha a klaszteren belüli pontok megfelelo méretu (sugarú) környezete jellemzoen több pontot tartalmaz, mint a klaszter határán, illetve általában a klaszterek között találhatóké. Ugyanakkor a kívülálló pontok is felismerhetok ritkább környezetükrol. Ez az észrevétel adja a suruség alapú klaszterezo eljárások alapötletét. Egy s ur uség alapú klaszterezo módszer a következo elemekbol épül fel. Eloször az adatpontokon megadunk egy reexív és szimmetrikus szomszédsági relációt. Ez a reláció meghatározza az adatpontok környezetét. A gyakorlatban a relációt úgy választjuk meg, hogy az minél jobban igazodjon a környezet esetleg elore adott intuitív fogalmához. Második lépésben lokális tulajdonságok alapján minden adatpontról eldöntjük, hogy az egy klaszter belso pontja lesz-e, azaz részt vesz-e a klaszter kialakításában, kohéziójában. A belso pontok meghatározása független lehet a korábban deniált szomszédsági relációtól. A következo lépésben a belso pontokra bevezetjük a szomszédsági reláció tranzitív lezártját. Ez az új ekvivalencia reláció alakítja ki a belso pontok partícióját. A többi, nem belso adatpontot a szomszédsági reláció segítségével (nem feltétlenül egyértelmuen és teljesen) hozzárendeljük a klaszterekhez, mint azok határpontjai. A kimaradt adatpontok adják a kívülállók halmazát. Egy metrikus térbeli ponthalmaz esetén adott sugarú gömbbel értelmezhetjük a pontok környezetét, és egy küszöbnél nagyobb számosságú környezettel rendelkezo pontokat tekinthetjük belso pontoknak. Az így kapott suruség alapú módszer elonye robusztussága az adatpontok (pontosabban távolságaik) perturbációjával szemben. Az algoritmus idokomplexitása lényegesen függ a környezetek generálásától, például az itt szubrutinként használható legközelebbi adatpontot kiválasztó operáció megvalósításától. 29.7.1. A DBSCAN algoritmus A DBSCAN algoritmus a suruségen alapú klaszterezo módszerek legfontosabb példája. A DBSCAN, mint suruség alapú algoritmus a környezet és belso pont fogalmát az alábbi módon deniálja. Legyen D a klaszterezendo adatpontok halmaza egy d metrikával ellátva. Az adatpontokat u, v,... betukkel jelöljük. Legyen ε egy elore adott paraméter. Az ε paraméter segítségével fogjuk meghatározni az algoritmusban használt környezet fogalmát. 29.9. deníció. Egy u D pont ε sugarú környezete legyen N ε (u) = {v D d(u, v) ε}. Ekkor N ε (u) elemeit u szomszédainak hívjuk. Az algoritmus további paramétere az alkalmasan választott µ suruségi korlát. A következo denícióval a klaszterek belso pontjait határozzuk meg. 29.10. deníció. Egy u D pont suruségén szomszédainak N ε (u) számát értjük. Egy u D pontot magpontnak nevezünk, ha N ε (u) µ. A klasztereket az alábbi deníciók segítségével fogjuk kialakítani. 29.11. deníció. Egy u D pont közvetlenül elérheto a v D pontból, ha v magpont és u szomszédja v-nek. Egy u pont elérheto a v pontból, ha létezik a v = v 1, v 2,..., v n, v n+1 = u (v 0) pontok olyan sorozata, hogy minden i = 1,..., n esetén v i+1 közvetlenül elérheto