Vlak objemajočih se obrazov in razdeljen nabor podatkov

Vlak Objemajocih Se Obrazov In Razdeljen Nabor Podatkov



Knjižnica Hugging Face nima posebne funkcije z imenom train_test_split. Ko pa gre za razdelitev podatkov za usposabljanje in testiranje v nalogah strojnega učenja, se funkcija train_test_split običajno uporablja v drugih priljubljenih knjižnicah, kot je scikit-learn. Tukaj bomo razložili parametre, ki se običajno uporabljajo v funkciji train_test_split iz scikit-learn.

Metoda train_test_split v knjižnici nabora podatkov Hugging Face se uporablja za razdelitev nabora podatkov na dva podnabora: podnabor za usposabljanje in podnabor za testiranje. Ta metoda se običajno uporablja pri strojnem učenju za ocenjevanje delovanja modela na nevidnih podatkih. Podmnožica za usposabljanje se uporablja za usposabljanje modela, medtem ko se podmnožica za testiranje uporablja za oceno njegove zmogljivosti in zmožnosti posploševanja.







Tukaj je pregled metode train_test_split v Hugging Face:



  1. test_size (numpy.random.Generator, neobvezno) : Velikost testnega razdelka je določena s to možnostjo. Tip je lahko float ali integer.
  • Če je podana kot lebdeča vrednost, mora odražati odstotek nabora podatkov, ki ga je treba vključiti v testno razdelitev, in mora biti med 0,0 in 1,0.
  • Točno število preskusnih vzorcev je predstavljeno z vrednostjo, če je navedena kot celo število.
  • Če je nastavljeno na Brez, se kot vrednost uporabi dopolnitev velikosti vlaka.
  • Če je tudi train_size None, bo nastavljen na 0,25 (25 % nabora podatkov).
  • velikost_vlaka (numpy.random.Generator, neobvezno): Velikost razdelitve vlaka je določena s tem parametrom. Sledi istim smernicam kot test_size.
    • Če je podan kot lebdeči, mora odražati odstotek nabora podatkov, ki ga je treba vključiti v razdelitev niza, in mora biti med 0,0 in 1,0.
    • Točno število vzorcev vlakov je predstavljeno z vrednostjo, če je navedena kot celo število.
    • Če je nastavljena na Brez, se vrednost samodejno spremeni v komplement velikosti testa.
  • naključno (bool, neobvezno, privzeto je True)
    • Ta parameter določa, ali naj se podatki pred delitvijo premešajo ali ne.
    • Če je nastavljeno na True, bodo podatki pred delitvijo naključno premešani.
    • Če je nastavljeno na False, bodo podatki razdeljeni brez mešanja.
  • stratify_by_column (str, neobvezno, privzeto je None)
    • Ta parameter se uporablja za stratificirano razdelitev podatkov na podlagi določenega stolpca.
    • Če je navedeno, mora biti ime stolpca oznak ali razredov.
    • Podatki bodo razdeljeni na način, ki bo ohranil enako porazdelitev oznak ali razredov v razdelitvi vlaka in testa.
  • seme (int, neobvezno)
    • Ta parameter vam omogoča, da nastavite seme za inicializacijo privzetega BitGeneratorja.
    • Če je nastavljen na Brez, bo iz operacijskega sistema potegnjena nova, nepredvidljiva entropija.
    • Če je posredovano celo število ali nizu podobna cela števila, bodo uporabljena za izpeljavo začetnega stanja BitGeneratorja.
  • generator (numpy.random.Generator, neobvezno)
    • Ta parameter vam omogoča, da določite naključni generator NumPy za izračun permutacije vrstic nabora podatkov.
    • Če je nastavljen na Brez (privzeto), uporablja np.random.default_rng, ki je privzeti BitGenerator (PCG64) NumPy.
  • keep_in_memory (bool, privzeto je False)
    • Ta parameter določa, ali naj se razdeljeni indeksi obdržijo v pomnilniku, namesto da se zapišejo v predpomnilniško datoteko.
    • Če je nastavljen na True, bodo indeksi razdelitve shranjeni v pomnilnik med postopkom razdelitve.
    • Če je nastavljen na False, bodo razdeljeni indeksi zapisani v predpomnilniško datoteko za kasnejšo uporabo.
  • load_from_cache_file (Izbirno [bool], privzeto je True, če je omogočeno predpomnjenje)
    • Ta parameter določa, ali naj se uporabi predpomnilniška datoteka za nalaganje razdeljenih indeksov namesto njihovega ponovnega izračuna.
    • Če je nastavljen na True in je mogoče identificirati predpomnilniško datoteko, ki shranjuje razdeljene indekse, bo uporabljena.
    • Če je nastavljen na False, bodo razdeljeni indeksi znova izračunani, tudi če obstaja predpomnilniška datoteka.
    • Privzeta vrednost je True, če je omogočeno predpomnjenje.
  • train_cache_file_name (str, neobvezno)
    • Ta parameter vam omogoča, da zagotovite določeno pot ali ime za predpomnilniško datoteko, ki shranjuje indekse razdelitve vlakov.
    • Če je podano, bodo indeksi delitve vlaka shranjeni v tej datoteki predpomnilnika namesto v samodejno ustvarjenem imenu datoteke predpomnilnika.
  • test_cache_file_name (str, neobvezno)
    • Ta parameter vam omogoča, da podate določeno pot ali ime za predpomnilniško datoteko, ki shranjuje testne razdeljene indekse.
    • Če je podano, bodo indeksi testne razdelitve shranjeni v tej datoteki predpomnilnika namesto v samodejno ustvarjeno ime datoteke predpomnilnika.
  • writer_batch_size (int, privzeto 1000)
    • Ta parameter določa število vrstic na operacijo pisanja za zapisovalnik predpomnilniške datoteke.
    • Gre za kompromis med porabo pomnilnika in hitrostjo obdelave.
    • Višje vrednosti zmanjšajo število zapisovalnih operacij, vendar med obdelavo porabijo več pomnilnika.
    • Nižje vrednosti porabijo manj začasnega pomnilnika, vendar lahko rahlo vplivajo na hitrost obdelave.
  • train_new_fingerprint (str, neobvezno, privzeto je None)
    • Ta parameter predstavlja nov prstni odtis vlakovne garniture po uporabi transformacije.
    • Če je naveden, zagotovi nov prstni odtis za komplet vlaka.
    • Če je nastavljen na Brez, se novi prstni odtis izračuna z uporabo zgoščene vrednosti prejšnjega prstnega odtisa in argumentov transformacije.
  • test_new_fingerprint (str, neobvezno, privzeto je None)
    • Ta parameter predstavlja nov prstni odtis testnega niza po uporabi transformacije.
    • Če je naveden, zagotovi nov prstni odtis za testni niz.
    • Če je nastavljen na Brez, se novi prstni odtis izračuna z uporabo zgoščene vrednosti prejšnjega prstnega odtisa in argumentov 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 : To predstavlja vhodne funkcije ali neodvisne spremenljivke vašega nabora podatkov.



    • in : To predstavlja izhod ali odvisno spremenljivko, ki jo poskušate predvideti.
    • preizkusna_velikost : Ta parameter določa delež nabora podatkov, ki bo dodeljen za testiranje. Lahko se določi kot število s plavajočo vrednostjo (npr. 0,2 za 20 %) ali celo število (npr. 200 za 200 vzorcev).
    • naključno_stanje : To je izbirni parameter, ki vam omogoča, da nastavite seme za generator naključnih števil. Zagotavlja, da je razdelitev ponovljiva, kar pomeni, da boste dobili enako razdelitev, če uporabite isto naključno vrednost stanja.

    Funkcija train_test_split vrne štiri nize podatkov:





    • X_vlak : Učni nabor vnosnih funkcij.
    • X_test : Testni nabor vhodnih funkcij.
    • y_vlak : Učni nabor izhodnih oznak.
    • y_test : Testni niz izhodnih oznak.

    Primer : Naslednji primer programa je shranjen kot ' test.py ”.

    iz sklearn.model_selection import train_test_split

    iz naborov podatkov uvozi load_dataset

    # 1. korak: naložite nabor podatkov

    dataset = load_dataset('imdb')

    X = dataset['train']['text']

    y = dataset['train']['label']

    # 2. korak: razdelite nabor podatkov

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

    shuffle=True, random_state=42)

    # 3. korak: Raziščite nabor podatkov

    print('Število primerov v izvirnem nizu podatkov:', len(X))

    print('Število primerov v naboru podatkov o vlaku:', len(X_train))

    print('Število primerov v testnem nizu podatkov:', len(X_test))

    # 4. korak: Dostopajte in natisnite vzorčne podatke

    print('\nPrimer iz nabora podatkov o vlaku:')

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

    print('\nPrimer iz nabora testnih podatkov:')

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

    Ta izjava o uvozu je iz scikit-learn, ne iz knjižnice naborov podatkov Hugging Face. Prepričajte se, da imate v svojem okolju nameščen scikit-learn. Namestite ga lahko z naslednjim ukazom:



    pip namestite scikit-learn

    Pojasnilo: Najprej uvozimo potreben modul: train_test_split iz scikit-learn.

    • Nabor podatkov IMDb naložimo z uporabo load_dataset('imdb') in ga dodelimo spremenljivki nabora podatkov.
    • Za uporabo train_test_split moramo ločiti vhodne funkcije (X) in ustrezne oznake (y). V tem primeru predpostavljamo, da ima nabor podatkov razcep z imenom »vlak« z »besedilom« kot vhodnimi funkcijami in »oznako« kot ustreznimi oznakami. Morda boste morali prilagoditi ključe glede na strukturo nabora podatkov.
    • Nato posredujemo vhodne funkcije (X) in oznake (y) v train_test_split skupaj z drugimi parametri. V tem primeru smo test_size nastavili na 0,2, kar pomeni, da bo 20 % podatkov dodeljenih za testiranje. Parameter shuffle je nastavljen na »True« za naključno premešanje podatkov pred delitvijo, parameter random_state pa je nastavljen na 42 za ponovljivost.
    • Funkcija train_test_split vrne štiri nize podatkov: X_train, X_test, y_train in y_test. Ti predstavljajo podnabore za usposabljanje in testiranje vhodnih funkcij oziroma oznak.
    • Natisnemo število primerov v izvirnem naboru podatkov (len(X)), naboru podatkov za usposabljanje (len(X_train)) in naboru testnih podatkov (len(X_test)). To nam omogoča, da preverimo postopek delitve in zagotovimo, da so podnabori pravilno ustvarjeni.
    • Nazadnje dostopamo do primera iz nabora podatkov o usposabljanju (X_train[0], y_train[0]) in primera iz nabora podatkov o testu (X_test[0], y_test[0]) in ga natisnemo.

    Izhod : Prej shranjeni program zaženemo z uporabo Python “test.py”.

    Zaključek

    Funkcionalnost train-test split, ki jo zagotavlja knjižnica naborov podatkov Hugging Face, v kombinaciji s funkcijo train_test_split scikit-learn ponuja priročen in učinkovit način za razdelitev nabora podatkov v ločene podnabore za usposabljanje in testiranje.

    Z uporabo funkcije train_test_split lahko nadzirate velikost preskusnega niza, ali želite premešati podatke in nastavite naključno seme za ponovljivost. Ta prilagodljivost omogoča učinkovito vrednotenje modelov strojnega učenja na nevidnih podatkih in pomaga pri odkrivanju težav, kot je prekomerno ali premajhno prilagajanje.

    Parametri funkcije train_test_split vam omogočajo nadzor nad različnimi vidiki delitve, kot je velikost preskusnega niza (test_size), mešanje podatkov (shuffle) in izvajanje stratificirane delitve na podlagi določenih stolpcev (stratify_by_column). Poleg tega lahko določite semensko vrednost (seed) za ponovljivost in prilagodite imena predpomnilniških datotek za shranjevanje razdeljenih indeksov (train_cache_file_name in test_cache_file_name).

    Funkcionalnost, ki jo ponuja Hugging Face, olajša pripravo vaših podatkov za usposabljanje in vrednotenje modela. Če imate ločene podnabore za usposabljanje in testiranje, lahko natančno ocenite delovanje svojega modela na nevidnih podatkih, zaznate morebitne težave, kot je prekomerno opremljanje, in sprejemate premišljene odločitve za izboljšave modela.

    Na splošno funkcija train-test split v knjižnici naborov podatkov Hugging Face v povezavi s train_test_split scikit-learn zagotavlja zmogljiv nabor orodij za učinkovito ločevanje podatkov, vrednotenje modela in razvoj robustnih rešitev strojnega učenja.