Vlak grlećih lica i podijeljeni skup podataka

Vlak Grlecih Lica I Podijeljeni Skup Podataka



Biblioteka Hugging Face nema posebnu funkciju pod nazivom train_test_split. Međutim, kada se radi o dijeljenju podataka za obuku i testiranje u zadacima strojnog učenja, funkcija train_test_split obično se koristi u drugim popularnim bibliotekama kao što je scikit-learn. Ovdje ćemo objasniti parametre koji se obično koriste u funkciji train_test_split iz scikit-learn-a.

Metoda train_test_split u biblioteci skupova podataka Hugging Face koristi se za podjelu skupa podataka u dva podskupa: podskup za obuku i podskup za testiranje. Ova se metoda obično koristi u strojnom učenju za procjenu izvedbe modela na nevidljivim podacima. Podskup za obuku koristi se za obuku modela, dok se podskup za testiranje koristi za procjenu njegove izvedbe i mogućnosti generalizacije.







Evo pregleda metode train_test_split u Hugging Face:



  1. test_size (numpy.random.Generator, izborno) : Veličina testnog odjeljka određena je ovom opcijom. Tip može biti float ili integer.
  • Ako je dan kao float, trebao bi odražavati postotak skupa podataka koji treba uključiti u testnu podjelu i biti između 0,0 i 1,0.
  • Točan broj ispitnih uzoraka predstavljen je vrijednošću ako je navedena kao cijeli broj.
  • Ako je postavljeno na Ništa, kao vrijednost se koristi komplement veličine niza.
  • Ako je train_size također Ništa, postavit će se na 0,25 (25% skupa podataka).
  • veličina_vlaka (numpy.random.Generator, izborno): Veličina podjele vlaka određena je ovim parametrom. Slijedi iste smjernice kao test_size.
    • Ako je dan kao float, trebao bi odražavati postotak skupa podataka koji treba uključiti u podjelu niza i biti između 0,0 i 1,0.
    • Točan broj uzoraka vlakova predstavljen je vrijednošću ako je navedena kao cijeli broj.
    • Ako je postavljeno na Ništa, vrijednost se automatski mijenja u komplement testne veličine.
  • nasumično (bool, izborno, zadano je True)
    • Ovaj parametar određuje hoće li se podaci miješati prije dijeljenja.
    • Ako je postavljeno na True, podaci će se nasumično miješati prije podjele.
    • Ako je postavljeno na False, podaci će se podijeliti bez miješanja.
  • stratify_by_column (str, izborno, zadano Ništa)
    • Ovaj se parametar koristi za stratificirano dijeljenje podataka na temelju određenog stupca.
    • Ako je navedeno, to bi trebao biti naziv stupca oznaka ili klasa.
    • Podaci će se podijeliti na način da se zadrži ista distribucija oznaka ili klasa u podjeli vlaka i testa.
  • sjeme (int, izborno)
    • Ovaj parametar vam omogućuje da postavite početnu vrijednost za pokretanje zadanog BitGeneratora.
    • Ako je postavljeno na Ništa, svježa, nepredvidiva entropija bit će povučena iz operativnog sustava.
    • Ako se proslijede cijeli broj ili cijeli brojevi slični nizu, oni će se koristiti za izvođenje početnog stanja BitGeneratora.
  • generator (numpy.random.Generator, izborno)
    • Ovaj vam parametar omogućuje da odredite NumPy generator slučajnih odabira za izračunavanje permutacije redaka skupa podataka.
    • Ako je postavljeno na Ništa (zadano), koristi np.random.default_rng koji je zadani BitGenerator (PCG64) za NumPy.
  • keep_in_memory (bool, zadana vrijednost False)
    • Ovaj parametar određuje hoće li se podijeljeni indeksi zadržati u memoriji umjesto da se zapisuju u datoteku predmemorije.
    • Ako je postavljeno na True, indeksi dijeljenja bit će pohranjeni u memoriji tijekom procesa dijeljenja.
    • Ako je postavljeno na False, podijeljeni indeksi bit će zapisani u datoteku predmemorije za kasniju upotrebu.
  • load_from_cache_file (Opcija [bool], zadana vrijednost je True ako je cache omogućeno)
    • Ovaj parametar određuje hoće li se koristiti datoteka predmemorije za učitavanje podijeljenih indeksa umjesto njihovog ponovnog izračunavanja.
    • Ako je postavljeno na True i može se identificirati datoteka predmemorije koja pohranjuje podijeljene indekse, ona će se koristiti.
    • Ako je postavljeno na False, podijeljeni indeksi ponovno će se izračunati čak i ako datoteka predmemorije postoji.
    • Zadana vrijednost je True ako je omogućeno predmemoriranje.
  • train_cache_file_name (str, izborno)
    • Ovaj parametar vam omogućuje da navedete određenu stazu ili naziv za datoteku predmemorije koja pohranjuje indekse podijeljenog vlaka.
    • Ako je navedeno, indeksi dijeljenja vlaka bit će pohranjeni u ovu datoteku predmemorije umjesto u automatski generirani naziv datoteke predmemorije.
  • test_cache_file_name (str, izborno)
    • Ovaj parametar vam omogućuje da navedete specifičnu stazu ili naziv za datoteku predmemorije koja pohranjuje testne podijeljene indekse.
    • Ako je navedeno, indeksi testnog dijeljenja bit će pohranjeni u ovoj datoteci predmemorije umjesto u automatski generiranom nazivu datoteke predmemorije.
  • writer_batch_size (int, zadano 1000)
    • Ovaj parametar određuje broj redaka po operaciji pisanja za program za pisanje datoteke predmemorije.
    • To je kompromis između upotrebe memorije i brzine obrade.
    • Više vrijednosti smanjuju broj operacija pisanja, ali troše više memorije tijekom obrade.
    • Niže vrijednosti troše manje privremene memorije, ali mogu malo utjecati na brzinu obrade.
  • train_new_fingerprint (str, izborno, zadano Ništa)
    • Ovaj parametar predstavlja novi otisak vlaka nakon primjene transformacije.
    • Ako je naveden, daje novi otisak za vlak.
    • Ako je postavljeno na Ništa, novi otisak prsta izračunava se korištenjem raspršivanja prethodnog otiska prsta i argumenata transformacije.
  • test_new_fingerprint (str, izborno, zadano Ništa)
    • Ovaj parametar predstavlja novi otisak testnog skupa nakon primjene transformacije.
    • Ako je navedeno, daje novi otisak prsta za testni skup.
    • Ako je postavljeno na Ništa, novi otisak prsta izračunava se korištenjem raspršivanja prethodnog otiska prsta i argumenata transformacije.

    Sintaksa:

    iz 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 : Ovo predstavlja ulazne značajke ili nezavisne varijable vašeg skupa podataka.



    • i : Ovo predstavlja izlaz ili zavisnu varijablu koju pokušavate predvidjeti.
    • veličina_testiranja : Ovaj parametar određuje udio skupa podataka koji će biti dodijeljen za testiranje. Može se odrediti kao float (npr. 0,2 za 20%) ili cijeli broj (npr. 200 za 200 uzoraka).
    • slučajno_stanje : Ovo je izborni parametar koji vam omogućuje postavljanje početne vrijednosti za generator slučajnih brojeva. Osigurava da je podjela ponovljiva, što znači da ćete dobiti istu podjelu ako koristite istu vrijednost slučajnog stanja.

    Funkcija train_test_split vraća četiri skupa podataka:





    • X_vlak : Skup za obuku ulaznih značajki.
    • X_test : Testiranje skupa ulaznih značajki.
    • y_vlak : Skup za obuku izlaznih oznaka.
    • y_test : Skup za testiranje izlaznih oznaka.

    Primjer : Sljedeći primjer programa spremljen je kao ' test.py ”.

    iz sklearn.model_selection import train_test_split

    iz skupova podataka import load_dataset

    # Korak 1: Učitajte skup podataka

    skup podataka = load_dataset('imdb')

    X = skup podataka['train']['text']

    y = skup podataka['train']['label']

    # Korak 2: Podijelite skup podataka

    X_train, X_test, y_train, y_test = train_test_split(X, y, test_size=0.2,

    shuffle=Istina, random_state=42)

    # Korak 3: Istražite skup podataka

    print('Broj primjera u izvornom skupu podataka:', len(X))

    print('Broj primjera u skupu podataka vlaka:', len(X_train))

    print('Broj primjera u testnom skupu podataka:', len(X_test))

    # Korak 4: Pristup i ispis primjera podataka

    print('\nPrimjer iz skupa podataka vlaka:')

    ispis(X_vlak[0], y_vlak[0])

    print('\nPrimjer iz skupa testnih podataka:')

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

    Ova izjava o uvozu je iz scikit-learn, a ne iz biblioteke skupova podataka Hugging Face. Provjerite imate li scikit-learn instaliran u svom okruženju. Možete ga instalirati pomoću sljedeće naredbe:



    pip instaliraj scikit-learn

    Objašnjenje: Prvo uvozimo potrebni modul: train_test_split iz scikit-learn.

    • Učitavamo IMDb skup podataka pomoću load_dataset('imdb') i dodjeljujemo ga varijabli skupa podataka.
    • Da bismo koristili train_test_split, moramo odvojiti ulazne značajke (X) i odgovarajuće oznake (y). U ovom slučaju pretpostavljamo da skup podataka ima podjelu pod nazivom 'vlak' s 'tekstom' kao ulaznim značajkama i 'oznakom' kao odgovarajućim oznakama. Možda ćete morati prilagoditi ključeve na temelju strukture skupa podataka.
    • Zatim prosljeđujemo ulazne značajke (X) i oznake (y) u train_test_split zajedno s ostalim parametrima. U ovom smo primjeru postavili test_size na 0,2 što znači da će 20% podataka biti dodijeljeno za testiranje. Parametar shuffle postavljen je na 'True' za nasumično miješanje podataka prije dijeljenja, a parametar random_state postavljen je na 42 radi ponovljivosti.
    • Funkcija train_test_split vraća četiri skupa podataka: X_train, X_test, y_train i y_test. Oni predstavljaju podskupove za obuku i testiranje ulaznih značajki i oznaka.
    • Ispisujemo broj primjera u izvornom skupu podataka (len(X)), skupu podataka za obuku (len(X_train)) i testnom skupu podataka (len(X_test)). To nam omogućuje da provjerimo proces dijeljenja i osiguramo da su podskupovi ispravno kreirani.
    • Konačno, pristupamo i ispisujemo primjer iz skupa podataka za obuku (X_train[0], y_train[0]) i primjer iz skupa podataka za testiranje (X_test[0], y_test[0]).

    Izlaz : Pokrećemo prethodno spremljeni program koristeći Python “test.py”.

    Zaključak

    Funkcionalnost train-test split koju pruža biblioteka skupova podataka Hugging Face, u kombinaciji s funkcijom train_test_split scikit-learn, nudi prikladan i učinkovit način za dijeljenje skupa podataka u zasebne podskupove za obuku i testiranje.

    Upotrebom funkcije train_test_split možete kontrolirati veličinu skupa testova, hoćete li miješati podatke i postaviti nasumično početno mjesto radi ponovljivosti. Ova fleksibilnost omogućuje učinkovitu procjenu modela strojnog učenja na nevidljivim podacima i pomaže u otkrivanju problema kao što su prekomjerno ili nedovoljno uklapanje.

    Parametri funkcije train_test_split omogućuju vam da kontrolirate različite aspekte podjele kao što je veličina testnog skupa (test_size), miješanje podataka (shuffle) i izvođenje stratificiranog dijeljenja na temelju određenih stupaca (stratify_by_column). Osim toga, možete navesti početnu vrijednost (seed) za ponovljivost i prilagoditi nazive datoteka predmemorije za pohranjivanje podijeljenih indeksa (train_cache_file_name i test_cache_file_name).

    Funkcionalnost koju nudi Hugging Face olakšava pripremu vaših podataka za obuku modela i evaluaciju. Imajući zasebne podskupove za obuku i testiranje, možete točno procijeniti izvedbu svog modela na nevidljivim podacima, otkriti potencijalne probleme kao što je prekomjerno opremanje i donijeti informirane odluke za poboljšanja modela.

    Općenito, funkcionalnost dijeljenja testiranja vlakova u biblioteci skupova podataka Hugging Facea, u kombinaciji s train_test_split tvrtke scikit-learn, pruža moćan skup alata za učinkovito dijeljenje podataka, evaluaciju modela i razvoj robusnih rješenja za strojno učenje.