Hugging Face Train og Split Datasæt

Hugging Face Train Og Split Datasaet



Knusende ansigt-biblioteket har ikke en specifik funktion ved navn train_test_split. Men når det kommer til at opdele dataene til træning og test i maskinlæringsopgaver, er funktionen train_test_split almindeligvis brugt i andre populære biblioteker såsom scikit-learn. Her vil vi forklare de parametre, der typisk bruges i funktionen train_test_split fra scikit-learn.

Train_test_split-metoden i Hugging Faces datasætbibliotek bruges til at opdele et datasæt i to delmængder: et træningsundersæt og et testundersæt. Denne metode er almindeligt anvendt i maskinlæring til at evaluere ydeevnen af ​​en model på usete data. Træningsdelmængden bruges til at træne modellen, mens testdelmængden bruges til at vurdere dens ydeevne og generaliseringsevner.







Her er en oversigt over train_test_split-metoden i Hugging Face:



  1. test_size (numpy.random.Generator, valgfri) : Størrelsen af ​​testopdelingen bestemmes af denne mulighed. Typen kan enten være flydende eller heltal.
  • Hvis den er angivet som en float, skal den afspejle procentdelen af ​​datasættet, der skal inkluderes i testdelingen, og være mellem 0,0 og 1,0.
  • Det nøjagtige antal testprøver er repræsenteret af værdien, hvis den leveres som et heltal.
  • Hvis den er sat til Ingen, bruges komplementet af togstørrelsen som værdi.
  • Hvis train_size også er Ingen, vil den blive sat til 0,25 (25 % af datasættet).
  • train_size (numpy.random.Generator, valgfri): Togsplitstørrelsen bestemmes af denne parameter. Det følger de samme retningslinjer som test_size.
    • Hvis det er angivet som et flydende, skal det afspejle procentdelen af ​​datasættet, der skal inkluderes i togfordelingen, og være mellem 0,0 og 1,0.
    • Det nøjagtige antal togprøver er repræsenteret af værdien, hvis det leveres som et heltal.
    • Hvis den er indstillet til Ingen, ændres værdien automatisk til teststørrelsens komplement.
  • shuffle (bool, valgfri, er som standard True)
    • Denne parameter bestemmer, om dataene skal blandes eller ej før opdeling.
    • Hvis den er sat til True, vil dataene blive blandet tilfældigt før opdelingen.
    • Hvis den er indstillet til False, vil dataene blive opdelt uden at blande.
  • stratify_by_column (str, valgfri, standard til Ingen)
    • Denne parameter bruges til stratificeret opdeling af data baseret på en specifik kolonne.
    • Hvis det er angivet, skal det være kolonnenavnet på etiketterne eller klasserne.
    • Dataene vil blive opdelt på en måde, der bevarer den samme fordeling af etiketter eller klasser i tog- og testopdelingerne.
  • frø (int, valgfrit)
    • Denne parameter giver dig mulighed for at indstille et frø til at initialisere standard BitGenerator.
    • Hvis den er sat til Ingen, vil en frisk, uforudsigelig entropi blive trukket fra operativsystemet.
    • Hvis et heltal eller array-lignende heltal sendes, vil de blive brugt til at udlede den indledende BitGenerator-tilstand.
  • generator (numpy.random.Generator, valgfri)
    • Denne parameter giver dig mulighed for at angive en NumPy tilfældig generator til at beregne permutationen af ​​datasætrækkerne.
    • Hvis den er sat til Ingen (standard), bruger den np.random.default_rng, som er standard BitGenerator (PCG64) for NumPy.
  • keep_in_memory (bool, er som standard False)
    • Denne parameter bestemmer, om de opdelte indekser skal beholdes i hukommelsen i stedet for at skrive dem til en cache-fil.
    • Hvis den er sat til True, vil opdelingsindekserne blive gemt i hukommelsen under opdelingsprocessen.
    • Hvis det er sat til False, vil de opdelte indekser blive skrevet til en cache-fil til senere brug.
  • load_from_cache_file (Valgfri[bool], er som standard True, hvis caching er aktiveret)
    • Denne parameter bestemmer, om der skal bruges en cache-fil til at indlæse de opdelte indekser i stedet for at genberegne dem.
    • Hvis den er sat til True, og en cache-fil, der gemmer de opdelte indekser, kan identificeres, vil den blive brugt.
    • Hvis den er indstillet til False, vil de opdelte indekser blive genberegnet, selvom der findes en cache-fil.
    • Standardværdien er True, hvis caching er aktiveret.
  • train_cache_file_name (str, valgfrit)
    • Denne parameter giver dig mulighed for at angive en specifik sti eller navn til cachefilen, der gemmer togopdelingsindekserne.
    • Hvis det er specificeret, vil togopdelingsindekserne blive gemt i denne cache-fil i stedet for det automatisk genererede cache-filnavn.
  • test_cache_file_name (str, valgfrit)
    • Denne parameter giver dig mulighed for at angive en specifik sti eller navn til cachefilen, der gemmer testsplitindeksene.
    • Hvis det er angivet, vil testsplitindeksene blive gemt i denne cachefil i stedet for det automatisk genererede cachefilnavn.
  • writer_batch_size (int, standard til 1000)
    • Denne parameter bestemmer antallet af rækker pr. skriveoperation for cachefilskriveren.
    • Det er en afvejning mellem hukommelsesforbrug og behandlingshastighed.
    • Højere værdier reducerer antallet af skriveoperationer, men bruger mere hukommelse under behandling.
    • Lavere værdier bruger mindre midlertidig hukommelse, men kan påvirke behandlingshastigheden en smule.
  • train_new_fingerprint (str, valgfri, standard til Ingen)
    • Denne parameter repræsenterer det nye fingeraftryk for togsættet efter anvendelse af en transformation.
    • Hvis det er angivet, giver det et nyt fingeraftryk til togsættet.
    • Hvis det er sat til Ingen, beregnes det nye fingeraftryk ved hjælp af en hash af det tidligere fingeraftryk og transformationsargumenterne.
  • test_new_fingerprint (str, valgfrit, er som standard Ingen)
    • Denne parameter repræsenterer det nye fingeraftryk for testsættet efter anvendelse af en transformation.
    • Hvis det er angivet, giver det et nyt fingeraftryk til testsættet.
    • Hvis det er sat til Ingen, beregnes det nye fingeraftryk ved hjælp af en hash af det tidligere fingeraftryk og transformationsargumenterne.

    Syntaks:

    fra 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 : Dette repræsenterer inputfunktionerne eller uafhængige variabler i dit datasæt.



    • og : Dette repræsenterer output eller afhængig variabel, som du forsøger at forudsige.
    • test_størrelse : Denne parameter bestemmer andelen af ​​datasættet, der vil blive allokeret til test. Det kan angives som et flydende tal (f.eks. 0,2 for 20%) eller et heltal (f.eks. 200 for 200 prøver).
    • tilfældig_tilstand : Dette er en valgfri parameter, der giver dig mulighed for at sætte et frø til generatoren af ​​tilfældige tal. Det sikrer, at opdelingen er reproducerbar, hvilket betyder, at du opnår den samme opdeling, hvis du bruger den samme tilfældige tilstandsværdi.

    Train_test_split-funktionen returnerer fire sæt data:





    • X_tog : Træningssættet af inputfunktioner.
    • X_test : Testsættet af inputfunktioner.
    • y_tog : Træningssættet af outputetiketter.
    • y_test : Testsættet af outputetiketter.

    Eksempel : Følgende eksempelprogram er gemt som ' test.py ”.

    fra sklearn.model_selection import train_test_split

    fra datasæt importer load_dataset

    # Trin 1: Indlæs datasættet

    datasæt = load_dataset('imdb')

    X = datasæt['tog']['tekst']

    y = datasæt['tog']['label']

    # Trin 2: Opdel datasættet

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

    shuffle=True, random_state=42)

    # Trin 3: Udforsk datasættet

    print('Antal eksempler i det originale datasæt:', len(X))

    print('Antal eksempler i togdatasættet:', len(X_train))

    print('Antal eksempler i testdatasættet:', len(X_test))

    # Trin 4: Få adgang til og udskriv eksempeldata

    print('\nEksempel fra togdatasættet:')

    print(X_tog[0], y_tog[0])

    print('\nEksempel fra testdatasættet:')

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

    Denne importerklæring er fra scikit-learn, ikke fra datasætbiblioteket Hugging Face. Sørg for, at du har scikit-learn installeret i dit miljø. Du kan installere det ved at bruge følgende kommando:



    pip installer scikit-learn

    Forklaring: Først importerer vi det nødvendige modul: train_test_split fra scikit-learn.

    • Vi indlæser IMDb-datasættet ved hjælp af load_dataset('imdb') og tildeler det til datasætvariablen.
    • For at bruge train_test_split skal vi adskille inputfunktionerne (X) og de tilsvarende etiketter (y). I dette tilfælde antager vi, at datasættet har en opdeling med navnet 'tog' med 'tekst' som inputfunktioner og 'label' som de tilsvarende etiketter. Du skal muligvis justere tasterne baseret på strukturen af ​​dit datasæt.
    • Vi sender derefter input-funktionerne (X) og labels (y) til train_test_split sammen med andre parametre. I dette eksempel sætter vi test_size til 0,2, hvilket betyder, at 20% af dataene vil blive allokeret til test. Blandingsparameteren er indstillet til 'True' for at blande dataene tilfældigt før opdeling, og random_state parameteren indstilles til 42 for reproducerbarhed.
    • Tog_test_split-funktionen returnerer fire sæt data: X_train, X_test, y_train og y_test. Disse repræsenterer trænings- og testundersæt af henholdsvis inputfunktionerne og etiketterne.
    • Vi udskriver antallet af eksempler i det originale datasæt (len(X)), træningsdatasættet (len(X_train)) og testdatasættet (len(X_test)). Dette giver os mulighed for at verificere opdelingsprocessen og sikre, at undersættene er oprettet korrekt.
    • Til sidst får vi adgang til og udskriver et eksempel fra træningsdatasættet (X_train[0], y_train[0]) og et eksempel fra testdatasættet (X_test[0], y_test[0]).

    Produktion : Vi kører det tidligere gemte program ved hjælp af Python 'test.py'.

    Konklusion

    Tog-test split-funktionaliteten, der leveres af Hugging Faces datasætbibliotek, i kombination med scikit-learns train_test_split-funktion, tilbyder en bekvem og effektiv måde at opdele et datasæt i separate trænings- og testundersæt.

    Ved at bruge train_test_split-funktionen kan du kontrollere størrelsen af ​​testsættet, om dataene skal blandes, og indstille et tilfældigt frø til reproducerbarhed. Denne fleksibilitet giver mulighed for effektiv evaluering af maskinlæringsmodeller på usete data og hjælper med at opdage problemer såsom overfitting eller underfitting.

    Parametrene for funktionen train_test_split giver dig mulighed for at kontrollere forskellige aspekter af opdelingen, såsom størrelsen af ​​testsættet (test_size), blande dataene (shuffle) og udføre en stratificeret opdeling baseret på specifikke kolonner (stratify_by_column). Derudover kan du angive en seed-værdi (seed) for reproducerbarhed og tilpasse cache-filnavnene til lagring af de opdelte indekser (train_cache_file_name og test_cache_file_name).

    Funktionaliteten, som Hugging Face tilbyder, gør det nemmere at forberede dine data til modeltræning og evaluering. Ved at have separate trænings- og testundersæt kan du nøjagtigt vurdere din models ydeevne på usete data, opdage potentielle problemer som overfitting og træffe informerede beslutninger om modelforbedringer.

    Samlet set giver train-test split-funktionaliteten i Hugging Faces datasætbibliotek, sammen med scikit-learns train_test_split, et kraftfuldt værktøjssæt til effektiv dataopdeling, modelevaluering og udvikling af robuste maskinlæringsløsninger.