Megosztás a következőn keresztül:


SMOTE

Ez a cikk azt ismerteti, hogyan használhatja az SMOTE összetevőt az Azure Machine Learning Designerben a gépi tanuláshoz használt adatkészletek alulreprezentált eseteinek számának növeléséhez. Az SMOTE jobb módja a ritka esetek számának növelésének, mint a meglévő esetek egyszerű duplikálása.

Az SMOTE összetevőt egy kiegyensúlyozatlan adatkészlethez csatlakoztatja. Az adathalmazok kiegyensúlyozatlanságának számos oka lehet. Előfordulhat például, hogy a megcélzott kategória ritka a populációban, vagy az adatok gyűjtése nehézkes lehet. Általában akkor használ SMOTE-t, ha az elemezni kívánt osztály alulreprezentált.

Az összetevő egy olyan adatkészletet ad vissza, amely az eredeti mintákat tartalmazza. A megadott százalékos aránytól függően számos szintetikus kisebbségi mintát is visszaad.

További információ az SMOTE-ról

A Szintetikus Minority Oversampling Technique (SMOTE) egy statisztikai technika az adathalmazban lévő esetek számának kiegyensúlyozott növeléséhez. Az összetevő úgy működik, hogy új példányokat hoz létre a bemenetként megadott meglévő kisebbségi esetekből. Az SMOTE ezen megvalósítása nem változtat a többségi esetek számán.

Az új példányok nem csupán a meglévő kisebbségi esetek másolatai. Ehelyett az algoritmus mintákat vesz fel az egyes célosztályok és a legközelebbi szomszédok funkcióteréről . Az algoritmus ezután új példákat hoz létre, amelyek kombinálják a céleset funkcióit a szomszédjai jellemzőivel. Ez a megközelítés növeli az egyes osztályok számára elérhető funkciókat, és általánosabbá teszi a mintákat.

Az SMOTE a teljes adatkészletet bemenetként veszi fel, de csak a kisebbségi esetek százalékos arányát növeli. Tegyük fel például, hogy van egy kiegyensúlyozatlan adathalmaza, amelyben az eseteknek csak 1 százaléka rendelkezik az A célértéktel (a kisebbségi osztálysal), és az esetek 99 százalékában a B érték szerepel. Ha a kisebbségi esetek százalékos arányát az előző százalék kétszeresére szeretné növelni, akkor az összetevő tulajdonságaiban az SMOTE százalékértékeként200 értéket kell megadnia.

Példák

Javasoljuk, hogy próbálja meg kis adatkészlettel használni az SMOTE-t, hogy lássa, hogyan működik. Az alábbi példa az Azure Machine Learning Designerben elérhető véradási adatkészletet használja.

Ha hozzáadja az adathalmazt egy folyamathoz, és az adathalmaz kimenetén a Vizualizáció lehetőséget választja, láthatja, hogy az adathalmaz 748 sora vagy esete közül 570 eset (76 százalék) a 0. osztály, 178 eset (24 százalék) pedig az 1. osztály. Bár ez az eredmény nem túlzottan kiegyensúlyozatlan, az 1. osztály azokat jelöli, akik vért adományoztak, ezért ezek a sorok tartalmazzák a modellezendő funkcióteret .

Az esetek számának növeléséhez az SMOTE százalékos értékét 100-as többszörösök használatával állíthatja be az alábbiak szerint:

0. osztály 1. osztály összesen
Eredeti adatkészlet

(egyenértékű az SMOTE százalékos értékének = 0)
570

76%
178

24%
748
SMOTE százalék = 100 570

62%
356

38%
926
SMOTE százalék = 200 570

52%
534

48%
1,104
SMOTE százalék = 300 570

44%
712

56%
1,282

Figyelmeztetés

Az esetek számának SMOTE használatával történő növelése nem garantált, hogy pontosabb modelleket hoz létre. Próbálja meg különböző százalékértékekkel, különböző funkciókészletekkel és különböző számú legközelebbi szomszédkal rendelkező csőhálózatot használni, hogy lássa, hogyan befolyásolják az esetek hozzáadása a modellt.

