Testing set là gì?
- ★
- ★
- ★
- ★
- ★
Trong học máy (machine learning), tập dữ liệu thử nghiệm (testing set) được sử dụng để đánh giá (evaluate) thuật toán (algorithm) của bạn đã được huấn luyện (train) tốt như thế nào với tập dữ liệu huấn luyện (training set). Trong các dự án AI, chúng ta không thể sử dụng tập dữ liệu huấn luyện (training data) trong giai đoạn thử nghiệm vì thuật toán sẽ biết trước kết quả mong đợi không phải là mục tiêu của chúng ta.
Tập dữ liệu này độc lập với tập dữ liệu huấn luyện (training set) nhưng có phân phối xác suất (probability distribution) của các lớp (class) hơi giống nhau và được sử dụng làm chuẩn để đánh giá mô hình (model), chỉ được sử dụng sau khi quá trình huấn luyện (training) mô hình hoàn tất. Tập dữ liệu thử nghiệm (testing set) là một tập dữ liệu được tổ chức hợp lý có tất cả các loại dữ liệu cho các tình huống mà mô hình có thể phải đối mặt khi được sử dụng trong thế giới thực. Nếu độ chính xác (accuracy) của mô hình trên dữ liệu huấn luyện lớn hơn độ chính xác trên dữ liệu thử nghiệm thì mô hình được cho là overfitting. Tập dữ liệu thử nghiệm (testing set) chiếm khoảng 20-25% tổng số dữ liệu.
# Importing numpy & scikit-learn
import numpy as np
from sklearn.model_selection import train_test_split
# Making a dummy array to represent x,y for example
# Making a array for x ranging from 0-15 then
# reshaping it to form a matrix of shape 8x2
x = np.arange(16).reshape((8, 2))
# y is just a list of 0-7 number representing
# target variable
y = range(8)
# Splitting dataset in 80-20 fashion .i.e.
# Training set is 80% of total data
# Testing set is 20% of total data
x_train, x_test, y_train, y_test = train_test_split(x, y,
test_size=0.2,
random_state=42)
# Testing set
print("Testing set x: ", x_test)
print("Testing set y: ", y_test)
Output:
Testing set x: [[ 2 3] [10 11]] Testing set y: [1, 5]
Giải thích:
Để hiển thị cách hoạt động của hàm (function) train_test_split, trước tiên, chúng ta tạo một ma trận giả (dummy matrix) có kích thước 8 × 2 bằng cách sử dụng thư viện (library) NumPy để đại diện cho đầu vào x. Và danh sách từ 0 đến 7 đại diện cho biến mục tiêu (target variable) của chúng ta là y.
Bây giờ để tách (split) tập dữ liệu (dataset) của chúng ta thành tập dữ liệu huấn luyện và và tập dữ liệu thử nghiệm (testing set), dữ liệu đầu vào x với biến mục tiêu y được chuyển dưới dạng tham số (parameter) cho hàm, sau đó chia tập dữ liệu thành 2 phần trên kích thước được cho trong test_size, tức là nếu test_size = 0.2 được cung cấp thì tập dữ liệu sẽ được chia theo cách sao cho tập dữ liệu thử nghiệm (testing set) sẽ là 20% của tập dữ liệu nhất định và tập dữ liệu huấn luyện sẽ là 80% của tập dữ liệu nhất định.
Và khi chúng ta chỉ định random_state là một số dương, hàm train_test_split sẽ tách dữ liệu một cách ngẫu nhiên.
Learning English Everyday