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 összegyűjtése nehézkes lehet. Általában akkor használja az 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. Emellett számos szintetikus kisebbségi mintát ad vissza a megadott százaléktól függően.

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

A szintetikus kisebbségi túlbélyegző technika (SMOTE) statisztikai módszer az adathalmazban lévő esetek számának kiegyensúlyozott növelésére. Az összetevő úgy működik, hogy új példányokat hoz létre a meglévő kisebbségi esetekből, amelyeket bemenetként ad meg. 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ületéről . Az algoritmus ezután új példákat hoz létre, amelyek egyesítik a céleset funkcióit a szomszédai 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 használja, 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 adatkészlete, amelyben az eseteknek csak 1 százaléka rendelkezik az A célértéktel (a kisebbségi osztály), é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, az összetevő tulajdonságaiban az SMOTE százalékos értéke 200 lesz.

Példák

Javasoljuk, hogy kis adatkészlettel próbálja meg 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 az embereket jelöli, akik vért adtak, 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 teljes
Eredeti adatkészlet

(egyenértékű a SMOTE százalék = 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 állít elő. 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ő piplininget, hogy lássa, hogyan befolyásolják az esetek hozzáadása a modellt.

SMOTE konfigurálása

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

  2. Csatlakoztassa a kiemelni kívánt adatkészletet. Ha meg szeretné adni az új esetek létrehozásának funkcióterét, vagy csak adott oszlopok használatával, vagy néhány kizárásával, 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 beolvas minden példát a kisebbségi osztályra. Az oszlopok nem tartalmazhatnak NaN-értékeket.

  5. Az SMOTE százalékos beállításában adjon meg egy egész számot, amely a kimeneti adathalmazban a kisebbségi esetek célszázada. Példa:

    • Í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ályarány nem változott.

    • Adja meg a 100 értéket. Az SMOTE-összetevő új kisebbségi eseteket hoz létre. Ugyanannyi kisebbségi esetet ad hozzá, mint az eredeti adatkészletben. Mivel az SMOTE nem növeli a többségi esetek számát, az egyes osztályok eseteinek aránya megváltozott.

    • Adja meg a 200 értéket. Az összetevő megduplázza a kisebbségi esetek százalékos arányát az eredeti adatkészlethez 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ő, amíg meg nem egyezik a kívánt százalékos értékkel.

    Feljegyzé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ámát. A legközelebbi szomszéd a célesethez hasonló adatsor (eset). 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ő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 számos 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 azt webszolgáltatásként közzétenné. 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 akkor fordulhat elő, ha egy közzétett prediktív folyamat tartalmazza az SMOTE-összetevőt.

  • Az SMOTE alkalmazása előtt 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.

  • 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 genomikai adathalmazokban használt adatokon. Ez a tanulmány jól összefoglalja az 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ójú osztályegyensúlyozatlan adatokhoz.

  • Ha az SMOTE nem hatékony az adathalmazban, az alábbiakat is megfontolhatja:

    • Módszerek a kisebbségi esetek túlbélyegzére vagy a többségi esetek aláampálására.
    • 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.