У цій статті давайте дізнаємося, як виконати тестовий спліт за допомогою Sklearn у Python.
Навчіть тестовий спліт за допомогою Sklearn
Метод train_test_split() використовується для поділу наших даних на навчальні та тестові набори.
По-перше, нам потрібно розділити наші дані на функції (X) і мітки (y). Фрейм даних ділиться на X_train, X_test, y_train і y_test. Набори X_train та y_train використовуються для навчання та підгонки моделі. Набори X_test і y_test використовуються для перевірки моделі, якщо вона передбачає правильні результати/мітки. ми можемо явно перевірити розмір поїзда та тестових наборів. Пропонується, щоб наші набори поїздів були більшими, ніж набори для тестування.
Набір поїздів: Навчальний набір даних — це набір даних, який використовувався для відповідності моделі. Набір даних, на якому навчається модель. Ці дані бачить і вивчає модель.
Тестовий набір: Тестовий набір даних — це підмножина навчального набору даних, яка використовується для точної оцінки остаточної відповідності моделі.
набір перевірки: Набір даних перевірки — це зразок даних із навчального набору моделі, який використовується для оцінки продуктивності моделі під час налаштування гіперпараметрів моделі.
генерувати випадкове число в java
за замовчуванням 25% наших даних є тестовим набором, а 75% даних йде на навчальні тести.
Синтаксис: sklearn.model_selection.train_test_split()
параметри:
*масиви: послідовність індексованих. Списки, масиви numpy, scipy-sparse матриці та фрейми даних pandas — усе це допустимі вхідні дані. test_size: int або float, за замовчуванням немає. Якщо float, воно має бути між 0,0 і 1,0 і представляти відсоток набору даних для тестового розділення. Якщо використовується int, це стосується загальної кількості тестових зразків. Якщо значенням є None, використовується доповнення до розміру поїзда. Буде встановлено значення 0,25, якщо розмір поїзда також не має значення. train_size: int або float, за замовчуванням немає. random_state : int, за замовчуванням Немає. Керує тим, як дані перемішуються перед реалізацією поділу. Для повторюваного виведення через кілька викликів функцій передайте int.
shuffle: логічний об'єкт, за замовчуванням True. Чи потрібно перетасувати дані перед розділенням. Stratify має бути None, якщо shuffle=False. stratify: array-like object , за замовчуванням це None. Якщо вибрано «Немає», дані стратифікуються, використовуючи їх як мітки класу.повертає: розщеплення: список
приклад 1:
Пакунки numpy, pandas і scikit-learn імпортовано. Файл CSV буде імпортовано. X містить функції, а y — мітки. ми розбиваємо фрейм даних на X і y і виконуємо на них тестове поділ. random_state діє як початкове число numpy, воно використовується для відтворюваності даних. test_size задано як 0,25, це означає, що 25% наших даних йде на наш тестовий розмір. 1-test_size — це розмір нашого потягу, нам не потрібно його вказувати. shuffle =Правда, перемішує наші дані перед розливом. Набори X_train і X_test використовуються для адаптації та навчання нашої моделі, а тестові набори використовуються для тестування та перевірки.
Щоб отримати доступ до файлу CSV, натисніть тут.
Python3
іскра підручник
# import packages> import> numpy as np> import> pandas as pd> from> sklearn.model_selection>import> train_test_split> > # importing data> df>=> pd.read_csv(>'headbrain1.csv'>)> > # head of the data> print>(df.head())> > X>=> df[>'Head Size(cm^3)'>]> y>=>df[>'Brain Weight(grams)'>]> > # using the train test split function> X_train, X_test,> y_train, y_test>=> train_test_split(X,y ,> >random_state>=>104>,> >test_size>=>0.25>,> >shuffle>=>True>)> > # printing out train and test sets> > print>(>'X_train : '>)> print>(X_train.head())> print>('')> print>(>'X_test : '>)> print>(X_test.head())> print>('')> print>(>'y_train : '>)> print>(y_train.head())> print>('')> print>(>'y_test : '>)> print>(y_test.head())> |
>
>
Вихід:
Head Size(cm^3) Brain Weight(grams) 0 4512 1530 1 3738 1297 2 4261 1335 3 3777 1282 4 4177 1590 X_train : 99 3478 52 4270 184 3479 139 3171 107 3399 Name: Head Size(cm^3), dtype: int64 (177,) X_test : 66 3415 113 3594 135 3436 227 4204 68 4430 Name: Head Size(cm^3), dtype: int64 (60,) y_train : 99 1270 52 1335 184 1160 139 1127 107 1226 Name: Brain Weight(grams), dtype: int64 (177,) y_test : 66 1310 113 1290 135 1235 227 1380 68 1510 Name: Brain Weight(grams), dtype: int64 (60,)>
приклад 2:
У цьому прикладі виконуються ті самі кроки, замість того, щоб вказувати test_size, ми вказуємо train_size. test_size є 1-train_size. 80% даних є набором потягів, тому 20% наших даних є нашим тестовим набором. Якщо ми не вказуємо розміри наборів тестів і тренувань, за умовчанням test_size буде 0,25. X_train і y_train мають однакову форму та індекси, оскільки y_train є міткою для функцій X_train. те саме стосується X_test і y_test.
помилка: не вдалося знайти або завантажити основний клас
Python3
# import packages> import> numpy as np> import> pandas as pd> from> sklearn.model_selection>import> train_test_split> > # importing data> df>=> pd.read_csv(>'headbrain1.csv'>)> print>(df.shape)> > # head of the data> print>(df.head())> > X>=> df[>'Head Size(cm^3)'>]> y>=>df[>'Brain Weight(grams)'>]> > # using the train test split function> X_train, X_test, y_train,> y_test>=> train_test_split(X,y ,> >random_state>=>104>,> >train_size>=>0.8>, shuffle>=>True>)> > # printing out train and test sets> print>(>'X_train : '>)> print>(X_train.head())> print>(X_train.shape)> print>('')> print>(>'X_test : '>)> print>(X_test.head())> print>(X_test.shape)> print>('')> print>(>'y_train : '>)> print>(y_train.head())> print>(y_train.shape)> print>('')> print>(>'y_test : '>)> print>(y_test.head())> print>(y_test.shape)> |
>
>
Вихід:
(237, 2) Head Size(cm^3) Brain Weight(grams) 0 4512 1530 1 3738 1297 2 4261 1335 3 3777 1282 4 4177 1590 X_train : 110 3695 164 3497 58 3935 199 3297 182 4005 Name: Head Size(cm^3), dtype: int64 (189,) X_test : 66 3415 113 3594 135 3436 227 4204 68 4430 Name: Head Size(cm^3), dtype: int64 (48,) y_train : 110 1310 164 1280 58 1330 199 1220 182 1280 Name: Brain Weight(grams), dtype: int64 (189,) y_test : 66 1310 113 1290 135 1235 227 1380 68 1510 Name: Brain Weight(grams), dtype: int64 (48,)>