Как разделить данные на обучение и тестирование в Python без sklearn

Опубликовано: 21 Февраля, 2023

Здесь мы узнаем, как разделить набор данных на наборы для обучения и тестирования в Python без использования sklearn. Основной концепцией, которая будет использоваться здесь, будет нарезка. Мы можем использовать функции нарезки, чтобы разбить данные на отдельные части (обучение и тестирование). Если бы мы использовали sklearn, эта задача была бы очень простой, но она может быть немного утомительной, если бы нам не разрешили использовать sklearn.

Шаги для разделения данных на обучение и тестирование:

  1. Создайте набор данных или создайте фрейм данных с помощью Pandas.
  2. Перетасуйте фрейм данных, используя примерную функцию Pandas.
  3. Выберите соотношение, чтобы разделить фрейм данных на тестовые и обучающие наборы.
  4. Разделите фреймы данных на обучающие и тестовые фреймы данных с помощью срезов.
  5. Рассчитайте общее количество строк во фрейме данных, используя функцию формы Pandas.

Давайте реализуем эти части на примере.

Python3




import pandas as pd
  
# Creating sample dataset
df = pd.DataFrame({
    "Roll Number": [1, 2, 3, 4, 5, 6, 7, 8, 9, 10],
    "Name": [" ANUJ", "APOORV", "CHAITANYA", "HARSH",
             " SNEHA", " SHREYA", "VAIBHAV", "YASH", "AKSHAY", "ANCHIT"],
    "Age": [16, 17, 19, 21, 20, 18, 22, 20, 18, 20],
    "Section": ["A", "J", "H", "F", "C", "E", "K", "M", "I", "J"]
})
df

Выход:

Одна из проблем при вводе данных заключается в том, что мы хотели бы выбирать строки случайным образом для обучения, а также для данных обучения. Эта функциональность может быть реализована с помощью функции sample(). метод, как показано ниже.

Python3




# Shuffle dataframe using sample function
df = df.sample(frac=1)
df

Выход:

Python3




# Select ratio
ratio = 0.75
  
total_rows = df.shape[0]
train_size = int(total_rows*ratio)
  
# Split data into test and train
train = df[0:train_size]
test = df[train_size:]

Распечатаем обучающую и тестовую часть данных.

Python3




# print train set
print("Train dataframe")
print(train)
  
# print test set
print("Test dataframe")
print(test)

Выход:

Python3




train.shape, test.shape

Выход:

((7, 4), (3, 4))