1 of 34

4

Adattudomány · 2026/27

Klaszterezés és szegmentáció

A klaszter nem megtalált igazság, hanem az elemző döntéseiből született hipotézis – és annyit ér, amennyi ellenőrzést kibír.

4. óra · 2026/27 ősz

Dr. Kőrösi Gábor · Nagy Soma Bálint · Dr. Berta Árpád

​

2 of 34

A félév íve – négy blokk, tizenkét fejezet

3. fejezet · Klaszterezés és szegmentáció

áttekintés

Blokk

Fejezet

Központi kérdés

I. Reprezentáció – miből lesz elemezhető adat?

0. Az adatelemzéstől az adattudományig

Hogyan lesz egy homályos problémából vizsgálható kérdés és védhető állítás?

​

1. Szövegbányászat és szemantikus reprezentációk

Hogyan lesz a szövegből összehasonlítható adat?

​

2. Magas dimenzió és dimenziócsökkentés

Hogyan látunk át és ábrázolunk sokdimenziós reprezentációkat?

II. Rejtett struktúra – mit tudunk meg a megfigyelések viszonyából?

3. Klaszterezés és szegmentáció

Milyen csoportok vannak az adatban?

​

4. Ajánlórendszerek

Mit rangsoroljunk ennek a konkrét felhasználónak?

​

5. Asszociációs szabályok

Mik fordulnak elő rendszeresen együtt?

​

6. Hálózattudomány

Milyen globális kapcsolati szerkezet alakult ki?

III. Idő – mit tesz hozzá az időbeli sorrend?

7. Idősormodellezés és előrejelzés

Mi várható a múltbeli mintázatok alapján?

​

8. Anomália- és változásdetektálás

Mikor tér el a valóság szokatlanul a várttól?

IV. Felelős következtetés – mit állíthatunk, és hogyan adjuk át?

9. Oksági gondolkodás és kísérletezés

Mikor mondhatjuk, hogy valami okoz valamit?

​

10. Magyarázható és felelős adattudomány

Miért ezt adta a modell, és mikor szabad rá döntést építeni?

​

11. Reprodukálható, integrált Data Science projekt

Hogyan lesz mindebből ellenőrizhető, átadható megoldás?

3 of 34

1

Foltokat láttunk. De mi az a folt?

3. fejezet · Klaszterezés és szegmentáció

1 / 13

Múlt órán idáig jutottunk:

Csoportszerű foltokat látunk. De:

  • Hány folt van?
  • Melyik pont melyikbe tartozik?
  • Mit jelentenek?
  • A színt múlt órán utólag tettük fel – volt címkénk, ellenőrzésnek.

​

  • Ma nincs szín.

​

Hány csoportot látsz?

4 of 34

2

Ki dönt, és mit kell másképp tennie?

3. fejezet · Klaszterezés és szegmentáció

2 / 13

ELHAGYHATÓ

Egy nagykereskedelmi forgalmazó. 440 ügyfél. Egy év költése 6 termékkategóriában.

440

egyedi stratégia

nem működtethető

1

közös stratégia mindenkire

működtethető – csak rossz

3–4

eltérő szolgáltatási és kapcsolattartási csomag

ezt tudja a cég fenntartani

Nincs címke. Senki nem írta rá egyetlen ügyfélre sem, hogy melyik csomagba való.

Ki dönt? És mit kell holnap másképp tennie, mint ma?

5 of 34

3

Mit jelent itt egy pont?

3. fejezet · Klaszterezés és szegmentáció

3 / 13

Egy sor = egy ügyfél. Nem tranzakció. Nem termék. Nem hónap.

bemenet – ez definiálja a távolságot

Fresh

…

Milk

…

Grocery

…

Frozen

…

Detergents_Paper

…

Delicassen

…

post hoc profil – NEM ground truth

Channel

Region

kódolva: 1, 2, 3

Melyik oszlop menjen bele a távolságba? …

