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:
- 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).
- 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.
- 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.
- 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.
- 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.
- 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).
- 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.
- 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.
- 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.
- 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.
- 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.
- 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.
- 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_splitX_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_splitadatké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.