Hugging Face Train a Split Dataset

Hugging Face Train A Split Dataset



Knihovna Hugging Face nemá specifickou funkci s názvem train_test_split. Pokud však jde o rozdělení dat pro trénování a testování v úlohách strojového učení, funkce train_test_split se běžně používá v jiných populárních knihovnách, jako je scikit-learn. Zde vysvětlíme parametry, které se obvykle používají ve funkci train_test_split ze scikit-learn.

Metoda train_test_split v knihovně datových sad Hugging Face se používá k rozdělení datové sady na dvě podmnožiny: tréninkovou podmnožinu a testovací podmnožinu. Tato metoda se běžně používá ve strojovém učení k vyhodnocení výkonu modelu na neviditelných datech. Tréninková podmnožina se používá k trénování modelu, zatímco testovací podmnožina se používá k posouzení jeho výkonu a schopností zobecnění.







Zde je přehled metody train_test_split v Hugging Face:



  1. test_size (numpy.random.Generator, volitelné) : Velikost testovacího rozdělení je určena touto volbou. Typ může být plovoucí nebo celé číslo.
  • Pokud je uveden jako plovoucí, měl by odrážet procento souboru dat, který má být zahrnuto do testovacího rozdělení, a mělo by být mezi 0,0 a 1,0.
  • Přesný počet zkušebních vzorků je reprezentován hodnotou, pokud je zadána jako celé číslo.
  • Pokud je nastaveno na Žádný, použije se jako hodnota doplněk velikosti vlaku.
  • Pokud je train_size také None, bude nastavena na 0,25 (25 % datové sady).
  • train_size (numpy.random.Generator, volitelné): Velikost rozdělení vlaku je určena tímto parametrem. Řídí se stejnými pokyny jako test_size.
    • Pokud je uveden jako plovoucí, měl by odrážet procento datové sady, které má být zahrnuto do rozdělení vlaku, a mělo by být mezi 0,0 a 1,0.
    • Přesný počet vzorků vlaku je reprezentován hodnotou, pokud je zadána jako celé číslo.
    • Pokud je nastaveno na Žádný, hodnota se automaticky změní na doplněk testovací velikosti.
  • shuffle (bool, volitelné, výchozí hodnota True)
    • Tento parametr určuje, zda se mají data před rozdělením zamíchat či nikoli.
    • Pokud je nastavena na hodnotu True, budou data před rozdělením náhodně zamíchána.
    • Pokud je nastaveno na False, data budou rozdělena bez míchání.
  • stratify_by_column (str, volitelné, výchozí hodnota Žádná)
    • Tento parametr se používá pro stratifikované rozdělení dat na základě konkrétního sloupce.
    • Pokud je zadán, měl by to být název sloupce štítků nebo tříd.
    • Data budou rozdělena způsobem, který zachová stejnou distribuci štítků nebo tříd ve vlakovém a testovacím rozdělení.
  • semeno (int, volitelné)
    • Tento parametr umožňuje nastavit seed pro inicializaci výchozího BitGeneratoru.
    • Pokud je nastavena na Žádná, bude z operačního systému stažena nová, nepředvídatelná entropie.
    • Pokud je předáno celé číslo nebo celá čísla podobná poli, budou použita k odvození počátečního stavu BitGenerator.
  • generátor (numpy.random.Generator, volitelný)
    • Tento parametr umožňuje zadat generátor náhodných čísel NumPy pro výpočet permutace řádků datové sady.
    • Pokud je nastaven na None (výchozí), používá np.random.default_rng, což je výchozí BitGenerator (PCG64) NumPy.
  • keep_in_memory (bool, výchozí hodnota je False)
    • Tento parametr určuje, zda mají být rozdělené indexy ponechány v paměti namísto jejich zápisu do souboru mezipaměti.
    • Pokud je nastaveno na True, budou indexy rozdělení během procesu rozdělení uloženy do paměti.
    • Pokud je nastavena na False, budou rozdělené indexy zapsány do souboru mezipaměti pro pozdější použití.
  • load_from_cache_file (Volitelné[bool], výchozí hodnota True, pokud je povoleno ukládání do mezipaměti)
    • Tento parametr určuje, zda použít soubor mezipaměti k načtení rozdělených indexů namísto jejich přepočítávání.
    • Pokud je nastavena na hodnotu True a lze identifikovat soubor mezipaměti, který ukládá rozdělené indexy, bude použit.
    • Pokud je nastavena na False, budou indexy rozdělení přepočítány, i když existuje soubor mezipaměti.
    • Výchozí hodnota je True, pokud je povoleno ukládání do mezipaměti.
  • train_cache_file_name (str, volitelné)
    • Tento parametr vám umožňuje zadat konkrétní cestu nebo název pro soubor mezipaměti, ve kterém jsou uloženy indexy rozdělení vlaků.
    • Pokud je zadán, indexy rozdělení vlaků budou uloženy v tomto souboru mezipaměti namísto automaticky generovaného názvu souboru mezipaměti.
  • test_cache_file_name (str, volitelné)
    • Tento parametr umožňuje zadat konkrétní cestu nebo název pro soubor mezipaměti, ve kterém jsou uloženy indexy testovacího rozdělení.
    • Pokud je zadán, indexy testovacího rozdělení budou uloženy v tomto souboru mezipaměti namísto automaticky generovaného názvu souboru mezipaměti.
  • Write_batch_size (int, výchozí hodnota 1000)
    • Tento parametr určuje počet řádků na operaci zápisu pro zapisovač souboru mezipaměti.
    • Je to kompromis mezi využitím paměti a rychlostí zpracování.
    • Vyšší hodnoty snižují počet operací zápisu, ale spotřebovávají více paměti během zpracování.
    • Nižší hodnoty spotřebují méně dočasné paměti, ale mohou mírně ovlivnit rychlost zpracování.
  • train_new_fingerprint (str, nepovinné, výchozí hodnota Žádná)
    • Tento parametr představuje nový otisk vlakové soupravy po aplikaci transformace.
    • Pokud je zadán, poskytuje nový otisk pro vlakovou soupravu.
    • Pokud je nastaveno na Žádný, nový otisk se vypočítá pomocí hash předchozího otisku a transformačních argumentů.
  • test_new_fingerprint (str, volitelné, výchozí hodnota je Žádná)
    • Tento parametr představuje nový otisk testovací sady po aplikaci transformace.
    • Pokud je zadán, poskytuje nový otisk prstu pro testovací sadu.
    • Pokud je nastaveno na Žádný, nový otisk se vypočítá pomocí hash předchozího otisku a transformačních argumentů.

    Syntax:

    ze sklearn.model_selection import train_test_split

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

    X : Představuje vstupní funkce nebo nezávislé proměnné vaší datové sady.



    • a : Představuje výstup nebo závislou proměnnou, kterou se pokoušíte předpovědět.
    • test_velikost : Tento parametr určuje podíl datové sady, která bude přidělena pro testování. Může být zadána jako plovoucí (např. 0,2 pro 20 %) nebo celé číslo (např. 200 pro 200 vzorků).
    • náhodný_stav : Toto je volitelný parametr, který vám umožňuje nastavit zdroj pro generátor náhodných čísel. Zajišťuje, že rozdělení je reprodukovatelné, což znamená, že získáte stejné rozdělení, pokud použijete stejnou hodnotu náhodného stavu.

    Funkce train_test_split vrací čtyři sady dat:





    • X_train : Tréninková sada vstupních funkcí.
    • X_test : Testovací sada vstupních funkcí.
    • y_vlak : Tréninková sada výstupních štítků.
    • y_test : Testovací sada výstupních štítků.

    Příklad : Následující ukázkový program je uložen jako „ test.py “.

    ze sklearn.model_selection import train_test_split

    z datových sad importovat load_dataset

    # Krok 1: Načtěte datovou sadu

    datová sada = load_dataset('imdb')

    X = datová sada['train']['text']

    y = datová sada['train']['label']

    # Krok 2: Rozdělte datovou sadu

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

    shuffle=True, random_state=42)

    # Krok 3: Prozkoumejte datovou sadu

    print('Počet příkladů v původní datové sadě:', len(X))

    print('Počet příkladů v datové sadě vlaku:', len(X_train))

    print('Počet příkladů v testovací datové sadě:', len(X_test))

    # Krok 4: Přístup k vzorovým datům a jejich tisk

    print('\nPříklad z datové sady vlaku:')

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

    print('\nPříklad z testovací datové sady:')

    print(X_test[0], y_test[0])

    Tento příkaz importu pochází ze scikit-learn, nikoli z knihovny datových sad Hugging Face. Ujistěte se prosím, že máte scikit-learn nainstalovaný ve vašem prostředí. Můžete jej nainstalovat pomocí následujícího příkazu:



    pip install scikit-learn

    Vysvětlení: Nejprve importujeme potřebný modul: train_test_split ze scikit-learn.

    • Načteme datovou sadu IMDb pomocí load_dataset(‘imdb’) a přiřadíme ji k proměnné datové sady.
    • Abychom mohli použít train_test_split, musíme oddělit vstupní vlastnosti (X) a odpovídající štítky (y). V tomto případě předpokládáme, že datová sada má rozdělení nazvané „vlak“ s „textem“ jako vstupními vlastnostmi a „label“ jako odpovídajícími štítky. Možná budete muset upravit klíče na základě struktury vaší datové sady.
    • Poté předáme vstupní vlastnosti (X) a návěští (y) do train_test_split spolu s dalšími parametry. V tomto příkladu nastavíme test_size na 0,2, což znamená, že 20 % dat bude přiděleno pro testování. Parametr shuffle je nastaven na „True“, aby se data před rozdělením náhodně zamíchala, a parametr random_state je nastaven na 42 kvůli reprodukovatelnosti.
    • Funkce train_test_split vrací čtyři sady dat: X_train, X_test, y_train a y_test. Ty představují trénovací a testovací podmnožiny vstupních funkcí a štítků.
    • Vytiskneme počet příkladů v původním datovém souboru (len(X)), tréninkovém datovém souboru (len(X_train)) a testovacím datovém souboru (len(X_test)). To nám umožňuje ověřit proces dělení a zajistit, aby byly podmnožiny vytvořeny správně.
    • Nakonec zpřístupníme a vytiskneme příklad z trénovací datové sady (X_train[0], y_train[0]) a příklad z testovací datové sady (X_test[0], y_test[0]).

    Výstup : Spustíme dříve uložený program pomocí Pythonu „test.py“.

    Závěr

    Funkce rozdělení vlakového testu, kterou poskytuje knihovna datových sad Hugging Face, v kombinaci s funkcí train_test_split od scikit-learn, nabízí pohodlný a efektivní způsob, jak rozdělit datovou sadu na samostatné tréninkové a testovací podmnožiny.

    Pomocí funkce train_test_split můžete ovládat velikost testovací sady, zda se mají data zamíchat, a nastavit náhodné semeno pro reprodukovatelnost. Tato flexibilita umožňuje efektivní vyhodnocení modelů strojového učení na neviditelných datech a pomáhá při odhalování problémů, jako je nadměrné nebo nedostatečné vybavení.

    Parametry funkce train_test_split vám umožňují řídit různé aspekty rozdělení, jako je velikost testovací sady (test_size), míchání dat (shuffle) a provádění stratifikovaného rozdělení na základě konkrétních sloupců (stratify_by_column). Navíc můžete zadat počáteční hodnotu (seed) pro reprodukovatelnost a přizpůsobit názvy souborů mezipaměti pro ukládání rozdělených indexů (název_souboru_train_cache a název_souboru_test_cache).

    Funkce, které Hugging Face nabízí, usnadňuje přípravu vašich dat pro modelování a hodnocení. Díky samostatným podmnožinám školení a testování můžete přesně posoudit výkon vašeho modelu na neviditelných datech, odhalit potenciální problémy, jako je nadměrné vybavení, a činit informovaná rozhodnutí pro vylepšení modelu.

    Celkově funkce rozdělení vlakového testu v knihovně datových sad Hugging Face ve spojení s train_test_split od scikit-learn poskytuje výkonnou sadu nástrojů pro efektivní rozdělování dat, vyhodnocování modelů a vývoj robustních řešení strojového učení.