6 of 34

3

Csoportosítsunk….

3. fejezet · Klaszterezés és szegmentáció

3 / 13

Hogyan csoportosítunk? A múlt órán használt a PCA és a t-SNE jó erre?

bemenet – ez definiálja a távolságot

Fresh

…

Milk

…

Grocery

…

Frozen

…

Detergents_Paper

…

Delicassen

…

post hoc profil – NEM ground truth

Channel

Region

kódolva: 1, 2, 3

Kellene valami jobb megoldás. Ez a, felügyelet nélküli tanulás, a Klaszter analízis.

7 of 34

Mi az a klaszter, és mi az a k?

KLASZTER:

  • ügyfelek olyan csoportja, akik egymáshoz hasonlóbbak, mint bárki máshoz
  • Nem mi címkézzük fel őket előre: a csoportokat az adatból keressük.
  • k: ennyi csoportot KÉRÜNK az algoritmustól. (nem az adat mondja meg )
  • Amit a gép lát: 440 pont egy 6 dimenziós térben.
  • Amit keresünk: hol „csomósodnak”.

3

8 of 34

Mi az a klaszter, és mi az a k?

KLASZTER:

  • ügyfelek olyan csoportja, akik egymáshoz hasonlóbbak, mint bárki máshoz
  • Nem mi címkézzük fel őket előre: a csoportokat az adatból keressük.
  • k: ennyi csoportot KÉRÜNK az algoritmustól. (nem az adat mondja meg )
  • Amit a gép lát: 440 pont egy 6 dimenziós térben.
  • Amit keresünk: hol „csomósodnak”.

3

  • Ez majdnem ugyan az mint amit a dimenzió csökkentésnél láttunk.
  • Itt nem a vizualizáció a cél, hanem a konkrét felbontás.

9 of 34

4

Tegyünk egy próbát építsünk klasztereket

3. fejezet · Klaszterezés és szegmentáció

4 / 13

10 of 34

4

Tegyünk egy próbát: futtassuk le úgy, ahogy van

3. fejezet · Klaszterezés és szegmentáció

4 / 13

A cég 3 csomagot tud fenntartani → legyen k = 3. Az adat ott van: hat számoszlop, 440 sor. Futtassuk le, ahogy van.

X = ugyfelek[["Fresh", "Milk", "Grocery", "Frozen",

"Detergents_Paper", "Delicassen"]]

cimke = KMeans(n_clusters=3).fit_predict(X)

Az algoritmus röviden: k középpontot keres, és minden ügyfelet a hozzá legközelebbihez rendel.

11 of 34

4

Tegyünk egy próbát: futtassuk le úgy, ahogy van

3. fejezet · Klaszterezés és szegmentáció

4 / 13

A cég 3 csomagot tud fenntartani → legyen k = 3. Az adat ott van: hat számoszlop, 440 sor. Futtassuk le, ahogy van.

X = ugyfelek[["Fresh", "Milk", "Grocery", "Frozen",

"Detergents_Paper", "Delicassen"]]

cimke = KMeans(n_clusters=3).fit_predict(X)

Az algoritmus röviden: k középpontot keres, és minden ügyfelet a hozzá legközelebbihez rendel.

Mielőtt megnyomom …. Vajon mi alapján fogja szétvágni a 440 ügyfelet?

A

kis / közepes / nagy összköltés

B

élelmiszer- vs. vegyiáru-fókusz

C

vendéglátás vs. kiskereskedelem

D

valami más – mondd meg, mi

12 of 34

5

Kaptunk három klasztert. Működött?

3. fejezet · Klaszterezés és szegmentáció

5 / 13

Megvan. Három klaszter. Méretük: 330 · 60 · 50

330 ügyfél – a háromnegyedük – egyetlen csoportba esett.

A hat kategóriából kettő egyáltalán nem szólt bele.

def klaszterkozi_elteres(centroidok, klaszter_meretek):

