train_test_split
- sklearn.model_selection.train_test_split(*arrays, test_size=None, train_size=None, random_state=None, shuffle=True, stratify=None)[исходный код]
-
Разделяет массивы или матрицы на случайные обучающую и тестовую подвыборки.
Удобная функция, которая объединяет проверку входных данных,
next(ShuffleSplit().split(X, y))и применение к входным данным в один вызов, позволяя разделить (и при необходимости уменьшить выборку) данные одной строкой кода.Подробнее см. в руководстве пользователя.
- Параметры:
-
- *arraysпоследовательность индексируемых объектов одинаковой длины / shape[0]
-
Допустимые типы входных данных: списки, массивы numpy, разреженные матрицы scipy или таблицы данных pandas.
- test_sizeвещественное число или целое число, по умолчанию=None
-
Если задано вещественное число, оно должно находиться в диапазоне от 0.0 до 1.0 и задавать долю набора данных, включаемую в тестовую выборку. Если задано целое число, оно задаёт абсолютное количество тестовых образцов. Если значение равно None, оно устанавливается равным дополнению до размера обучающей выборки. Если
train_sizeтакже равно None, будет установлено значение 0.25. - train_sizeвещественное число или целое число, по умолчанию=None
-
Если задано вещественное число, оно должно находиться в диапазоне от 0.0 до 1.0 и задавать долю набора данных, включаемую в обучающую выборку. Если задано целое число, оно задаёт абсолютное количество обучающих образцов. Если значение равно None, оно автоматически устанавливается равным дополнению до размера тестовой выборки.
- random_stateцелое число, экземпляр RandomState или None, по умолчанию=None
-
Управляет перемешиванием данных перед их разделением. Передайте целое число, чтобы получать воспроизводимый результат при нескольких вызовах функции. См. глоссарий.
- shufflebool, по умолчанию=True
-
Определяет, следует ли перемешивать данные перед разделением. Если shuffle=False, то stratify должно быть равно None.
- stratifyобъект, подобный массиву, по умолчанию=None
-
Если значение не равно None, данные разделяются стратифицированным способом, а этот параметр используется в качестве меток классов. Подробнее см. в руководстве пользователя.
- Возвращает:
-
- splittingсписок, длина=2 * len(arrays)
-
Список, содержащий разделённые на обучающую и тестовую выборки входные данные.
Добавлено в версии 0.16: Если входные данные разреженные, результатом будет
scipy.sparse.csr_matrix. В противном случае тип результата совпадает с типом входных данных.
Примеры
>>> import numpy as np >>> from sklearn.model_selection import train_test_split >>> X, y = np.arange(10).reshape((5, 2)), range(5) >>> X array([[0, 1], [2, 3], [4, 5], [6, 7], [8, 9]]) >>> list(y) [0, 1, 2, 3, 4]>>> X_train, X_test, y_train, y_test = train_test_split( ... X, y, test_size=0.33, random_state=42) ... >>> X_train array([[4, 5], [0, 1], [6, 7]]) >>> y_train [2, 0, 3] >>> X_test array([[2, 3], [8, 9]]) >>> y_test [1, 4]>>> train_test_split(y, shuffle=False) [[0, 1, 2], [3, 4]]
>>> from sklearn import datasets >>> iris = datasets.load_iris(as_frame=True) >>> X, y = iris['data'], iris['target'] >>> X.head() sepal length (cm) sepal width (cm) petal length (cm) petal width (cm) 0 5.1 3.5 1.4 0.2 1 4.9 3.0 1.4 0.2 2 4.7 3.2 1.3 0.2 3 4.6 3.1 1.5 0.2 4 5.0 3.6 1.4 0.2 >>> y.head() 0 0 1 0 2 0 3 0 4 0 ...>>> X_train, X_test, y_train, y_test = train_test_split( ... X, y, test_size=0.33, random_state=42) ... >>> X_train.head() sepal length (cm) sepal width (cm) petal length (cm) petal width (cm) 96 5.7 2.9 4.2 1.3 105 7.6 3.0 6.6 2.1 66 5.6 3.0 4.5 1.5 0 5.1 3.5 1.4 0.2 122 7.7 2.8 6.7 2.0 >>> y_train.head() 96 1 105 2 66 1 0 0 122 2 ... >>> X_test.head() sepal length (cm) sepal width (cm) petal length (cm) petal width (cm) 73 6.1 2.8 4.7 1.2 18 5.7 3.8 1.7 0.3 118 7.7 2.6 6.9 2.3 78 6.0 2.9 4.5 1.5 76 6.8 2.8 4.8 1.4 >>> y_test.head() 73 1 18 0 118 2 78 1 76 1 ...
Примеры из галереи
© 2007–2026 The scikit-learn developers
Licensed under the 3-clause BSD License.
https://scikit-learn.org/1.9/modules/generated/sklearn.model_selection.train_test_split.html