Ein­füh­rung

Was haben Daten­sätze in Berei­chen wie Betrugs­er­ken­nung im Ban­king, Echt­zeit­ge­bote im Mar­ke­ting oder Intru­sion Detec­tion in Netz­wer­ken gemeinsam?

Daten, die in die­sen Berei­chen ver­wen­det wer­den, wei­sen oft weni­ger als 1% sel­te­ner, aber “inter­es­san­ter” Ereig­nisse auf (z. B. Betrü­ger, die Kre­dit­kar­ten ver­wen­den, Nut­zer kli­cken auf Wer­bung oder beschä­digte Ser­ver scan­nen ihr Netz­werk). Die meis­ten Algo­rith­men zum maschi­nel­len Ler­nen funk­tio­nie­ren jedoch nicht gut mit unaus­ge­wo­ge­nen Daten­sät­zen. Die fol­gen­den sie­ben Tech­ni­ken kön­nen Ihnen dabei hel­fen, einen Klas­si­fi­ka­tor so zu trai­nie­ren, dass er die abnor­male Klasse erkennt.

Imbalanced Learning Bild1
Abbil­dung 1 Unaus­ge­wo­gene Zielvariable

Die rich­tige Metri­ken verwenden

Die Anwen­dung unan­ge­mes­se­ner Bewer­tungs­me­tri­ken für Modelle, die mit unaus­ge­wo­ge­nen Daten gene­riert wer­den, kann gefähr­lich sein. Gehen wir davon aus, dass die Trai­nings­da­ten so sind wie in der obi­gen Gra­fik. Wenn Genau­ig­keit (Accu­racy) ver­wen­det wird, um die Güte eines Modells zu mes­sen, wird ein Modell, das alle Test­pro­ben in “0” klas­si­fi­ziert, eine aus­ge­zeich­nete Genau­ig­keit (99,8%) auf­wei­sen, aber offen­sicht­lich wird die­ses Modell keine wert­vol­len Infor­ma­tio­nen für uns liefern.

In die­sem Fall kön­nen andere alter­na­tive Bewer­tungs­me­tri­ken ange­wen­det wer­den wie: Prä­zi­sion / Spe­zi­fi­tät: Wie viele aus­ge­wählte Instan­zen sind rele­vant. Recall / Sen­si­ti­vity: Wie viele rele­vante Instan­zen sind aus­ge­wählt. F1-Ergeb­nis: har­mo­ni­sches Mit­tel der Präz­sion und des Abrufs. MCC: Kor­re­la­ti­ons­ko­ef­fi­zi­ent zwi­schen den beob­ach­te­ten und vor­her­ge­sag­ten binä­ren Klas­si­fi­ka­tio­nen. AUC: Bezie­hung zwi­schen der echt posi­ti­ven Rate und der falsch posi­ti­ven Rate.

Resam­peln des Trainingssatz

Neben der Ver­wen­dung ver­schie­de­ner Bewer­tungs­kri­te­rien kann auch daran gear­bei­tet wer­den, unter­schied­li­che Daten­sätze zu erhal­ten. Zwei Ansätze, um einen aus­ge­wo­ge­nen Daten­satz aus einem unaus­ge­wo­ge­nen Daten­satz her­aus­zu­fil­tern, sind Under-sam­pling und Over-sampling. 

Under-Sam­pling gleicht den Daten­satz aus, indem die Größe der reich­lich vor­han­de­nen Klasse redu­ziert wird. Diese Methode wird ver­wen­det, wenn die Daten­menge aus­reicht. Indem alle Stich­pro­ben in der sel­te­nen Klasse gehal­ten wer­den und zufäl­lig eine glei­che Anzahl von Stich­pro­ben in der reich­lich vor­han­de­nen Klasse aus­ge­wählt wird, kann ein aus­ge­wo­ge­ner neuer Daten­satz zur wei­te­ren Model­lie­rung abge­ru­fen werden.

Im Gegen­satz dazu wird Over-sam­pling ver­wen­det, wenn die Daten­menge nicht aus­reicht. Es ver­sucht, den Daten­satz aus­zu­glei­chen, indem die Größe sel­te­ner Pro­ben erhöht wird. Anstatt reich­lich vor­han­dene Pro­ben zu ent­fer­nen, wer­den neue sel­tene Pro­ben erzeugt, durch Metho­den wie Boot­strap­ping oder MOTE (Syn­the­tic Mino­rity Over-Sam­pling Technique)

Zu beach­ten ist, dass es kei­nen abso­lu­ten Vor­teil einer Resam­pling-Methode gegen­über einer ande­ren gibt. Die Anwen­dung die­ser bei­den Metho­den hängt vom Anwen­dungs­fall und dem Daten­satz selbst ab. Eine Kom­bi­na­tion von Über- und Unter­stich­pro­ben ist oft auch erfolgreich. 

K‑fold Kreuz­va­li­die­rung nutzen