Az SMOTE konfigurálása

  1. Adja hozzá az SMOTE összetevőt a folyamathoz. Az összetevőt az Adatátalakítási összetevők területen, a Manipuláció kategóriában találja.

  2. Csatlakoztassa a növelni kívánt adatkészletet. Ha meg szeretné adni az új esetek létrehozásának funkcióterét, akár csak bizonyos oszlopok használatával, akár néhány kivételével, használja az Adathalmaz oszlopainak kijelölése összetevőt . Ezután elkülönítheti a használni kívánt oszlopokat az SMOTE használata előtt.

    Ellenkező esetben az új esetek SMOTE-n keresztüli létrehozása a bemenetként megadott összes oszlopon alapul. A funkcióoszlopok legalább egy oszlopa numerikus.

  3. Győződjön meg arról, hogy a címkét vagy célosztályt tartalmazó oszlop ki van jelölve. Az SMOTE csak bináris címkéket fogad el.

  4. Az SMOTE összetevő automatikusan azonosítja a kisebbségi osztályt a címkeoszlopban, majd lekéri a kisebbségi osztályra vonatkozó összes példát. Az oszlopok nem tartalmazhatnak NaN-értékeket.

  5. Az SMOTE százalékbeállításban adjon meg egy egész számot, amely a kimeneti adathalmazban a kisebbségi esetek célszázada. Például:

    • Írja be a 0 értéket. Az SMOTE összetevő pontosan ugyanazt az adatkészletet adja vissza, mint amelyet bemenetként adott meg. Nem ad hozzá új kisebbségi eseteket. Ebben az adatkészletben az osztály aránya nem változott.

    • A 100 értéket kell megadnia. Az SMOTE összetevő új kisebbségi eseteket hoz létre. Ugyanannyi kisebbségi esetet ad hozzá, mint az eredeti adathalmazban. Mivel az SMOTE nem növeli a legtöbb eset számát, az egyes osztályok eseteinek aránya megváltozott.

    • A 200 értéket kell megadnia. Az összetevő megduplázza a kisebbségi esetek százalékos arányát az eredeti adathalmazhoz képest. Ez nem eredményez kétszer annyi kisebbségi esetet, mint korábban. Ehelyett az adathalmaz méretét úgy növelik, hogy a többségi esetek száma változatlan maradjon. A kisebbségi esetek száma addig növekszik, amíg meg nem egyezik a kívánt százalékos értékkel.

    Megjegyzés

    Csak a 100-ból álló többszörösöket használja az SMOTE százalékos értékéhez.

  6. Az SMOTE-algoritmus által az új esetek létrehozásához használt funkciótér méretének meghatározásához használja a Legközelebbi szomszédok száma lehetőséget. A legközelebbi szomszéd egy adatsor (eset), amely hasonló a célesethez. A két eset közötti távolság mérése az összes jellemző súlyozott vektorainak kombinálásával történik.

    • A legközelebbi szomszédok számának növelésével további esetekből kaphat funkciókat.
    • A legközelebbi szomszédok számának alacsonyan tartásával olyan funkciókat használ, amelyek jobban hasonlítanak az eredeti mintában szereplő funkciókra.
  7. Írjon be egy értéket a Véletlenszerű kezdőérték mezőbe, ha ugyanazokat az eredményeket szeretné biztosítani ugyanazon folyamat futtatásainál ugyanazokkal az adatokkal. Ellenkező esetben az összetevő véletlenszerű magot hoz létre a processzoróra értékei alapján a folyamat üzembe helyezésekor. A véletlenszerű magok létrehozása kissé eltérő eredményeket okozhat a futtatások során.

  8. Küldje el a folyamatot.

    Az összetevő kimenete egy olyan adatkészlet, amely tartalmazza az eredeti sorokat, valamint néhány hozzáadott, kisebbségi esettel rendelkező sort.

Technikai megjegyzések

  • Az SMOTE-összetevőt használó modell közzétételekor távolítsa el az SMOTE-t a prediktív folyamatból, mielőtt az webszolgáltatásként lenne közzétéve. Ennek az az oka, hogy az SMOTE a modell fejlesztésére szolgál a betanítás során, nem pedig pontozásra. Hibaüzenet jelenhet meg, ha egy közzétett prediktív folyamat tartalmazza az SMOTE-összetevőt.

  • Gyakran jobb eredményeket érhet el, ha törli a hiányzó értékeket, vagy más átalakításokat alkalmaz az adatok javításához az SMOTE alkalmazása előtt.

  • Egyes kutatók azt vizsgálták, hogy az SMOTE hatékony-e a nagy méretű vagy ritka adatokon, például a szövegbesorolásban vagy a genomikai adathalmazokban használt adatok esetében. Ez a tanulmány jól összefoglalja a SMOTE ilyen esetekben történő alkalmazásának hatásait és elméleti érvényességét: Blagus és Lusa: SMOTE a magas dimenziós osztály-kiegyensúlyozatlan adatokhoz.

  • Ha az SMOTE nem hatékony az adathalmazban, érdemes lehet megfontolni az alábbiakat:

    • A kisebbségi esetek túlmintázásával vagy a többségi esetek alulbélyegzásával kapcsolatos módszerek.
    • Együttes technikák, amelyek közvetlenül segítik a tanulót a fürtözés, a zsákolás vagy az adaptív kiemelés használatával.

Következő lépések

Tekintse meg az Azure Machine Learning számára elérhető összetevőket .