atlag = np.average(centroidok, axis=0, weights=klaszter_meretek)

kozotti = (np.asarray(klaszter_meretek)[:, None] * (centroidok - atlag) ** 2).sum(axis=0)

return pd.Series(100 * kozotti / kozotti.sum(), index=SPEND).sort_values(ascending=False)

13 of 34

5

Kaptunk három klasztert. Működött?

3. fejezet · Klaszterezés és szegmentáció

5 / 13

Megvan. Három klaszter. Méretük: 330 · 60 · 50

330 ügyfél – a háromnegyedük – egyetlen csoportba esett.

A hat kategóriából kettő egyáltalán nem szólt bele.

Nem három ügyféltípust kaptunk. Két nagy számoszlopot kaptunk, három szeletben.

Eladnád ezt az értékesítési vezetőnek?

14 of 34

5

Kaptunk három klasztert. Működött?

3. fejezet · Klaszterezés és szegmentáció

5 / 13

Megvan. Három klaszter. Méretük: 330 · 60 · 50

(a) Az algoritmus MINDIG ad felosztást

Nem tud nemet mondani. Véletlen számokra is adna hármat – ugyanilyen magabiztosan.

(b) Hogy mi alapján – azt mi döntöttük el

Egyetlen döntéssel: azzal, hogy nem hoztunk döntést.

15 of 34

6

Mitől jó egy szegmens?

3. fejezet · Klaszterezés és szegmentáció

6 / 13

Három csoportot kaptunk. Az algoritmus dolgozott. Mégsem használható.

Akkor mitől lenne jó egy szegmens?

méret

kiszolgálható-e egyáltalán?

elkülönülés

tényleg mások, vagy csak külön színt kaptak?

értelmezhető profil

meg tudod fogalmazni egy mondatban, kik ők?

stabilitás

holnap újrafuttatva ugyanez jön ki?

eltérő akció

teszel velük mást, mint a többiekkel?

Ez a mai mérce. Nem egy mérőszám.

16 of 34

Hogyan számol a K-means? – öt ügyfél, kézzel

INDULÁS:

  • válassz k = 2 véletlen középpontot (mondjuk A-t és D-t).

HOZZÁRENDELÉS:

  • mindenki a legközelebbi középponthoz kerül (euklideszi távolság) :
                  • B–A = √((3−2)²+(3−3)²) = 1,0;
              • B–D = √((3−8)²+(3−9)²) ≈ 7,8 → B a kékhez.

​

6

17 of 34

Hogyan számol a K-means? – öt ügyfél, kézzel

CENTROID-FRISSÍTÉS:

  • az új középpont = a csoport tagjainak ÁTLAGA változónként.
  • {A,B,C}:
    • Tej (2+3+2)/3 ≈ 2,3
    • Mirelit (3+3+4)/3 ≈ 3,3.
  • Ez a CENTROID – innen a név: k-means = k átlagpont.

ISMÉTLÉS: amíg már senki nem vált csoportot.

6

18 of 34

5

Kaptunk három klasztert. Működött?

3. fejezet · Klaszterezés és szegmentáció

5 / 13

Megvan. Három klaszter. Méretük: 330 · 60 · 50

​

Miért lett ilyen furcsa az eloszlás?

19 of 34

9

Skáláznunk kell

3. fejezet · Klaszterezés és szegmentáció

9 / 13

Az első eredmények alapján:

1. Skáláznunk kell

20 of 34

7

Miért pont így szeletelt? Centroid és távolság

3. fejezet · Klaszterezés és szegmentáció

7 / 13

K-means, három lépésben:

1. Válassz k középpontot.

2. Mindenki a hozzá legközelebbihez tartozik.

3. A középpont = a csoportja átlaga. → vissza a 2-re, amíg mozog.

  • A „legközelebb" itt euklideszi távolság: minden változó eltérése négyzetesen számít.

