Apkabinimo veido traukinys ir padalintas duomenų rinkinys

Apkabinimo Veido Traukinys Ir Padalintas Duomenu Rinkinys



Hugging Face biblioteka neturi konkrečios funkcijos, pavadintos train_test_split. Tačiau kai kalbama apie duomenų padalijimą mokymui ir bandymui atliekant mašininio mokymosi užduotis, funkcija train_test_split dažniausiai naudojama kitose populiariose bibliotekose, pvz., scikit-learn. Čia paaiškinsime parametrus, kurie paprastai naudojami funkcijoje train_test_split iš scikit-learn.

Train_test_split metodas Hugging Face duomenų rinkinio bibliotekoje naudojamas duomenų rinkiniui padalyti į du poaibius: mokymo poaibį ir testavimo poaibį. Šis metodas dažniausiai naudojamas mašininiame mokyme, siekiant įvertinti modelio veikimą nematytais duomenimis. Mokomasis poaibis naudojamas modeliui apmokyti, o testavimo poaibis naudojamas jo veikimui ir apibendrinimo galimybėms įvertinti.







Štai „Hugging Face“ metodo train_test_split apžvalga:



  1. test_size (numpy.random.Generator, neprivaloma) : bandomojo padalijimo dydis nustatomas pagal šią parinktį. Tipas gali būti plūduriuojantis arba sveikasis skaičius.
  • Jei jis pateikiamas kaip slankusis, jis turėtų atspindėti duomenų rinkinio procentinę dalį, kurią reikia įtraukti į bandomąjį skaidymą, ir būti nuo 0,0 iki 1,0.
  • Tikslus bandomųjų pavyzdžių skaičius nurodomas reikšme, jei ji pateikiama kaip sveikasis skaičius.
  • Jei nustatyta kaip Nėra, kaip vertė naudojamas traukinio dydžio papildymas.
  • Jei traukinio_dydis taip pat yra None, jis bus nustatytas į 0,25 (25 % duomenų rinkinio).
  • train_size (numpy.random.Generator, neprivaloma): Traukinio padalijimo dydis nustatomas pagal šį parametrą. Tai atitinka tas pačias gaires, kaip ir test_size.
    • Jei jis pateikiamas kaip slankusis, jis turėtų atspindėti duomenų rinkinio procentinę dalį, kurią reikia įtraukti į traukinio padalijimą, ir būti nuo 0,0 iki 1,0.
    • Tikslus traukinių pavyzdžių skaičius nurodomas reikšme, jei ji pateikiama kaip sveikasis skaičius.
    • Jei nustatyta kaip Nėra, reikšmė automatiškai pakeičiama į testo dydžio papildymą.
  • shuffle (bool, pasirinktinai, numatytasis True)
    • Šis parametras nustato, ar prieš skaidant duomenis maišyti, ar ne.
    • Jei nustatyta į True, duomenys bus atsitiktinai sumaišyti prieš padalijimą.
    • Jei nustatyta į False, duomenys bus suskaidyti be maišymo.
  • stratify_by_column (str, neprivaloma, numatytasis nustatymas Nėra)
    • Šis parametras naudojamas stratifikuotam duomenų skaidymui pagal konkretų stulpelį.
    • Jei nurodyta, tai turėtų būti etikečių ar klasių stulpelio pavadinimas.
    • Duomenys bus suskirstyti taip, kad būtų išlaikytas toks pat etikečių arba klasių pasiskirstymas traukinyje ir bandymo padalijimas.
  • sėkla (tarp, neprivaloma)
    • Šis parametras leidžia nustatyti pradinį numatytąjį BitGenerator inicijavimą.
    • Jei nustatyta į None, iš operacinės sistemos bus paimta nauja, nenuspėjama entropija.
    • Jei perduodami sveikieji arba į masyvą panašūs sveikieji skaičiai, jie bus naudojami pradinei BitGenerator būsenai nustatyti.
  • generatorius (numpy.random.Generator, pasirinktinai)
    • Šis parametras leidžia nurodyti NumPy atsitiktinių generatorių duomenų rinkinio eilučių permutacijai apskaičiuoti.
    • Jei jis nustatytas į None (numatytasis), jis naudoja np.random.default_rng, kuris yra numatytasis NumPy bitų generatorius (PCG64).
  • keep_in_memory (bool, numatytasis nustatymas False)
    • Šis parametras nustato, ar suskaidytus indeksus laikyti atmintyje, o ne įrašyti į talpyklos failą.
    • Jei nustatyta į True, padalijimo indeksai bus saugomi atmintyje skaidymo proceso metu.
    • Jei nustatyta į False, padalijimo indeksai bus įrašyti į talpyklos failą, kad būtų galima naudoti vėliau.
  • load_from_cache_file (pasirenkama[bool], numatytasis nustatymas True, jei įjungtas talpyklos saugojimas)
    • Šis parametras nustato, ar naudoti talpyklos failą, kad būtų įkeliami suskaidyti indeksai, o ne juos skaičiuoti iš naujo.
    • Jei nustatyta kaip True ir galima identifikuoti talpyklos failą, kuriame saugomi padalijimo indeksai, jis bus naudojamas.
    • Jei nustatyta į False, padalijimo indeksai bus perskaičiuoti, net jei yra talpyklos failas.
    • Numatytoji reikšmė yra True, jei įjungtas kaupimas talpykloje.
  • Train_cache_file_name (str, neprivaloma)
    • Šis parametras leidžia pateikti konkretų kelią arba pavadinimą talpyklos failui, kuriame saugomi traukinio padalijimo indeksai.
    • Jei nurodyta, traukinio padalijimo indeksai bus saugomi šiame talpyklos faile, o ne automatiškai sugeneruoto talpyklos failo pavadinimu.
  • test_cache_file_name (str, neprivaloma)
    • Šis parametras leidžia pateikti konkretų kelią arba pavadinimą talpyklos failui, kuriame saugomi bandomojo padalijimo indeksai.
    • Jei nurodyta, bandomieji padalijimo indeksai bus saugomi šiame talpyklos faile, o ne automatiškai sugeneruotame talpyklos failo pavadinimu.
  • writer_batch_size (int, numatytasis 1000)
    • Šis parametras nustato eilučių skaičių vienai talpyklos failo rašytojo įrašymo operacijai.
    • Tai kompromisas tarp atminties naudojimo ir apdorojimo greičio.
    • Didesnės reikšmės sumažina rašymo operacijų skaičių, tačiau apdorojimo metu sunaudojama daugiau atminties.
    • Mažesnės reikšmės sunaudoja mažiau laikinosios atminties, tačiau gali šiek tiek paveikti apdorojimo greitį.
  • train_new_fingerprint (str, neprivaloma, numatytasis nustatymas Nėra)
    • Šis parametras parodo naują traukinio rinkinio kontrolinį atspaudą pritaikius transformaciją.
    • Jei nurodyta, traukinio rinkiniui suteikiamas naujas piršto atspaudas.
    • Jei nustatyta kaip Nėra, naujas kontrolinis atspaudas apskaičiuojamas naudojant ankstesnio kontrolinio kodo maišą ir transformacijos argumentus.
  • test_new_fingerprint (str, neprivaloma, numatytasis nustatymas Nėra)
    • Šis parametras parodo naują bandomojo rinkinio kontrolinio kodo atspaudą pritaikius transformaciją.
    • Jei nurodyta, bandomajam rinkiniui suteikiamas naujas piršto atspaudas.
    • Jei nustatyta kaip Nėra, naujas kontrolinis atspaudas apskaičiuojamas naudojant ankstesnio kontrolinio kodo maišą ir transformacijos argumentus.

    Sintaksė:

    iš sklearn.model_selection importuoti train_test_split

    X_traukinys, X_testas, y_traukinys, y_testas = traukinio_testo_skirstymas(X, y, testo_dydis = 0,2, atsitiktinė būsena = 42)

    X : tai rodo jūsų duomenų rinkinio įvesties funkcijas arba nepriklausomus kintamuosius.



    • ir : Tai reiškia išvestį arba priklausomą kintamąjį, kurį bandote numatyti.
    • testo_dydis : Šis parametras nustato duomenų rinkinio dalį, kuri bus skirta testavimui. Jis gali būti nurodytas kaip slankusis skaičius (pvz., 0,2, kai yra 20 %) arba sveikasis skaičius (pvz., 200, jei yra 200 pavyzdžių).
    • atsitiktinė būsena : Tai yra pasirenkamas parametras, leidžiantis nustatyti atsitiktinių skaičių generatoriaus pradžią. Tai užtikrina, kad padalijimas būtų atkuriamas, o tai reiškia, kad jūs gausite tą patį padalijimą, jei naudosite tą pačią atsitiktinės būsenos reikšmę.

    Funkcija train_test_split grąžina keturis duomenų rinkinius:





    • X_traukinys : mokymo įvesties funkcijų rinkinys.
    • X_testas : įvesties funkcijų testavimo rinkinys.
    • y_traukinys : mokomasis išvesties etikečių rinkinys.
    • y_testas : bandomasis išvesties etikečių rinkinys.

    Pavyzdys : toliau pateikta pavyzdinė programa išsaugoma kaip „ test.py “.

    iš sklearn.model_selection importuoti train_test_split

    iš duomenų rinkinių importuoti load_dataset

    # 1 veiksmas: įkelkite duomenų rinkinį

    duomenų rinkinys = load_dataset('imdb')

    X = duomenų rinkinys [traukinys][tekstas]

    y = duomenų rinkinys['traukinys']['etiketė']

    # 2 veiksmas: padalinkite duomenų rinkinį

    X_traukinys, X_testas, y_traukinys, y_testas = traukinio_testo_skilimas(X, y, testo_dydis = 0,2,

    shuffle=Tiesa, atsitiktinis_būsena=42)

    # 3 veiksmas: tyrinėkite duomenų rinkinį

    print('Pavyzdžių skaičius pradiniame duomenų rinkinyje:', len(X))

    print('Pavyzdžių skaičius traukinio duomenų rinkinyje:', len(X_traukinys))

    print('Pavyzdžių skaičius bandymo duomenų rinkinyje:', len(X_test))

    # 4 veiksmas: pasiekite ir atspausdinkite pavyzdinius duomenis

    print('\nPavyzdys iš traukinio duomenų rinkinio:')

    spausdinti(X_traukinys[0], y_traukinys[0])

    print('\nPavyzdys iš bandymo duomenų rinkinio:')

    spausdinti (X_testas[0], y_testas[0])

    Šis importavimo teiginys yra iš scikit-learn, o ne iš Hugging Face duomenų rinkinių bibliotekos. Įsitikinkite, kad jūsų aplinkoje įdiegta programa scikit-learn. Jį galite įdiegti naudodami šią komandą:



    pip install scikit-learn

    Paaiškinimas: Pirmiausia importuojame reikiamą modulį: train_test_split iš scikit-learn.

    • Įkeliame IMDb duomenų rinkinį naudodami load_dataset('imdb') ir priskiriame jį duomenų rinkinio kintamajam.
    • Norėdami naudoti train_test_split, turime atskirti įvesties funkcijas (X) ir atitinkamas etiketes (y). Šiuo atveju darome prielaidą, kad duomenų rinkinys turi skaidinį pavadinimu „traukinys“, kurio įvesties ypatybės yra „tekstas“, o atitinkamos etiketės – „etiketė“. Gali tekti koreguoti raktus pagal duomenų rinkinio struktūrą.
    • Tada perduodame įvesties funkcijas (X) ir etiketes (y) į train_test_split kartu su kitais parametrais. Šiame pavyzdyje mes nustatėme test_size į 0,2, o tai reiškia, kad 20% duomenų bus skirta testavimui. Sumaišymo parametras nustatytas į „True“, kad duomenys būtų sumaišyti atsitiktinai prieš skaidant, o parametras random_state nustatytas į 42, kad būtų galima atkurti.
    • Funkcija train_test_split grąžina keturis duomenų rinkinius: X_train, X_test, y_train ir y_test. Jie atspindi atitinkamai įvesties funkcijų ir etikečių mokymo ir testavimo pogrupius.
    • Spausdiname pavyzdžių skaičių pradiniame duomenų rinkinyje (len(X)), mokymo duomenų rinkinyje (len(X_train)) ir bandymo duomenų rinkinyje (len(X_test)). Tai leidžia mums patikrinti padalijimo procesą ir užtikrinti, kad poaibiai būtų sukurti teisingai.
    • Galiausiai pasiekiame ir išspausdiname pavyzdį iš mokymo duomenų rinkinio (X_train[0], y_train[0]) ir pavyzdį iš bandymo duomenų rinkinio (X_test[0], y_test[0]).

    Išvestis : Paleidžiame anksčiau išsaugotą programą naudodami Python „test.py“.

    Išvada

    Traukinio bandymo padalijimo funkcija, kurią teikia Hugging Face duomenų rinkinių biblioteka, kartu su scikit-learn funkcija train_test_split, yra patogus ir efektyvus būdas padalyti duomenų rinkinį į atskirus mokymo ir testavimo pogrupius.

    Naudodami funkciją „train_test_split“, galite valdyti bandymo rinkinio dydį, sumaišyti duomenis ir nustatyti atsitiktinę atkuriamumo pradžią. Šis lankstumas leidžia efektyviai įvertinti mašininio mokymosi modelius pagal neregėtus duomenis ir padeda aptikti tokias problemas kaip per didelis arba nepakankamas pritaikymas.

    Funkcijos train_test_split parametrai leidžia valdyti įvairius padalijimo aspektus, pvz., testo rinkinio dydį (testo_dydis), duomenų maišymą (shuffle) ir stratifikuotą skaidymą pagal konkrečius stulpelius (stratify_by_column). Be to, galite nurodyti pradinę reikšmę (seed) atkuriamumui užtikrinti ir tinkinti talpyklos failų pavadinimus, kad būtų saugomi suskaidyti indeksai (traukinio_cache_file_name ir test_cache_file_name).

    „Hugging Face“ siūlomos funkcijos leidžia lengviau paruošti duomenis modelio mokymui ir vertinimui. Turėdami atskirus mokymo ir testavimo pogrupius, galite tiksliai įvertinti modelio našumą pagal nematytus duomenis, aptikti galimas problemas, pvz., permontavimą, ir priimti pagrįstus modelio tobulinimo sprendimus.

    Apskritai Hugging Face duomenų rinkinių bibliotekos traukinio testavimo padalijimo funkcija kartu su scikit-learn train_test_split yra galingas įrankių rinkinys, skirtas efektyviam duomenų skaidymui, modelių įvertinimui ir patikimų mašininio mokymosi sprendimų kūrimui.