Átölelő arc vonat és osztott adatkészlet

Atolelo Arc Vonat Es Osztott Adatkeszlet



A Hugging Face könyvtárnak nincs speciális train_test_split nevű függvénye. Ha azonban az adatok felosztásáról van szó a gépi tanulási feladatok oktatásához és teszteléséhez, a train_test_split függvényt gyakran használják más népszerű könyvtárakban, például a scikit-learnben. Itt elmagyarázzuk azokat a paramétereket, amelyeket általában a scikit-learn train_test_split függvényében használnak.

A Hugging Face adatkészlet-könyvtárában található train_test_split metódus az adatkészlet két részhalmazra való felosztására szolgál: egy képzési részhalmazra és egy tesztelési részhalmazra. Ezt a módszert általában a gépi tanulásban alkalmazzák egy modell teljesítményének értékelésére nem látott adatokon. A betanítási részhalmazt a modell betanítására, míg a tesztelési részhalmazt a teljesítmény és az általánosítási képességek értékelésére használják.







Íme egy áttekintés a Train_test_split metódusáról a Hugging Face alkalmazásban:



  1. teszt_méret (numpy.random.Generator, opcionális) : A tesztfelosztás méretét ez az opció határozza meg. A típus lehet float vagy integer.
  • Ha lebegő értékként adjuk meg, akkor tükröznie kell a tesztfelosztásba bevonandó adatkészlet százalékos arányát, és 0,0 és 1,0 között kell lennie.
  • A tesztminták pontos számát az érték jelenti, ha egész számként adjuk meg.
  • Ha a Nincs értékre van állítva, a rendszer a vonat méretének komplementerét használja értékként.
  • Ha a train_size is None, akkor 0,25-re lesz állítva (az adatkészlet 25%-a).
  • train_size (numpy.random.Generator, opcionális): A vonat felosztásának méretét ez a paraméter határozza meg. Ugyanazok az irányelvek követik, mint a test_size.
    • Ha lebegőként van megadva, akkor tükröznie kell a vonatfelosztásba bevonandó adatkészlet százalékos arányát, és 0,0 és 1,0 között kell lennie.
    • A vonatminták pontos számát az érték jelenti, ha egész számként adjuk meg.
    • Ha a Nincs értékre van állítva, az érték automatikusan a tesztméret komplementerére változik.
  • keverés (bool, opcionális, alapértelmezés szerint True)
    • Ez a paraméter határozza meg, hogy a felosztás előtt megkeverjük-e az adatokat.
    • Ha True-ra van állítva, az adatok véletlenszerűen megkeverednek a felosztás előtt.
    • Ha False értékre van állítva, az adatok keverés nélkül felosztásra kerülnek.
  • stratify_by_column (str, opcionális, alapértelmezés szerint Nincs)
    • Ez a paraméter az adatok rétegzett felosztására szolgál egy adott oszlop alapján.
    • Ha meg van adva, akkor a címkék vagy osztályok oszlopnevének kell lennie.
    • Az adatok felosztása oly módon történik, hogy a címkék vagy osztályok azonos eloszlása ​​maradjon fenn a vonatban és a tesztfelosztásokban.
  • vetőmag (int, opcionális)
    • Ez a paraméter lehetővé teszi egy mag beállítását az alapértelmezett BitGenerator inicializálásához.
    • Ha None értékre van állítva, a rendszer egy új, előre nem látható entrópiát von le az operációs rendszerből.
    • Ha egész számot vagy tömbszerű egész számot adunk át, akkor a rendszer a BitGenerator kezdeti állapotának levezetésére szolgál.
  • generátor (numpy.random.Generator, opcionális)
    • Ez a paraméter lehetővé teszi egy NumPy véletlen generátor megadását az adatkészlet sorok permutációjának kiszámításához.
    • Ha None (alapértelmezett) értékre van állítva, akkor az np.random.default_rng értéket használja, amely a NumPy alapértelmezett BitGenerator (PCG64).
  • keep_in_memory (bool, alapértelmezés szerint False)
    • Ez a paraméter határozza meg, hogy a felosztott indexeket a memóriában kell-e tartani ahelyett, hogy gyorsítótárfájlba írnák őket.
    • Ha True-ra van állítva, a felosztási indexek a memóriában tárolódnak a felosztási folyamat során.
    • Ha False értékre van állítva, a felosztott indexek egy gyorsítótárfájlba kerülnek későbbi felhasználás céljából.
  • load_from_cache_file (Opcionális[bool], alapértelmezés szerint True, ha a gyorsítótárazás engedélyezve van)
    • Ez a paraméter határozza meg, hogy használjon-e gyorsítótárfájlt a felosztott indexek betöltésére az újraszámítás helyett.
    • Ha True értékre van állítva, és azonosítható a felosztott indexeket tároló gyorsítótárfájl, akkor ez kerül felhasználásra.
    • Ha False értékre van állítva, a felosztási indexek akkor is újraszámításra kerülnek, ha létezik gyorsítótárfájl.
    • Az alapértelmezett érték True, ha a gyorsítótárazás engedélyezve van.
  • train_cache_file_name (str, opcionális)
    • Ez a paraméter lehetővé teszi egy adott elérési út vagy név megadását a vonatfelosztási indexeket tároló gyorsítótárfájlhoz.
    • Ha meg van adva, a vonatfelosztási indexek ebben a gyorsítótárfájlban lesznek tárolva az automatikusan generált gyorsítótárfájl neve helyett.
  • teszt_gyorsítótár_fájl_neve (str, opcionális)
    • Ez a paraméter lehetővé teszi egy adott elérési út vagy név megadását a tesztfelosztási indexeket tároló gyorsítótárfájlhoz.
    • Ha meg van adva, a tesztfelosztási indexek ebben a gyorsítótárfájlban lesznek tárolva az automatikusan generált gyorsítótárfájl neve helyett.
  • writer_batch_size (int, alapértelmezés szerint 1000)
    • Ez a paraméter határozza meg a gyorsítótár-fájlíró írási műveletenkénti sorainak számát.
    • Ez egy kompromisszum a memóriahasználat és a feldolgozási sebesség között.
    • A magasabb értékek csökkentik az írási műveletek számát, de több memóriát fogyasztanak a feldolgozás során.
    • Az alacsonyabb értékek kevesebb ideiglenes memóriát fogyasztanak, de kis mértékben befolyásolhatják a feldolgozási sebességet.
  • train_new_fingerprint (str, opcionális, alapértelmezés szerint Nincs)
    • Ez a paraméter a vonatkészlet új ujjlenyomatát jelenti az átalakítás alkalmazása után.
    • Ha meg van adva, új ujjlenyomatot biztosít a vonatszerelvény számára.
    • Ha nincs értéke, akkor az új ujjlenyomat az előző ujjlenyomat és az átalakítási argumentumok hash-je alapján kerül kiszámításra.
  • teszt_új_ujjlenyomat (str, opcionális, alapértelmezés szerint Nincs)
    • Ez a paraméter a tesztkészlet új ujjlenyomatát jelenti az átalakítás alkalmazása után.
    • Ha meg van adva, új ujjlenyomatot biztosít a tesztkészlethez.
    • Ha nincs értéke, akkor az új ujjlenyomat az előző ujjlenyomat és az átalakítási argumentumok hash-je alapján kerül kiszámításra.

    Szintaxis:

    innen: sklearn.model_selection import train_test_split

    X_train, X_test, y_train, y_test = train_test_split(X, y, test_size=0,2, random_state=42)

    x : Ez az adatkészlet bemeneti jellemzőit vagy független változóit jelöli.



    • és : Ez azt a kimeneti vagy függő változót jelöli, amelyet megpróbál megjósolni.
    • teszt_méret : Ez a paraméter határozza meg az adatkészlet tesztelésre kiosztott hányadát. Megadható lebegő (pl. 0,2 20%) vagy egész számként (pl. 200 200 mintánál).
    • random_state : Ez egy opcionális paraméter, amely lehetővé teszi a véletlenszám-generátor magjának beállítását. Ez biztosítja, hogy a felosztás reprodukálható legyen, ami azt jelenti, hogy ugyanazt a felosztást kapja, ha ugyanazt a véletlenszerű állapotértéket használja.

    A train_test_split függvény négy adatkészletet ad vissza:





    • X_train : A bemeneti jellemzők képzési készlete.
    • X_test : A bemeneti jellemzők tesztelési készlete.
    • y_train : A kimeneti címkék képzési készlete.
    • y_teszt : A kimeneti címkék tesztelési halmaza.

    Példa : A következő példaprogram mint ' test.py ”.

    innen: sklearn.model_selection import train_test_split

    adatkészletekből import load_dataset

    # 1. lépés: Töltse be az adatkészletet

    adatkészlet = load_dataset('imdb')

    X = adatkészlet['vonat']['szöveg']

    y = adatkészlet['vonat']['címke']

    # 2. lépés: Ossza fel az adatkészletet

    X_train, X_test, y_train, y_test = train_test_split(X, y, test_size=0,2,

    shuffle=True, random_state=42)

    # 3. lépés: Fedezze fel az adatkészletet

    print('Példák száma az eredeti adatkészletben:', len(X))

    print('Példák száma a vonatadatkészletben:', len(X_train))

    print('Példák száma a tesztadatkészletben:', len(X_teszt))

    # 4. lépés: Példaadatok elérése és nyomtatása

    print('\nPélda a vonat adatkészletéből:')

    print(X_train[0], y_train[0])

    print('\nPélda a tesztadatkészletből:')

    nyomtatás (X_teszt[0], y_teszt[0])

    Ez az importálási utasítás a scikit-learnből származik, nem a Hugging Face adatkészletek könyvtárából. Kérjük, győződjön meg arról, hogy a scikit-learn telepítve van a környezetében. A következő paranccsal telepítheti:



    pip install scikit-learn

    Magyarázat: Először is importáljuk a szükséges modult: train_test_split a scikit-learnből.

    • Az IMDb adatkészletet a load_dataset('imdb') segítségével töltjük be, és hozzárendeljük az adatkészlet változóhoz.
    • A train_test_split használatához el kell különítenünk a bemeneti jellemzőket (X) és a megfelelő címkéket (y). Ebben az esetben feltételezzük, hogy az adatkészletben van egy „vonat” nevű felosztás, amelynek beviteli jellemzői a „text”, a megfelelő címkék pedig „címke”. Előfordulhat, hogy az adatkészlet szerkezete alapján módosítania kell a kulcsokat.
    • Ezután a bemeneti jellemzőket (X) és a címkéket (y) átadjuk a train_test_split-nek a többi paraméterrel együtt. Ebben a példában a test_size értéket 0,2-re állítjuk, ami azt jelenti, hogy az adatok 20%-a lesz lefoglalva tesztelésre. A shuffle paraméter „True” értékre van állítva az adatok véletlenszerű keverésére a felosztás előtt, a random_state paraméter pedig 42-re van állítva a reprodukálhatóság érdekében.
    • A train_test_split függvény négy adatkészletet ad vissza: X_train, X_test, y_train és y_test. Ezek a bemeneti jellemzők és címkék betanítási és tesztelési részhalmazait jelentik.
    • Kinyomtatjuk a példák számát az eredeti adatkészletben (len(X)), a betanítási adatkészletben (len(X_train)) és a tesztadatkészletben (len(X_test)). Ez lehetővé teszi számunkra, hogy ellenőrizzük a felosztási folyamatot, és biztosítsuk, hogy az alhalmazok megfelelően jönnek létre.
    • Végül elérünk és kinyomtatunk egy példát a betanítási adatkészletből (X_train[0], y_train[0]) és egy példát a tesztadatkészletből (X_test[0], y_test[0]).

    Kimenet : A korábban elmentett programot a Python “test.py” segítségével futtatjuk.

    Következtetés

    A Hugging Face adatkészlet-könyvtára által biztosított vonatteszt-felosztási funkció a scikit-learn train_test_split funkciójával kombinálva kényelmes és hatékony módot kínál az adatkészletek külön képzési és tesztelési részhalmazokra történő felosztására.

    A train_test_split függvény használatával szabályozhatja a tesztkészlet méretét, megkeverheti-e az adatokat, és beállíthat egy véletlenszerű magot a reprodukálhatóság érdekében. Ez a rugalmasság lehetővé teszi a gépi tanulási modellek hatékony értékelését nem látott adatokon, és segít az olyan problémák észlelésében, mint a túl- vagy alulillesztés.

    A train_test_split függvény paraméterei lehetővé teszik a felosztás különböző szempontjainak vezérlését, például a teszthalmaz méretét (test_size), az adatok keverését (shuffle) és a rétegezett felosztást meghatározott oszlopok alapján (stratify_by_column). Ezenkívül megadhat egy kezdőértéket (seed) a reprodukálhatóság érdekében, és testreszabhatja a gyorsítótár fájlneveit a felosztott indexek tárolására (train_cache_file_name és test_cache_file_name).

    A Hugging Face által kínált funkciók megkönnyítik az adatok előkészítését a modellképzéshez és -értékeléshez. Különálló képzési és tesztelési részhalmazokkal pontosan felmérheti modellje teljesítményét nem látott adatokon, észlelheti a lehetséges problémákat, például a túlillesztést, és megalapozott döntéseket hozhat a modell fejlesztése érdekében.

    Összességében a Hugging Face adatkészlet-könyvtárában található vonatteszt-felosztási funkció a scikit-learn train_test_split-jével együtt hatékony eszközkészletet biztosít a hatékony adatfelosztáshoz, modellértékeléshez és robusztus gépi tanulási megoldások fejlesztéséhez.