Hướng dẫn split data into train, validation and test python - chia dữ liệu thành huấn luyện, xác thực và thử nghiệm python

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('https://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. 

Làm thế nào để bạn chia dữ liệu thành thử nghiệm và xác nhận đào tạo trong Python?

Chia dữ liệu Chúng tôi có thể sử dụng Train_Test_Split để đầu tiên tạo 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.use the train_test_split to first make the split on the original dataset. Then, to get the validation set, we can apply the same function to the train set to get the validation set. In the function below, the test set size is the ratio of the original data we want to use as the test set.

Làm thế nào để bạn chia dữ liệu để đào tạo và xác nhận?

Nói chung, việc đặt 80% dữ liệu vào tập huấn luyện, 10% trong tập xác thực và 10% trong bộ thử nghiệm là một sự phân chia tốt để bắt đầu.Sự phân chia tối ưu của thử nghiệm, xác nhận và tập hợp đào tạo phụ thuộc vào các yếu tố như trường hợp sử dụng, cấu trúc của mô hình, kích thước của dữ liệu, v.v.putting 80% of the data in the training set, 10% in the validation set, and 10% in the test set is a good split to start with. The optimum split of the test, validation, and train set depends upon factors such as the use case, the structure of the model, dimension of the data, etc.

Phân chia thử nghiệm tàu trong Python là gì?

Phân chia thử nghiệm đào tạo được sử dụng để ước tính hiệu suất của các thuật toán học máy được áp dụng cho các thuật toán/ứng dụng dựa trên dự đoán.Phương pháp này là một quy trình nhanh chóng và dễ dàng để thực hiện sao cho chúng ta có thể so sánh kết quả mô hình học máy của riêng mình với kết quả máy.used to estimate the performance of machine learning algorithms that are applicable for prediction-based Algorithms/Applications. This method is a fast and easy procedure to perform such that we can compare our own machine learning model results to machine results.

Làm thế nào để bạn chia dữ liệu thành đào tạo và thử nghiệm trong Python mà không cần Sklearn?

Cách chia dữ liệu thành đào tạo và thử nghiệm trong Python mà không có .....
Nhập các gói ..
Tải dữ liệu ..
Xáo trộn bộ dữ liệu ..
Chia bộ dữ liệu ..