Поезд «Обнимающее лицо» и разделенный набор данных

Poezd Obnimausee Lico I Razdelennyj Nabor Dannyh



В библиотеке 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, необязательно) : Размер тестового разделения определяется этой опцией. Тип может быть плавающим или целочисленным.
  • Если оно задано как число с плавающей запятой, оно должно отражать процент набора данных, включаемый в тестовое разделение, и находиться в диапазоне от 0,0 до 1,0.
  • Точное количество тестовых образцов представлено значением, если оно указано в виде целого числа.
  • Если для него установлено значение «Нет», в качестве значения используется дополнение к размеру поезда.
  • Если train_size также имеет значение None, ему будет установлено значение 0,25 (25% набора данных).
  • train_size (numpy.random.Generator, необязательно): Размер разделения поезда определяется этим параметром. Он следует тем же правилам, что и test_size.
    • Если оно задано как число с плавающей запятой, оно должно отражать процент набора данных, включаемый в разделение поезда, и находиться в диапазоне от 0,0 до 1,0.
    • Точное количество выборок поезда представлено значением, если оно указано в виде целого числа.
    • Если для него установлено значение «Нет», значение автоматически изменяется на дополнение к размеру теста.
  • shuffle (bool, необязательный, по умолчанию True)
    • Этот параметр определяет, следует ли перемешивать данные перед разделением.
    • Если для него установлено значение True, данные перед разделением будут случайным образом перемешиваться.
    • Если для него установлено значение False, данные будут разделены без перемешивания.
  • stratify_by_column (str, необязательно, по умолчанию — Нет)
    • Этот параметр используется для послойного разделения данных на основе определенного столбца.
    • Если оно указано, это должно быть имя столбца меток или классов.
    • Данные будут разделены таким образом, чтобы поддерживать одинаковое распределение меток или классов в разделении поездов и тестов.
  • начальное значение (целое, необязательно)
    • Этот параметр позволяет вам установить начальное число для инициализации BitGenerator по умолчанию.
    • Если для него установлено значение «Нет», из операционной системы будет извлечена новая, непредсказуемая энтропия.
    • Если передаются целые числа или целые числа, подобные массиву, они будут использоваться для получения исходного состояния BitGenerator.
  • генератор (numpy.random.Generator, необязательно)
    • Этот параметр позволяет указать генератор случайных чисел NumPy для вычисления перестановки строк набора данных.
    • Если для него установлено значение None (по умолчанию), он использует np.random.default_rng, который является BitGenerator по умолчанию (PCG64) NumPy.
  • Keep_in_memory (логическое значение, по умолчанию — False)
    • Этот параметр определяет, следует ли сохранять разделенные индексы в памяти вместо записи их в файл кэша.
    • Если для него установлено значение True, индексы разделения будут сохраняться в памяти во время процесса разделения.
    • Если для него установлено значение False, индексы разделения будут записаны в файл кэша для дальнейшего использования.
  • load_from_cache_file (Необязательно[bool], по умолчанию — True, если кэширование включено)
    • Этот параметр определяет, следует ли использовать файл кэша для загрузки индексов разделения вместо их повторного вычисления.
    • Если для него установлено значение True и можно идентифицировать файл кэша, в котором хранятся индексы разделения, он будет использоваться.
    • Если для него установлено значение False, индексы разделения будут пересчитываться, даже если файл кэша существует.
    • Значение по умолчанию — True, если кэширование включено.
  • train_cache_file_name (строка, необязательно)
    • Этот параметр позволяет указать конкретный путь или имя для файла кэша, в котором хранятся индексы разделения поездов.
    • Если он указан, индексы разделения поездов будут храниться в этом файле кэша вместо автоматически сгенерированного имени файла кэша.
  • test_cache_file_name (str, необязательно)
    • Этот параметр позволяет указать конкретный путь или имя для файла кэша, в котором хранятся индексы разделения тестов.
    • Если он указан, индексы тестового разделения будут храниться в этом файле кэша вместо автоматически сгенерированного имени файла кэша.
  • Writer_batch_size (целое, по умолчанию 1000)
    • Этот параметр определяет количество строк на операцию записи для средства записи файла кэша.
    • Это компромисс между использованием памяти и скоростью обработки.
    • Более высокие значения уменьшают количество операций записи, но потребляют больше памяти во время обработки.
    • Более низкие значения потребляют меньше временной памяти, но могут незначительно повлиять на скорость обработки.
  • train_new_fingerprint (str, необязательно, по умолчанию — Нет)
    • Этот параметр представляет собой новый отпечаток набора поездов после применения преобразования.
    • Если он указан, он предоставляет новый отпечаток для набора поездов.
    • Если для него установлено значение «Нет», новый отпечаток вычисляется с использованием хэша предыдущего отпечатка и аргументов преобразования.
  • test_new_fingerprint (str, необязательно, по умолчанию — Нет)
    • Этот параметр представляет новый отпечаток тестового набора после применения преобразования.
    • Если он указан, он предоставляет новый отпечаток пальца для тестового набора.
    • Если для него установлено значение «Нет», новый отпечаток вычисляется с использованием хэша предыдущего отпечатка и аргументов преобразования.

    Синтаксис:

    из sklearn.model_selection импорт train_test_split

    X_train, X_test, y_train, y_test = train_test_split(X, y, test_size=0,2, случайное_состояние=42)

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



    • и : представляет собой выходную или зависимую переменную, которую вы пытаетесь предсказать.
    • test_size : этот параметр определяет долю набора данных, которая будет выделена для тестирования. Его можно указать как число с плавающей запятой (например, 0,2 для 20%) или целое число (например, 200 для 200 выборок).
    • случайное_состояние : это необязательный параметр, который позволяет вам установить начальное значение для генератора случайных чисел. Это гарантирует воспроизводимость разделения, а это означает, что вы получите такое же разделение, если будете использовать одно и то же случайное значение состояния.

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





    • X_train : обучающий набор входных функций.
    • X_test : Тестовый набор входных функций.
    • y_train : обучающий набор выходных меток.
    • y_test : Тестовый набор выходных меток.

    Пример : Следующий пример программы сохранен как « test.py ».

    из sklearn.model_selection импорт train_test_split

    из наборов данных импортируйте load_dataset

    # Шаг 1: Загрузите набор данных

    набор данных = load_dataset('imdb')

    X = набор данных['поезд']['текст']

    y = набор данных['поезд']['метка']

    # Шаг 2: Разделите набор данных

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

    перемешивание = Правда, случайное_состояние = 42)

    # Шаг 3: Изучите набор данных

    print('Количество примеров в исходном наборе данных:', len(X))

    print('Количество примеров в наборе данных поезда:', len(X_train))

    print('Количество примеров в тестовом наборе данных:', len(X_test))

    # Шаг 4. Получите доступ к данным примера и распечатайте их.

    print('\nПример из набора данных поезда:')

    print(X_train[0], y_train[0])

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

    печать (X_test[0], y_test[0])

    Этот оператор импорта взят из scikit-learn, а не из библиотеки наборов данных Hugging Face. Убедитесь, что в вашей среде установлен scikit-learn. Вы можете установить его с помощью следующей команды:



    pip install 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% данных. Для параметра shuffle установлено значение «True», чтобы случайно перетасовать данные перед разделением, а для параметра 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».

    Заключение

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

    Используя функцию train_test_split, вы можете контролировать размер тестового набора, перетасовывать ли данные и устанавливать случайное начальное число для воспроизводимости. Такая гибкость позволяет эффективно оценивать модели машинного обучения на невидимых данных и помогает обнаруживать такие проблемы, как переоснащение или недостаточное оснащение.

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

    Функциональность, которую предлагает Hugging Face, упрощает подготовку данных для обучения и оценки модели. Имея отдельные подмножества обучения и тестирования, вы можете точно оценить производительность вашей модели на невидимых данных, обнаружить потенциальные проблемы, такие как переобучение, и принять обоснованные решения для улучшения модели.

    В целом, функция разделения train-test в библиотеке наборов данных Hugging Face в сочетании с train_test_split от scikit-learn предоставляет мощный набор инструментов для эффективного разделения данных, оценки моделей и разработки надежных решений машинного обучения.