​

  • Ha az egyik oszlop számtartománya tízszeres → a hozzájárulása a távolsághoz százszoros.

​

  • Ezért szeletelt aszerint, amit láttunk. Nem hibázott. Azt csinálta, amit kértünk.

​

  • És a középpont átlag: néhány szélsőségesen nagy ügyfél elhúzza magához.

​

​

arányos tengelyek

az egyik tengely tízszeres

Ugyanazok a pontok.

Ugyanaz az algoritmus.

Másik geometria – és a felosztás fentről lefelé helyett balról jobbra esik szét.

sematikus ábra – nem a Wholesale-adat

a nagy jel a középpont · nem a pontok változtak, hanem a geometria

21 of 34

7

Miért pont így szeletelt? Centroid és távolság

3. fejezet · Klaszterezés és szegmentáció

7 / 13

K-means, három lépésben:

1. Válassz k középpontot.

2. Mindenki a hozzá legközelebbihez tartozik.

3. A középpont = a csoportja átlaga. → vissza a 2-re, amíg mozog.

  • Skáláznunk kell!!

arányos tengelyek

az egyik tengely tízszeres

Ugyanazok a pontok.

Ugyanaz az algoritmus.

Másik geometria – és a felosztás fentről lefelé helyett balról jobbra esik szét.

sematikus ábra – nem a Wholesale-adat

a nagy jel a középpont · nem a pontok változtak, hanem a geometria

22 of 34

log1p és RobustScaler – mit csinál a számokkal?

  • log1p(x) = log(1+x): összenyomja a nagy számokat, hogy az ARÁNY számítson, ne a "forintkülönbség".
  • Nyersen a 30 000 tízezerszerese a 3-nak;
  • log után csak ~7-szerese. (A +1 csak arra kell, hogy a 0 költés ne okozzon gondot.)

7

23 of 34

log1p és RobustScaler – mit csinál a számokkal?

• RobustScaler: skálázott érték = (x − medián) / IQR (a középső 50% terjedelme).

Példa: medián 8, IQR 4 → a 10-ből (10−8)/4 = +0,5, azaz „fél dobozzal a tipikus fölött”.

​

• Miért nem átlag/szórás (StandardScaler)?

A mediánt és az IQR-t a néhány óriásügyfél NEM tudja elrángatni – az átlagot és a szórást igen.

7

24 of 34

8

A skála átírja a geometriát

3. fejezet · Klaszterezés és szegmentáció

8 / 13

Nézzük meg, mivel dolgoztunk:

Erősen jobbra ferde eloszlások. Néhány nagyon nagy ügyfél. Ez nem hiba – ilyen a nagykereskedelem. (ferdeség 2,6 … 11,2)

Két döntés – mindkettő indokolható, egyik sem automatikus:

log1p

nem a különbség forintban számít, hanem az arány – 10 → 20 ugyanannyi „távolság", mint 10 000 → 20 000.

RobustScaler

25 of 34

9

Hány csoportot tartsunk meg?

3. fejezet · Klaszterezés és szegmentáció

9 / 13

Az első eredmények alapján:

1. Skáláznunk kell

2. Biztos, hogy jó a k=3?

26 of 34

9

Hány csoportot tartsunk meg?

3. fejezet · Klaszterezés és szegmentáció

9 / 13

A cég 3–4 csomagot tud fenntartani. Akkor k = 3? Ez üzleti korlát, nem az adat válasza. Mind a kettő számít – de nem ugyanaz.

Öt jel. Egyik sem dönt egyedül.

inertia / „könyök"

hol lapul el a görbe?

→ heurisztika, nem optimum

silhouette

kompaktak és elkülönültek?

→ a jelentésről semmit nem tud

klaszterméretek

jó-e egy néhány tucat fős „szegmens" 440-ből?

stabilitás

más kiindulás, más részminta: ugyanaz jön ki?

kezelhetőség

