Chia dữ liệu thành các bộ đào tạo, kiểm tra và xác thực là một nhiệm vụ lặp đi lặp lại. Bạn sẽ cần thực hiện chia tách mỗi khi bạn chạy các mô hình học máy của bạn. Trong bài viết này, tôi sẽ cung cấp cho bạn đoạn mã nhanh về cách phân tách và cung cấp cho bạn cái nhìn sâu sắc về lý do tại sao chúng tôi chia dữ liệu thành các bộ đào tạo, kiểm tra và xác thực.
Làm thế nào để phân chia một bộ dữ liệu để đào tạo, kiểm tra và xác thực với SK learn?
Phương pháp đầu tiên là phương pháp phổ biến nhất. Nó sử dụng chức năng Train_Test_Split từ gói SK Learn.
Nhập thư viện
Đối với sự phân chia này, chúng tôi sẽ sử dụng gấu trúc và sklearn
import pandas as pd
from sklearn.datasets import load_iris
from sklearn.model_selection import train_test_split
Tải một tập dữ liệu mẫu
Chúng tôi sẽ sử dụng bộ dữ liệu IRIS.
# load the iris dataset and get X and Y data
iris = load_iris[]
train = pd.DataFrame[iris.data]
test = pd.DataFrame[iris.target]
Chia dữ liệu
Chúng ta có thể sử dụng Train_Test_Split để đầu tiên tạo ra sự phân chia trên bộ dữ liệu gốc. Sau đó, để có được bộ xác thực, chúng ta có thể áp dụng chức năng tương tự cho bộ tàu để có được bộ xác thực.
Trong hàm bên dưới, kích thước tập kiểm tra là tỷ lệ của dữ liệu gốc chúng tôi muốn sử dụng làm bộ thử nghiệm. Hàm Shuffle thay đổi ngẫu nhiên thứ tự của các hàng khác nhau. Cuối cùng, Random_State khởi tạo hạt giống cho hàm ngẫu nhiên được sử dụng để phân chia bộ dữ liệu. Đặt trạng thái ngẫu nhiên cho phép thử nghiệm dễ dàng sao chép và đảm bảo kết quả trong cùng một tham số.
# set aside 20% of train and test data for evaluation
X_train, X_test, y_train, y_test = train_test_split[train, test,
test_size=0.2, shuffle = True, random_state = 8]
# Use the same function above for the validation set
X_train, X_val, y_train, y_val = train_test_split[X_train, y_train,
test_size=0.25, random_state= 8] # 0.25 x 0.8 = 0.2
print["X_train shape: {}".format[X_train.shape]]
print["X_test shape: {}".format[X_test.shape]]
print["y_train shape: {}".format[y_train.shape]]
print["y_test shape: {}".format[y_test.shape]]
print["X_val shape: {}".format[y_train.shape]]
print["y val shape: {}".format[y_test.shape]]
X_train shape: [90, 4]
X_test shape: [30, 4]
X_val shape: [30, 4]
y_train shape: [90, 1]
y_test shape: [30, 1]
y val shape: [30, 1]
Làm thế nào để phân chia một bộ dữ liệu để đào tạo, kiểm tra và xác thực với Numpy?
Bạn không phải lúc nào cũng cần sử dụng sklearn để phân chia bộ dữ liệu của mình. Bạn cũng có thể sử dụng Numpy. Đây là cách nó làm việc. Hãy để chúng tôi nhập thư viện Numpy và sử dụng chức năng phân chia NP để tạo sự phân chia.
Nhập dữ liệu & phân chia
Tương tự, ở đây, một cách khác để nhập tập dữ liệu. & NBSP;
iris = pd.read_csv['//raw.githubusercontent.com/mwaskom/seaborn-data/'
'master/iris.csv']
# one line split
train, validation, test = np.split[iris.sample[frac=1], [int[.6*len[iris]],
int[.8*len[iris]]]]
Tách dữ liệu thành x_train, y_train, x_test, y_test và x_val, y_val
Nhập khẩu trước đó đã có tàu và thử nghiệm tách biệt. Tuy nhiên, trong phần này, chúng tôi sẽ tự mình phân tách dữ liệu. Tất cả những gì bạn phải làm tiếp theo là tách x_train, y_train của bạn, v.v. Đối với bộ dữ liệu này, biến mục tiêu là cột cuối cùng và các tính năng là 4. Hãy nhớ sử dụng đoạn mã bên dưới chỉ khi bộ dữ liệu của bạn có cùng cấu hình . Khác, bạn sẽ phải đặt tên cho tính năng đích cho y_ {} của bạn và thả tính năng đích từ X của bạn.
# Assign the train split
X_train = train[[train.columns[i] for i in range[train.shape[1]-1] ]]
y_train = train[train.columns[-1]]
# Assign the test split
X_test = test[[test.columns[i] for i in range[train.shape[1]-1] ]]
y_test = test[test.columns[-1]]
# Assign the validation split
X_val = validation[[validation.columns[i] for i in
range[validation.shape[1]-1] ]]
y_val = validation[validation.columns[-1]]
# Print the sets data shapes
print["X_train shape: {}".format[X_train.shape]]
print["X_test shape: {}".format[X_test.shape]]
print["y_train shape: {}".format[y_train.shape]]
print["y_test shape: {}".format[y_test.shape]]
print["X_val shape: {}".format[X_val.shape]]
print["y_val shape: {}".format[y_val.shape]]
X_train shape: [90, 4]
X_test shape: [30, 4]
X_val shape: [30, 4]
y_train shape: [90, 1]
y_test shape: [30, 1]
y val shape: [30, 1]
Nếu bạn thực hiện điều này trong bài viết, cảm ơn bạn rất nhiều.
Tôi hy vọng thông tin này được sử dụng cho bạn. & NBSP;
Hãy sử dụng bất kỳ thông tin nào từ trang này. Tôi đánh giá cao nó nếu bạn có thể chỉ cần liên kết với bài viết này dưới dạng nguồn. Nếu bạn có bất kỳ câu hỏi bổ sung nào, bạn có thể liên hệ với [email & nbsp; được bảo vệ] & nbsp; Hoặc nhắn tin cho tôi trên Twitter. Nếu bạn muốn có thêm nội dung như thế này, hãy tham gia danh sách email của tôi để nhận các bài viết mới nhất. Tôi hứa tôi không spam. & Nbsp; [email protected] or message me on Twitter. If you want more content like this, join my email list to receive the latest articles. I promise I do not spam.