Knuffelgezichtstrein en gesplitste dataset

Knuffelgezichtstrein En Gesplitste Dataset



De Hugging Face-bibliotheek heeft geen specifieke functie met de naam train_test_split. Als het echter gaat om het splitsen van de gegevens voor training en testen bij machine learning-taken, wordt de train_test_split-functie vaak gebruikt in andere populaire bibliotheken zoals scikit-learn. Hier zullen we de parameters uitleggen die doorgaans worden gebruikt in de train_test_split-functie van scikit-learn.

De train_test_split-methode in de datasetbibliotheek van Hugging Face wordt gebruikt om een ​​dataset in twee subsets te verdelen: een trainingssubset en een testsubset. Deze methode wordt vaak gebruikt bij machinaal leren om de prestaties van een model op onzichtbare gegevens te evalueren. De trainingssubset wordt gebruikt om het model te trainen, terwijl de testsubset wordt gebruikt om de prestaties en generalisatiemogelijkheden ervan te beoordelen.







Hier is een overzicht van de train_test_split-methode in Hugging Face:



  1. test_size (numpy.random.Generator, optioneel) : De grootte van de testsplitsing wordt bepaald door deze optie. Het type kan float of integer zijn.
  • Als de waarde als float wordt opgegeven, moet deze het percentage van de dataset weerspiegelen dat in de testsplitsing moet worden opgenomen en tussen 0,0 en 1,0 liggen.
  • Het exacte aantal testmonsters wordt weergegeven door de waarde als deze als geheel getal wordt opgegeven.
  • Als deze is ingesteld op Geen, wordt het complement van de treingrootte als waarde gebruikt.
  • Als de train_size ook Geen is, wordt deze ingesteld op 0,25 (25% van de dataset).
  • train_size (numpy.random.Generator, optioneel): De treinsplitsingsgrootte wordt bepaald door deze parameter. Het volgt dezelfde richtlijnen als test_size.
    • Als het als float wordt opgegeven, moet het het percentage van de dataset weerspiegelen dat in de treinsplitsing moet worden opgenomen en tussen 0,0 en 1,0 liggen.
    • Het exacte aantal treinmonsters wordt weergegeven door de waarde als deze als geheel getal wordt opgegeven.
    • Als deze is ingesteld op Geen, wordt de waarde automatisch gewijzigd in het complement van de testgrootte.
  • shuffle (bool, optioneel, standaard ingesteld op True)
    • Deze parameter bepaalt of de gegevens al dan niet in willekeurige volgorde worden afgespeeld voordat ze worden gesplitst.
    • Als deze is ingesteld op True, worden de gegevens vóór de splitsing willekeurig geschud.
    • Als deze is ingesteld op False, worden de gegevens gesplitst zonder te schudden.
  • stratify_by_column (str, optioneel, standaard ingesteld op Geen)
    • Deze parameter wordt gebruikt voor het gestratificeerd splitsen van gegevens op basis van een specifieke kolom.
    • Als dit is opgegeven, moet dit de kolomnaam van de labels of klassen zijn.
    • De gegevens worden zodanig gesplitst dat dezelfde verdeling van labels of klassen in de trein- en testsplitsingen behouden blijft.
  • zaad (int, optioneel)
    • Met deze parameter kunt u een zaad instellen om de standaard BitGenerator te initialiseren.
    • Als deze is ingesteld op Geen, wordt er een nieuwe, onvoorspelbare entropie uit het besturingssysteem gehaald.
    • Als een geheel getal of array-achtige gehele getallen worden doorgegeven, worden deze gebruikt om de initiële BitGenerator-status af te leiden.
  • generator (numpy.random.Generator, optioneel)
    • Met deze parameter kunt u een willekeurige NumPy-generator opgeven om de permutatie van de gegevenssetrijen te berekenen.
    • Als het is ingesteld op Geen (standaard), gebruikt het de np.random.default_rng, de standaard BitGenerator (PCG64) van NumPy.
  • keep_in_memory (bool, standaard ingesteld op False)
    • Deze parameter bepaalt of de gesplitste indexen in het geheugen moeten worden bewaard in plaats van ze naar een cachebestand te schrijven.
    • Als deze is ingesteld op True, worden de gesplitste indexen tijdens het splitsingsproces in het geheugen opgeslagen.
    • Als deze is ingesteld op False, worden de gesplitste indexen naar een cachebestand geschreven voor later gebruik.
  • load_from_cache_file (Optioneel[bool], standaard ingesteld op True als caching is ingeschakeld)
    • Deze parameter bepaalt of een cachebestand moet worden gebruikt om de gesplitste indexen te laden in plaats van ze opnieuw te berekenen.
    • Als deze is ingesteld op True en er een cachebestand kan worden geïdentificeerd waarin de gesplitste indexen zijn opgeslagen, wordt deze gebruikt.
    • Als deze is ingesteld op False, worden de gesplitste indices opnieuw berekend, zelfs als er een cachebestand bestaat.
    • De standaardwaarde is True als caching is ingeschakeld.
  • train_cache_file_name (str, optioneel)
    • Met deze parameter kunt u een specifiek pad of een specifieke naam opgeven voor het cachebestand waarin de treinsplitsingsindexen worden opgeslagen.
    • Als dit is opgegeven, worden de treinsplitsingsindexen in dit cachebestand opgeslagen in plaats van in de automatisch gegenereerde cachebestandsnaam.
  • test_cache_bestandsnaam (str, optioneel)
    • Met deze parameter kunt u een specifiek pad of een specifieke naam opgeven voor het cachebestand waarin de testsplitsingsindexen worden opgeslagen.
    • Als dit is opgegeven, worden de testsplitsingsindexen in dit cachebestand opgeslagen in plaats van in de automatisch gegenereerde cachebestandsnaam.
  • writer_batch_size (int, standaard ingesteld op 1000)
    • Deze parameter bepaalt het aantal rijen per schrijfbewerking voor de cachebestandschrijver.
    • Het is een afweging tussen geheugengebruik en verwerkingssnelheid.
    • Hogere waarden verminderen het aantal schrijfbewerkingen, maar verbruiken meer geheugen tijdens de verwerking.
    • Lagere waarden verbruiken minder tijdelijk geheugen, maar kunnen de verwerkingssnelheid enigszins beïnvloeden.
  • train_new_fingerprint (str, optioneel, standaard ingesteld op Geen)
    • Deze parameter representeert de nieuwe vingerafdruk van het treinstel na het toepassen van een transformatie.
    • Als dit wordt gespecificeerd, levert het een nieuwe vingerafdruk op voor het treinstel.
    • Als deze is ingesteld op Geen, wordt de nieuwe vingerafdruk berekend met behulp van een hash van de vorige vingerafdruk en de transformatieargumenten.
  • test_new_fingerprint (str, optioneel, standaard ingesteld op Geen)
    • Deze parameter vertegenwoordigt de nieuwe vingerafdruk van de testset na het toepassen van een transformatie.
    • Als dit is opgegeven, wordt er een nieuwe vingerafdruk voor de testset geleverd.
    • Als deze is ingesteld op Geen, wordt de nieuwe vingerafdruk berekend met behulp van een hash van de vorige vingerafdruk en de transformatieargumenten.

    Syntaxis:

    vanuit sklearn.model_selection importeer train_test_split

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

    X : Dit vertegenwoordigt de invoerfuncties of onafhankelijke variabelen van uw gegevensset.



    • En : Dit vertegenwoordigt de uitvoer of afhankelijke variabele die u probeert te voorspellen.
    • testgrootte : Deze parameter bepaalt het deel van de dataset dat wordt toegewezen voor testen. Het kan worden gespecificeerd als een float (bijvoorbeeld 0,2 voor 20%) of een geheel getal (bijvoorbeeld 200 voor 200 monsters).
    • willekeurige_status : dit is een optionele parameter waarmee u een startnummer voor de generator voor willekeurige getallen kunt instellen. Het zorgt ervoor dat de splitsing reproduceerbaar is, wat betekent dat u dezelfde splitsing krijgt als u dezelfde willekeurige statuswaarde gebruikt.

    De functie train_test_split retourneert vier sets gegevens:





    • X_trein : de trainingsset met invoerfuncties.
    • X_test : de testset met invoerfuncties.
    • y_trein : de trainingsset met uitvoerlabels.
    • y_test : De testset met uitvoerlabels.

    Voorbeeld : Het volgende voorbeeldprogramma wordt opgeslagen als “ test.py ”.

    vanuit sklearn.model_selection importeer train_test_split

    importeer uit datasets load_dataset

    # Stap 1: Laad de dataset

    dataset = laad_dataset('imdb')

    X = dataset['trein']['tekst']

    y = gegevensset['trein']['label']

    # Stap 2: Splits de dataset

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

    shuffle=Waar, willekeurige_status=42)

    # Stap 3: Verken de dataset

    print('Aantal voorbeelden in de originele dataset:', len(X))

    print('Aantal voorbeelden in de treindataset:', len(X_train))

    print('Aantal voorbeelden in de testdataset:', len(X_test))

    # Stap 4: Voorbeeldgegevens openen en afdrukken

    print('\nVoorbeeld uit de treindataset:')

    print(X_trein[0], y_trein[0])

    print('\nVoorbeeld uit de testdataset:')

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

    Deze importinstructie is afkomstig van scikit-learn, niet van de Hugging Face-gegevenssetsbibliotheek. Zorg ervoor dat scikit-learn in uw omgeving is geïnstalleerd. Je kunt het installeren met behulp van de volgende opdracht:



    pip installeer scikit-learn

    Uitleg: Eerst importeren we de benodigde module: train_test_split van scikit-learn.

    • We laden de IMDb-dataset met behulp van de load_dataset(‘imdb’) en wijzen deze toe aan de datasetvariabele.
    • Om de train_test_split te gebruiken, moeten we de invoerfuncties (X) en de bijbehorende labels (y) scheiden. In dit geval gaan we ervan uit dat de dataset een splitsing heeft met de naam “train” met “text” als invoerfuncties en “label” als de overeenkomstige labels. Mogelijk moet u de sleutels aanpassen op basis van de structuur van uw gegevensset.
    • Vervolgens geven we de invoerfuncties (X) en labels (y) door aan de train_test_split samen met andere parameters. In dit voorbeeld stellen we de test_size in op 0,2, wat betekent dat 20% van de gegevens wordt toegewezen voor testen. De shuffle-parameter is ingesteld op 'True' om de gegevens willekeurig te shufflen voordat ze worden gesplitst, en de random_state-parameter is ingesteld op 42 voor reproduceerbaarheid.
    • De functie train_test_split retourneert vier sets gegevens: X_train, X_test, y_train en y_test. Deze vertegenwoordigen respectievelijk de trainings- en testsubsets van de invoerfuncties en labels.
    • We drukken het aantal voorbeelden af ​​in de originele dataset (len(X)), de trainingsdataset (len(X_train)) en de testdataset (len(X_test)). Hierdoor kunnen we het splitsingsproces verifiëren en ervoor zorgen dat de subsets correct worden gemaakt.
    • Ten slotte openen en printen we een voorbeeld uit de trainingsdataset (X_train[0], y_train[0]) en een voorbeeld uit de testdataset (X_test[0], y_test[0]).

    Uitvoer : We voeren het eerder opgeslagen programma uit met behulp van de Python “test.py”.

    Conclusie

    De train-test split-functionaliteit die wordt geboden door de datasetsbibliotheek van Hugging Face, in combinatie met de train_test_split-functie van scikit-learn, biedt een handige en efficiënte manier om een ​​dataset te verdelen in afzonderlijke trainings- en testsubsets.

    Door de functie train_test_split te gebruiken, kunt u de grootte van de testset bepalen, of de gegevens in willekeurige volgorde moeten worden afgespeeld en een willekeurig zaadje instellen voor reproduceerbaarheid. Deze flexibiliteit maakt een effectieve evaluatie van machine learning-modellen op basis van onzichtbare gegevens mogelijk en helpt bij het detecteren van problemen zoals overfitting of underfitting.

    Met de parameters van de functie train_test_split kunt u verschillende aspecten van de splitsing beheren, zoals de grootte van de testset (test_size), het schudden van de gegevens (shuffle) en het uitvoeren van een gestratificeerde splitsing op basis van specifieke kolommen (stratify_by_column). Bovendien kunt u een startwaarde (seed) opgeven voor reproduceerbaarheid en de cachebestandsnamen aanpassen voor het opslaan van de gesplitste indices (train_cache_file_name en test_cache_file_name).

    De functionaliteit die Hugging Face biedt, maakt het eenvoudiger om uw gegevens voor te bereiden voor modeltraining en evaluatie. Door afzonderlijke trainings- en testsubsets te hebben, kunt u de prestaties van uw model nauwkeurig beoordelen op basis van onzichtbare gegevens, potentiële problemen zoals overfitting detecteren en weloverwogen beslissingen nemen voor modelverbeteringen.

    Over het geheel genomen biedt de train-test split-functionaliteit in de datasetsbibliotheek van Hugging Face, in combinatie met de train_test_split van scikit-learn, een krachtige toolset voor het efficiënt splitsen van gegevens, modelevaluatie en de ontwikkeling van robuuste machine learning-oplossingen.