Es ist anzu­mer­ken, dass die Kreuz­va­li­die­rung ord­nungs­ge­mäß ange­wen­det wer­den sollte, wäh­rend die Over-sam­pling zur Lösung von Ungleich­ge­wichts­pro­ble­men ein­ge­setzt wird. Auch zu beach­ten ist, dass bei Over-sam­pling sel­tene Stich­pro­ben beob­ach­tet wer­den und Boot­strap­ping ange­wen­det wird, um neue Zufalls­da­ten basie­rend auf einer Ver­tei­lungs­funk­tion zu gene­rie­ren. Wenn die Kreuz­va­li­die­rung nach Über­ab­tas­tung ange­wen­det wird, über­ar­bei­ten wir unser Modell im Grunde auf ein bestimm­tes künst­li­ches Boot­strap­ping-Ergeb­nis. Aus die­sem Grund sollte eine Über­prü­fungs­va­li­die­rung immer durch­ge­führt wer­den, bevor die Daten über­ab­ge­tas­tet wer­den, ebenso wie die Merk­mal­aus­wahl imple­men­tiert wer­den sollte. Nur durch wie­der­hol­tes Abtas­ten der Daten kann eine Zufäl­lig­keit in den Daten­satz ein­ge­führt erden, um sicher­zu­stel­len, dass kein Über­fül­lungs­pro­blem auftritt.

Ver­schie­dene neu abge­tas­tete Daten­sätze erzeugen

Der ein­fachste Weg, ein Modell erfolg­reich zu ver­all­ge­mei­nern, ist die Ver­wen­dung von mehr Daten. Das Pro­blem besteht darin, dass Out-of-the-Box-Klas­si­fi­zie­rer wie logis­ti­sche Regres­sion oder zufäl­lige Gesamt­struk­tur dazu nei­gen, zu ver­all­ge­mei­nern, indem die sel­tene Klasse ver­wor­fen wird. Eine ein­fa­che best Prac­tice ist die Erstel­lung von n Model­len, die alle Stich­pro­ben der sel­te­nen Klasse und n- ver­schie­dene Stich­pro­ben der reich­lich vor­han­de­nen Klasse ver­wen­den. Wenn man 10 Modelle zusam­men­stel­len möchte, würde man z.B. die 1.000 Fälle der sel­te­nen Klasse und zufäl­lig 10.000 Fälle der reich­lich vor­han­de­nen Klasse. Dann tei­len Sie ein­fach die 10.000 Fälle in 10 Stü­cke und trai­nie­ren 10 ver­schie­dene Modelle.

Die­ser Ansatz ist ein­fach und per­fekt hori­zon­tal ska­lier­bar, wenn man viele Daten hat, da man seine Modelle ein­fach auf ver­schie­de­nen Clus­ter­kno­ten trai­nie­ren und aus­füh­ren kön­nen. Ensem­ble-Modelle ten­die­ren auch dazu, bes­ser zu ver­all­ge­mei­nern, was die­sen Ansatz leicht zu hand­ha­ben macht. 

Die reich­lich vor­han­dene Klasse Clustern

Anstatt sich auf Zufalls­stich­pro­ben zu ver­las­sen, um die Viel­falt der Trai­nings­stich­pro­ben abzu­de­cken, ann man, die reich­lich vor­han­dene Klasse in r Grup­pen zu grup­pie­ren, wobei r die Anzahl der Fälle in r ist. Für jede Gruppe wird nur das Medoid (Zen­trum des Clus­ters) auf­be­wahrt. Das Modell wird dann nur mit er sel­te­nen Klasse und den Medo­iden trainiert.

Eigene Modelle entwerfen

Alle bis­he­ri­gen Metho­den kon­zen­trie­ren sich auf die Daten und behal­ten die Modelle als feste Kom­po­nente bei. In der Tat ist es nicht erfor­der­lich, die Daten neu zu erfas­sen, wenn das Modell für naus­ge­gli­chene Daten geeig­net ist. Der berühmte XGBoost ist bereits ein guter Start­punkt, wenn die las­sen nicht zu stark ver­zerrt wer­den, weil es intern dafür sorgt, dass die Taschen, auf denen es trai­niert, nicht unaus­ge­gli­chen sind. Aber dann wer­den die Daten neu abge­tas­tet, es pas­siert nur heimlich. 

Durch das Ent­wer­fen einer Kos­ten­funk­tion, die eine fal­sche Klas­si­fi­zie­rung der sel­te­nen Klasse mehr bestraft als fal­sche Klas­si­fi­zie­run­gen der reich­lich vor­han­de­nen Klasse, ist es mög­lich, viele Modelle zu ent­wer­fen, die sich natür­lich zuguns­ten der sel­te­nen Klasse ver­all­ge­mei­nern. Zum Bei­spiel, eine SVM zu opti­mie­ren, um fal­sche Klas­si­fi­zie­run­gen der sel­te­nen Klasse mit dem­sel­ben Ver­hält­nis zu bestra­fen, in dem diese Klasse unter­re­prä­sen­tiert ist.

Quint­essenz

Dies ist keine exklu­sive Liste von Tech­ni­ken, son­dern eher ein Aus­gangs­punkt für den Umgang mit unaus­ge­wo­ge­nen Daten. Es gibt kei­nen bes­ten Ansatz oder ein Modell, das für alle Pro­bleme geeig­net ist, und es wird drin­gend emp­foh­len, ver­schie­dene Tech­ni­ken und Modelle aus­zu­pro­bie­ren, um zu bewer­ten, was am bes­ten funk­tio­niert. Krea­tiv zu sein und ver­schie­dene Ansätze kom­bi­nie­ren ist die beste Lösung. Es ist auch wich­tig zu wis­sen, dass in vie­len Berei­chen (z. B. Betrugs­er­ken­nung, Echt­zeit­ge­bote), wo unaus­ge­gli­chene Klas­sen auf­tre­ten, sich die “Markt­re­geln” stän­dig ändern. Es ist also wich­tig zu über­prü­fen, ob frü­here Daten ver­al­tet sein könnten.