Влакче на прегръщащи се лица и разделен набор от данни

Vlakce Na Pregr Sasi Se Lica I Razdelen Nabor Ot Danni



Библиотеката Hugging Face няма конкретна функция с име train_test_split. Въпреки това, когато става въпрос за разделяне на данните за обучение и тестване в задачи за машинно обучение, функцията train_test_split обикновено се използва в други популярни библиотеки като scikit-learn. Тук ще обясним параметрите, които обикновено се използват във функцията train_test_split от scikit-learn.

Методът train_test_split в библиотеката с набор от данни на Hugging Face се използва за разделяне на набор от данни на два поднабора: поднабор за обучение и поднабор за тестване. Този метод обикновено се използва в машинното обучение за оценка на ефективността на модел върху невидими данни. Подмножеството за обучение се използва за обучение на модела, докато подмножеството за тестване се използва за оценка на неговата производителност и способности за обобщение.







Ето общ преглед на метода train_test_split в Hugging Face:



  1. test_size (numpy.random.Generator, по избор) : Размерът на тестовия сплит се определя от тази опция. Типът може да бъде float или integer.
  • Ако е дадено като плаващо число, то трябва да отразява процента на набора от данни, който да се включи в разделянето на теста, и да бъде между 0,0 и 1,0.
  • Точният брой тестови проби се представя от стойността, ако е подадена като цяло число.
  • Ако е зададено на Няма, допълнението към размера на влака се използва като стойност.
  • Ако train_size също е None, той ще бъде зададен на 0,25 (25% от набора от данни).
  • train_size (numpy.random.Generator, по избор): Размерът на разделянето на влака се определя от този параметър. Той следва същите насоки като test_size.
    • Ако е дадено като плаващо число, то трябва да отразява процента на набора от данни, който да се включи в разделянето на влака, и да бъде между 0,0 и 1,0.
    • Точният брой проби от влаковете се представя от стойността, ако е подадена като цяло число.
    • Ако е зададено на Няма, стойността автоматично се променя към допълнението на тестовия размер.
  • разбъркване (bool, по избор, по подразбиране е True)
    • Този параметър определя дали да се разбъркат данните преди разделянето.
    • Ако е зададено на True, данните ще бъдат разбъркани на случаен принцип преди разделянето.
    • Ако е зададено на False, данните ще бъдат разделени без разбъркване.
  • stratify_by_column (str, по избор, по подразбиране е None)
    • Този параметър се използва за стратифицирано разделяне на данни въз основа на конкретна колона.
    • Ако е посочено, то трябва да е името на колоната на етикетите или класовете.
    • Данните ще бъдат разделени по начин, който поддържа същото разпределение на етикети или класове в разделянето на влак и тест.
  • семе (int, незадължително)
    • Този параметър ви позволява да зададете начална стойност за инициализиране на BitGenerator по подразбиране.
    • Ако е зададено на None, нова, непредсказуема ентропия ще бъде изтеглена от операционната система.
    • Ако се предаде цяло число или подобни на масив цели числа, те ще бъдат използвани за извличане на първоначалното състояние на BitGenerator.
  • генератор (numpy.random.Generator, по избор)
    • Този параметър ви позволява да посочите произволен генератор на NumPy за изчисляване на пермутацията на редовете на набора от данни.
    • Ако е настроен на None (по подразбиране), той използва np.random.default_rng, който е BitGenerator по подразбиране (PCG64) на NumPy.
  • keep_in_memory (bool, по подразбиране False)
    • Този параметър определя дали да се запазят разделените индекси в паметта, вместо да се записват в кеш файл.
    • Ако е зададено на True, индексите на разделянето ще се съхраняват в паметта по време на процеса на разделяне.
    • Ако е зададено на False, разделените индекси ще бъдат записани в кеш файл за по-късна употреба.
  • load_from_cache_file (По избор [bool], по подразбиране е True, ако кеширането е разрешено)
    • Този параметър определя дали да се използва кеш файл за зареждане на разделените индекси, вместо повторното им изчисляване.
    • Ако е зададено на True и може да бъде идентифициран кеш файл, който съхранява разделените индекси, той ще бъде използван.
    • Ако е зададено на False, разделените индекси ще бъдат преизчислени дори ако съществува кеш файл.
    • Стойността по подразбиране е True, ако кеширането е активирано.
  • train_cache_file_name (str, по избор)
    • Този параметър ви позволява да предоставите конкретен път или име за кеш файла, който съхранява индексите за разделяне на влака.
    • Ако е посочено, индексите за разделяне на влака ще се съхраняват в този кеш файл вместо в автоматично генерираното име на кеш файл.
  • test_cache_file_name (str, по избор)
    • Този параметър ви позволява да предоставите конкретен път или име за кеш файла, който съхранява тестовите разделени индекси.
    • Ако е посочено, индексите на разделянето на теста ще бъдат съхранени в този кеш файл вместо автоматично генерираното име на кеш файл.
  • writer_batch_size (int, по подразбиране 1000)
    • Този параметър определя броя на редовете на операция за запис за записващия кеш файл.
    • Това е компромис между използването на паметта и скоростта на обработка.
    • По-високите стойности намаляват броя на операциите за запис, но консумират повече памет по време на обработката.
    • По-ниските стойности консумират по-малко временна памет, но могат леко да повлияят на скоростта на обработка.
  • train_new_fingerprint (str, по избор, по подразбиране е None)
    • Този параметър представлява новия отпечатък на влаковата композиция след прилагане на трансформация.
    • Ако е посочено, предоставя нов пръстов отпечатък за комплекта влакове.
    • Ако е зададено на None, новият пръстов отпечатък се изчислява с помощта на хеш на предишния пръстов отпечатък и аргументите за трансформация.
  • test_new_fingerprint (str, по избор, по подразбиране е None)
    • Този параметър представлява новия отпечатък на тестовия набор след прилагане на трансформация.
    • Ако е посочено, то осигурява нов пръстов отпечатък за тестовия набор.
    • Ако е зададено на None, новият пръстов отпечатък се изчислява с помощта на хеш на предишния пръстов отпечатък и аргументите за трансформация.

    Синтаксис:

    от 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)

    х : Това представлява входните характеристики или независими променливи на вашия набор от данни.



    • и : Това представлява изходната или зависима променлива, която се опитвате да предвидите.
    • тестов_размер : Този параметър определя дела на набора от данни, който ще бъде разпределен за тестване. Може да бъде посочено като плаващо число (напр. 0,2 за 20%) или цяло число (напр. 200 за 200 проби).
    • произволно_състояние : Това е незадължителен параметър, който ви позволява да зададете начална стойност за генератора на произволни числа. Той гарантира, че разделянето е възпроизводимо, което означава, че ще получите същото разделяне, ако използвате същата произволна стойност на състоянието.

    Функцията train_test_split връща четири набора от данни:





    • X_влак : Обучителният набор от функции за въвеждане.
    • X_тест : Тестващият набор от входни функции.
    • y_влак : Наборът за обучение от изходни етикети.
    • y_test : Тестващият набор от изходни етикети.

    Пример : Следната примерна програма е записана като „ test.py ”.

    от sklearn.model_selection import train_test_split

    от набори от данни импортирайте load_dataset

    # Стъпка 1: Заредете набора от данни

    набор от данни = load_dataset('imdb')

    X = набор от данни['train']['text']

    y = набор от данни['влак']['етикет']

    # Стъпка 2: Разделете набора от данни

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

    shuffle=Вярно, random_state=42)

    # Стъпка 3: Разгледайте набора от данни

    print('Брой примери в оригиналния набор от данни:', len(X))

    print('Брой примери в набора от данни за влака:', len(X_train))

    print('Брой примери в тестовия набор от данни:', len(X_test))

    # Стъпка 4: Осъществете достъп и отпечатайте примерни данни

    print('\nПример от набора от данни за влака:')

    печат (X_train[0], y_train[0])

    print('\nПример от тестовия набор от данни:')

    печат (X_тест[0], y_тест[0])

    Това изявление за импортиране е от scikit-learn, а не от библиотеката с набори от данни на Hugging Face. Моля, уверете се, че имате инсталиран scikit-learn във вашата среда. Можете да го инсталирате, като използвате следната команда:



    pip инсталирайте scikit-learn

    Обяснение: Първо импортираме необходимия модул: train_test_split от scikit-learn.

    • Зареждаме набора от данни на IMDb с помощта на load_dataset(‘imdb’) и го присвояваме на променливата на набора от данни.
    • За да използваме train_test_split, трябва да разделим входните характеристики (X) и съответните етикети (y). В този случай приемаме, че наборът от данни има разделяне, наречено „влак“ с „текст“ като входни характеристики и „етикет“ като съответните етикети. Може да се наложи да коригирате ключовете въз основа на структурата на вашия набор от данни.
    • След това предаваме входните функции (X) и етикетите (y) към train_test_split заедно с други параметри. В този пример задаваме test_size на 0,2, което означава, че 20% от данните ще бъдат разпределени за тестване. Параметърът за разбъркване е настроен на „Истина“, за произволно разбъркване на данните преди разделянето, а параметърът random_state е настроен на 42 за възпроизводимост.
    • Функцията train_test_split връща четири набора от данни: X_train, X_test, y_train и y_test. Те представляват съответно подмножествата за обучение и тестване на входните характеристики и етикети.
    • Отпечатваме броя на примерите в оригиналния набор от данни (len(X)), набора от данни за обучение (len(X_train)) и набора от тестови данни (len(X_test)). Това ни позволява да проверим процеса на разделяне и да гарантираме, че подгрупите са създадени правилно.
    • Накрая получаваме достъп и отпечатваме пример от обучителния набор от данни (X_train[0], y_train[0]) и пример от тестовия набор от данни (X_test[0], y_test[0]).

    Изход : Изпълняваме предварително запазената програма с помощта на Python „test.py“.

    Заключение

    Функционалността за разделяне на тестове за обучение, която се предоставя от библиотеката с набори от данни на Hugging Face, в комбинация с функцията train_test_split на scikit-learn, предлага удобен и ефективен начин за разделяне на набор от данни на отделни подмножества за обучение и тестване.

    Като използвате функцията train_test_split, можете да контролирате размера на тестовия набор, дали да разбъркате данните и да зададете произволно начално число за възпроизводимост. Тази гъвкавост позволява ефективна оценка на моделите за машинно обучение върху невидими данни и помага при откриване на проблеми като прекомерно или недостатъчно приспособяване.

    Параметрите на функцията train_test_split ви позволяват да контролирате различни аспекти на разделянето, като например размера на тестовия набор (test_size), разбъркване на данните (разбъркване) и извършване на стратифицирано разделяне въз основа на конкретни колони (stratify_by_column). Освен това можете да посочите начална стойност (seed) за възпроизводимост и да персонализирате имената на кеш файловете за съхраняване на разделените индекси (train_cache_file_name и test_cache_file_name).

    Функционалността, която предлага Hugging Face, улеснява подготовката на вашите данни за обучение и оценка на модела. Като имате отделни подмножества за обучение и тестване, можете точно да оцените ефективността на вашия модел върху невидими данни, да откриете потенциални проблеми като прекомерно оборудване и да вземете информирани решения за подобрения на модела.

    Като цяло, функционалността за разделяне на тестове за влак в библиотеката с набори от данни на Hugging Face, във връзка с train_test_split на scikit-learn, предоставя мощен набор от инструменти за ефективно разделяне на данни, оценка на модела и разработване на надеждни решения за машинно обучение.