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
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? |
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 csoportot látsz?
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?
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? …
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.
Mi az a klaszter, és mi az a k?
KLASZTER:
3
Mi az a klaszter, és mi az a k?
KLASZTER:
3
4
Tegyünk egy próbát építsünk klasztereket
3. fejezet · Klaszterezés és szegmentáció
4 / 13
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.
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
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)
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?
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.
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.
Hogyan számol a K-means? – öt ügyfél, kézzel
INDULÁS:
HOZZÁRENDELÉS:
6
Hogyan számol a K-means? – öt ügyfél, kézzel
CENTROID-FRISSÍTÉS:
ISMÉTLÉS: amíg már senki nem vált csoportot.
6
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?
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
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.
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
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.
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
log1p és RobustScaler – mit csinál a számokkal?
7
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
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
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?
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?
Inertia és silhouette – mit számolnak valójában?
7
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
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ó
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.
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.
Kitekintés: DBSCAN – ugyanaz az adat, más feltételezés
13
DBSCAN
A két alapvető paramétere:
14
A működés lényege:
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.