В библиотеке 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:
- test_size (numpy.random.Generator, необязательно) : Размер тестового разделения определяется этой опцией. Тип может быть плавающим или целочисленным.
- Если оно задано как число с плавающей запятой, оно должно отражать процент набора данных, включаемый в тестовое разделение, и находиться в диапазоне от 0,0 до 1,0.
- Точное количество тестовых образцов представлено значением, если оно указано в виде целого числа.
- Если для него установлено значение «Нет», в качестве значения используется дополнение к размеру поезда.
- Если train_size также имеет значение None, ему будет установлено значение 0,25 (25% набора данных).
- Если оно задано как число с плавающей запятой, оно должно отражать процент набора данных, включаемый в разделение поезда, и находиться в диапазоне от 0,0 до 1,0.
- Точное количество выборок поезда представлено значением, если оно указано в виде целого числа.
- Если для него установлено значение «Нет», значение автоматически изменяется на дополнение к размеру теста.
- Этот параметр определяет, следует ли перемешивать данные перед разделением.
- Если для него установлено значение True, данные перед разделением будут случайным образом перемешиваться.
- Если для него установлено значение False, данные будут разделены без перемешивания.
- Этот параметр используется для послойного разделения данных на основе определенного столбца.
- Если оно указано, это должно быть имя столбца меток или классов.
- Данные будут разделены таким образом, чтобы поддерживать одинаковое распределение меток или классов в разделении поездов и тестов.
- Этот параметр позволяет вам установить начальное число для инициализации BitGenerator по умолчанию.
- Если для него установлено значение «Нет», из операционной системы будет извлечена новая, непредсказуемая энтропия.
- Если передаются целые числа или целые числа, подобные массиву, они будут использоваться для получения исходного состояния BitGenerator.
- Этот параметр позволяет указать генератор случайных чисел NumPy для вычисления перестановки строк набора данных.
- Если для него установлено значение None (по умолчанию), он использует np.random.default_rng, который является BitGenerator по умолчанию (PCG64) NumPy.
- Этот параметр определяет, следует ли сохранять разделенные индексы в памяти вместо записи их в файл кэша.
- Если для него установлено значение True, индексы разделения будут сохраняться в памяти во время процесса разделения.
- Если для него установлено значение False, индексы разделения будут записаны в файл кэша для дальнейшего использования.
- Этот параметр определяет, следует ли использовать файл кэша для загрузки индексов разделения вместо их повторного вычисления.
- Если для него установлено значение True и можно идентифицировать файл кэша, в котором хранятся индексы разделения, он будет использоваться.
- Если для него установлено значение False, индексы разделения будут пересчитываться, даже если файл кэша существует.
- Значение по умолчанию — True, если кэширование включено.
- Этот параметр позволяет указать конкретный путь или имя для файла кэша, в котором хранятся индексы разделения поездов.
- Если он указан, индексы разделения поездов будут храниться в этом файле кэша вместо автоматически сгенерированного имени файла кэша.
- Этот параметр позволяет указать конкретный путь или имя для файла кэша, в котором хранятся индексы разделения тестов.
- Если он указан, индексы тестового разделения будут храниться в этом файле кэша вместо автоматически сгенерированного имени файла кэша.
- Этот параметр определяет количество строк на операцию записи для средства записи файла кэша.
- Это компромисс между использованием памяти и скоростью обработки.
- Более высокие значения уменьшают количество операций записи, но потребляют больше памяти во время обработки.
- Более низкие значения потребляют меньше временной памяти, но могут незначительно повлиять на скорость обработки.
- Этот параметр представляет собой новый отпечаток набора поездов после применения преобразования.
- Если он указан, он предоставляет новый отпечаток для набора поездов.
- Если для него установлено значение «Нет», новый отпечаток вычисляется с использованием хэша предыдущего отпечатка и аргументов преобразования.
- Этот параметр представляет новый отпечаток тестового набора после применения преобразования.
- Если он указан, он предоставляет новый отпечаток пальца для тестового набора.
- Если для него установлено значение «Нет», новый отпечаток вычисляется с использованием хэша предыдущего отпечатка и аргументов преобразования.
Синтаксис:
из sklearn.model_selection импорт train_test_splitX_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 предоставляет мощный набор инструментов для эффективного разделения данных, оценки моделей и разработки надежных решений машинного обучения.