tud a cég ennyi csomagot valóban működtetni?

27 of 34

Inertia és silhouette – mit számolnak valójában?

  • INERTIA = a klasztereken belüli négyzetes távolságok összege (minden pont távolsága a SAJÁT centroidjától, négyzetre emelve, összeadva).
  • Kicsi = kompakt csoportok. Csapda: k növelésével MINDIG csökken → csak a „könyököt” keressük, optimumot nem ad.

​

7

28 of 34

Inertia és silhouette – mit számolnak valójában?

SILHOUETTE (“sziluett”) pontonként [−1, +1] közé eső érték:

s = (b − a) / max(a, b), ahol

a = átlagtáv a saját klaszter tagjaitól,

b = átlagtáv a legközelebbi idegen klasztertől.

Értékelése:

s≈+1: jó helyen van

s≈0: határon ül

s<0: rossz csoportban.

7

29 of 34

STOP — most te dolgozol

Nyisd meg a CooSpace-en a 4. fejezet tananyagát, és dolgozd át.

​

⏱ 20 perc — utána itt folytatjuk közösen.

​

A beépített ellenőrző kérdések kötelezőek — ne lapozd át őket.

​

Ha hamarabb végzel: várd meg a többieket, vagy belekezdhetsz a feladat-notebook elejébe.

​

Ha elakadtál: jelezz — odamegyek.

3. fejezet · Klaszterezés és szegmentáció

​

30 of 34

11

Mi jött ki? A k melletti érvelés

3. fejezet · Klaszterezés és szegmentáció

11 / 13

A 440 ügyfélből 201 (45,7%) került más csoportba. Ugyanaz az adat, ugyanaz az algoritmus, ugyanaz a k – másik előfeldolgozás. És most már nem a számtartomány szerint vág, hanem a költés szerkezete szerint.

31 of 34

12

Szegmenskártya: a profil adja a jelentést

3. fejezet · Klaszterezés és szegmentáció

12 / 13

A modell ennyit adott: 0, 1, 2. Ezeknek nincs sorrendjük és nincs jelentésük. A jelentés az eredeti mértékegységből jön.

32 of 34

Kitekintés: DBSCAN – ugyanaz az adat, más feltételezés

  • K-means: egy középpont körüli gömb.
  • DBSCAN: a pontok SŰRŰN állnak. Nem kell előre k; girbegurba alakot is megtalál.

13

33 of 34

DBSCAN

A két alapvető paramétere:

  • 𝜀 (epsilon): A keresési sugár (mekkora távolságon belül vizsgáljuk a szomszédos pontokat).
  • min_samples: A minimális pontszám, amely egy sűrű régió (mag) kialakulásához szükséges az adott sugáron belül.

14

A működés lényege:

  1. Az algoritmus véletlenszerűen vesz egy még meg nem vizsgált pontot.
  2. Megnézi a szomszédságát. Ha az eléri a min_samples küszöböt, új klasztert indít, és magpontként kezeli.
  3. Láncszerűen "terjeszkedik": behúzza a klaszterbe az összes olyan szomszédos pontot és azok saját szomszédait, amelyek szintén sűrű zónát alkotnak (ezt nevezik sűrűség-elérhetőségnek).
  4. Ha a pont nem elég sűrű, átmenetileg zajként jelöli (később egy másik klaszter részévé válhat).
  5. Addig ismétli a folyamatot, amíg az összes adatpontot be nem járja.

34 of 34

15

Három használható profil, nem három valós ügyféltípus

3. fejezet · Klaszterezés és szegmentáció

13 / 13

vetítésen látott folt

klaszter

valós kategória

személyre szabott ajánlás

Négy különböző dolog. Egyik sem következik automatikusan a másikból.

A rögzített előfeldolgozás mellett három stabil és értelmezhető költési profil írható le, amelyek eltérő kapcsolattartást indokolhatnak. Ez nem három valós ügyféltípus bizonyítéka.