Ugrás a tartalomhoz

concept drift

A Wikiszótárból, a nyitott szótárból


Főnév

concept drift (tsz. concept drifts)

  1. (informatika, mesterséges intelligencia) Concept drift (magyarul: fogalomelcsúszás vagy koncepciódrift) egy gépi tanulási probléma, amikor a modell által megtanult statisztikai kapcsolatok idővel megváltoznak. Ez különösen folyamatosan frissülő vagy valós idejű adatok esetén jelent problémát, mert a tanított modell elavul, és romlik az előrejelzési pontossága.



🧠 Alapötlet

Egy gépi tanulási modell azt feltételezi, hogy az adateloszlás időben stabil – vagyis a tanító és a jövőbeli adatok ugyanabból a valószínűségi eloszlásból származnak:

📌 P(X, Y) változatlan

Concept drift akkor lép fel, ha ez már nem igaz, például:

  • P(Y|X) (azaz a célváltozó feltételes eloszlása) megváltozik
  • az input jellemzők viselkedése is eltolódik



📉 Példák

Példa Drift típusa
🎯 E-mail spam szűrés: a spammerek új kifejezéseket használnak Célváltozó drift (Y változik)
🛒 Felhasználói viselkedés megváltozik egy webáruházban Jellemzők eltolódása (X változik)
🏦 Hitelképesség megítélése gazdasági válság alatt Koncepcionális drift: `P(Y X)` változik



🔍 Típusai

Típus Leírás
Sudden drift Hirtelen változás (pl. új spam-taktika)
Gradual drift Lassú változás idővel
Incremental drift Kismértékű, folyamatos változás
Recurring drift Időszakosan visszatérő minták (pl. karácsonyi vásárlás)



🧪 Detektálás módszerei

Módszer Leírás
Statistical tests pl. Kullback-Leibler divergencia, KS-teszt két eloszlás között
Window-based accuracy monitoring Az elmúlt N minta predikciós hibája
Drift detection methods (DDM, EDDM) Valós idejű figyelőrendszerek predikcióhiba alapján
ADWIN Adaptív csúszóablak-algoritmus



🧰 Védekezési stratégiák

Módszer Mit csinál
Modell újratanítása (retraining) Rendszeres újratanítás új adatokkal
Online learning Modell valós időben tanul az új mintákból
Windowing Csak az elmúlt időszak adataiból tanulunk
Weighting Régebbi példák súlyának csökkentése
Drift-aware ensemble Több modell fut párhuzamosan, egyik elavul, másik frissül (pl. Learn++.NSE, ARF)



🧠 Python példa: koncepciódrift szimulációja

import numpy as np
import matplotlib.pyplot as plt
from sklearn.linear_model import LogisticRegression

# Generáljunk két időszakra eltérő mintákat
X1 = np.random.normal(0, 1, (100, 1))
y1 = (X1 > 0).astype(int).ravel()

X2 = np.random.normal(1, 1, (100, 1))  # drift!
y2 = (X2 > 1).astype(int).ravel()

# Modell tanítása az első mintán
clf = LogisticRegression()
clf.fit(X1, y1)

print("Pontosság az 1. időszakon:", clf.score(X1, y1))  # jó
print("Pontosság a 2. időszakon:", clf.score(X2, y2))  # romlott

🧩 TL;DR

A concept drift egy olyan jelenség, amikor a gépi tanulási modell által tanult összefüggések idővel érvényüket vesztik, mert az adatok statisztikai tulajdonságai megváltoznak. Ez folyamatos adatfolyamok, üzleti alkalmazások és biztonsági rendszerek esetében jelent kihívást, és speciális technikákat igényel a detektálására és kezelésére.