Hướng dẫn split data into train and test in python pandas - chia dữ liệu thành huấn luyện và thử nghiệm trong trăn gấu trúc

Có nhiều cách để tạo ra một chuyến tàu/thử nghiệm và thậm chí các mẫu xác nhận.

Trường hợp 1: Cổ điển cách train_test_split mà không có bất kỳ tùy chọn nào:

from sklearn.model_selection import train_test_split
train, test = train_test_split(df, test_size=0.3)

Trường hợp 2: Trường hợp của một bộ dữ liệu rất nhỏ (

from sklearn.model_selection import KFold
kf = KFold(n_splits=10, random_state=0)
y_hat_all = []
for train_index, test_index in kf.split(X, y):
    reg = RandomForestRegressor(n_estimators=50, random_state=0)
    X_train, X_test = X[train_index], X[test_index]
    y_train, y_test = y[train_index], y[test_index]
    clf = reg.fit(X_train, y_train)
    y_hat = clf.predict(X_test)
    y_hat_all.append(y_hat)

Trường hợp 3a: Bộ dữ liệu không cân bằng cho mục đích phân loại. Theo trường hợp 1, đây là giải pháp tương đương:

from sklearn.model_selection import train_test_split
X_train, X_test, y_train, y_test = train_test_split(X, y, stratify=y, test_size=0.3)

Trường hợp 3B: Bộ dữ liệu không cân bằng cho mục đích phân loại. Theo trường hợp 2, đây là giải pháp tương đương:

from sklearn.model_selection import StratifiedKFold
kf = StratifiedKFold(n_splits=10, random_state=0)
y_hat_all = []
for train_index, test_index in kf.split(X, y):
    reg = RandomForestRegressor(n_estimators=50, random_state=0)
    X_train, X_test = X[train_index], X[test_index]
    y_train, y_test = y[train_index], y[test_index]
    clf = reg.fit(X_train, y_train)
    y_hat = clf.predict(X_test)
    y_hat_all.append(y_hat)

Trường hợp 4: Bạn cần tạo một bộ tàu/kiểm tra/xác nhận trên dữ liệu lớn để điều chỉnh siêu âm (tàu 60%, kiểm tra 20% và 20% VAL).

from sklearn.model_selection import train_test_split
X_train, X_test_val, y_train, y_test_val = train_test_split(X, y, test_size=0.6)
X_test, X_val, y_test, y_val = train_test_split(X_test_val, y_test_val, stratify=y, test_size=0.5)

Hướng dẫn ngắn để sử dụng Sklearn Train_Test_Split trên một khung dữ liệu gấu trúc

Minh họa của tác giả

Trong bài viết ngắn này, tôi mô tả cách chia bộ dữ liệu của bạn thành dữ liệu đào tạo và kiểm tra cho việc học máy, bằng cách áp dụng chức năng Sklearn tựa Train_test_split. Tôi sử dụng khung dữ liệu được tạo với chương trình từ bài viết cuối cùng của tôi. Dữ liệu dựa trên bộ dữ liệu bài viết của BBC News được xuất bản bởi D. Greene và P. Cickyham [1].

Hãy kiểm tra mã nguồn ở đây nếu bạn quan tâm.

Nếu bạn bỏ lỡ hướng dẫn đầu tiên của tôi để trích xuất thông tin từ các tệp văn bản, bạn có thể muốn kiểm tra nó để hiểu rõ hơn về dữ liệu chúng tôi đang xử lý.

Hiểu dữ liệu

Vì tôi muốn giữ hướng dẫn này khá ngắn, tôi sẽ không mô tả bước này chi tiết như trong bài viết cuối cùng của tôi. Thông tin quan trọng nhất cần đề cập trong phần này là cách cấu trúc dữ liệu và cách truy cập nó.

Như có thể thấy trong ảnh chụp màn hình bên dưới, dữ liệu được đặt trong thư mục đã tạo_DATA. Chúng tôi cũng muốn lưu dữ liệu tàu và kiểm tra vào thư mục này, một khi các tệp này đã được tạo. Ngoài ra, tập lệnh chạy trong tệp prepare_ml_data.py được đặt trong thư mục prepare_ml_data.

Ảnh chụp màn hình của hệ thống tập tin

Như được trình bày trong bài viết cuối cùng của tôi về việc chuyển đổi tệp văn bản thành các bảng dữ liệu, tệp bbc_articles.tsv chứa năm cột. Tuy nhiên, đối với hướng dẫn này, chúng tôi chỉ quan tâm đến các cột văn bản và thể loại.

Các cột của bộ dữ liệu

Tải dữ liệu

Trong bước đầu tiên, chúng tôi muốn tải dữ liệu vào môi trường mã hóa của chúng tôi. Đối với điều này, chúng tôi cần đường dẫn đến thư mục, nơi dữ liệu được lưu trữ. Chúng tôi lưu đường dẫn đến một biến cục bộ để truy cập nó để tải dữ liệu và sử dụng nó làm đường dẫn để lưu bộ tàu và bộ thử nghiệm cuối cùng. Vì dữ liệu được lưu trữ trong một thư mục khác với tệp nơi chúng tôi đang chạy tập lệnh, chúng tôi cần quay lại một cấp trong hệ thống tập tin và truy cập thư mục được nhắm mục tiêu trong bước thứ hai. Chúng tôi đạt được điều này bằng cách tham gia ‘.. và thư mục dữ liệu dẫn đến‘ ../generated_data/.

Với đường dẫn đến thư mục đã tạo_DATA, chúng tôi tạo một biến khác hướng đến chính tệp dữ liệu, được gọi là bbc_articles.tsv. Vì đây là tệp giá trị được phân tách bằng tab (TSV), chúng tôi cần thêm dấu phân cách ‘\ t, để tải dữ liệu dưới dạng dữ liệu gấu trúc.

Chọn dữ liệu để phân tách (tùy chọn)

Lệnh sau đây là không cần thiết để chia dữ liệu thành tập hợp và tập kiểm tra. Tuy nhiên, vì tôi không cần tất cả các cột có sẵn của bộ dữ liệu, tôi chọn các cột mong muốn và tạo một khung dữ liệu mới chỉ với các cột ‘văn bản và‘ thể loại.

Tách và tiết kiệm

Bây giờ, chúng tôi đã có dữ liệu sẵn sàng để phân chia nó. May mắn thay, chức năng Train_Test_Split của thư viện Sklearn có thể xử lý các khung dữ liệu gấu trúc cũng như các mảng. Do đó, chúng ta chỉ có thể gọi chức năng tương ứng bằng cách cung cấp bộ dữ liệu và các tham số khác, chẳng hạn như sau:

  • TEST_SIZE: Tham số này biểu thị tỷ lệ của bộ dữ liệu nên được đưa vào phân chia thử nghiệm. Giá trị mặc định cho tham số này được đặt thành 0,25, có nghĩa là nếu chúng tôi không chỉ định test_size, phân chia kết quả bao gồm 75% tàu hỏa và dữ liệu thử nghiệm 25%.:
    This parameter represents the proportion of the dataset that should be included in the test split. The default value for this parameter is set to 0.25, meaning that if we don’t specify the test_size, the resulting split consists of 75% train and 25% test data.
  • Random_State: Tham số này kiểm soát sự xáo trộn được áp dụng cho dữ liệu trước khi chia. Bằng cách xác định trạng thái ngẫu nhiên, chúng ta có thể tái tạo cùng một sự phân chia dữ liệu qua nhiều cuộc gọi chức năng.:
    This parameter controls the shuffling applied to the data before the split. By defining the random state we can reproduce the same split of the data across multiple function calls.
  • Shuffle: Tham số này cho biết liệu dữ liệu có nên được xáo trộn trước khi chia tách hay không. Vì bộ dữ liệu của chúng tôi được đặt hàng bởi thể loại, chúng tôi chắc chắn muốn xáo trộn nó. Nếu không, tàu và bộ thử nghiệm sẽ không chứa các thể loại tương tự.:
    This parameter indicates whether the data should be shuffled before splitting. Since our dataset is ordered by genre, we definitely want to shuffle it. Otherwise the train and test set would not contain the same genres.

Sau khi chia dữ liệu, chúng tôi sử dụng biến đường dẫn thư mục để xác định đường dẫn tệp để lưu tàu và dữ liệu thử nghiệm. Bằng cách chuyển đổi các khung dữ liệu thành CSV trong khi sử dụng ‘\ t, làm dấu phân cách, chúng tôi tạo các tệp kiểm tra và tàu được phân tách theo tab.

Sự kết luận

Trong bài viết ngắn này, tôi đã mô tả cách tải dữ liệu để chia nó thành bộ tàu và bộ thử nghiệm. Các tệp dữ liệu tương ứng hiện có thể được sử dụng để đào tạo và đánh giá các phân loại văn bản (tùy thuộc vào mô hình mặc dù, có thể cần phải làm sạch dữ liệu bổ sung).

Trong các bài viết trong tương lai, tôi sẽ mô tả cách thiết lập các mô hình học tập sâu khác nhau (như LSTM và BERT) để đào tạo các phân loại văn bản, dự đoán một bài báo thể loại dựa trên văn bản của nó. Dưới đây tìm một liên kết đến bài viết của tôi, nơi tôi đã sử dụng khung trang trại để tinh chỉnh Bert để phân loại văn bản.

Cảm ơn bạn rất nhiều vì đã đọc và mã hóa hạnh phúc!

Người giới thiệu

[1] D. Greene và P. Cickyham. Các giải pháp thực tế cho vấn đề thống trị đường chéo trong phân cụm tài liệu kernel, Proc. ICML 2006.

Làm thế nào để bạn chia dữ liệu trong tàu hỏa và kiểm tra trong gấu trúc?

Làm thế nào để phân chia các bộ dữ liệu đào tạo và kiểm tra trong Python ?..
Nhập toàn bộ bộ dữ liệu. Chúng tôi đang sử dụng bộ dữ liệu nhà ở California cho toàn bộ hướng dẫn. Hãy bắt đầu với việc nhập dữ liệu vào khung dữ liệu bằng gấu trúc. ....
Chia dữ liệu bằng Sklearn. Để phân chia dữ liệu, chúng tôi sẽ sử dụng Train_Test_Split từ Sklearn ..

Làm thế nào để bạn chia một bộ dữ liệu thành một chuyến tàu và kiểm tra bằng Python?

Sử dụng bài kiểm tra tàu phân chia trong Python..
Tải tập dữ liệu ..
Sắp xếp dữ liệu vào các tính năng và mục tiêu ..
Chia dữ liệu thành các bộ đào tạo và thử nghiệm ..
Nhập mô hình bạn muốn sử dụng ..
Tạo một thể hiện của mô hình ..
Huấn luyện mô hình trên dữ liệu ..
Dự đoán nhãn của dữ liệu thử nghiệm chưa từng thấy ..
Tham số so với siêu âm ..

Làm thế nào để bạn chia dữ liệu để đào tạo và kiểm tra?

Cách đơn giản nhất để chia bộ dữ liệu mô hình hóa thành các bộ đào tạo và thử nghiệm là gán 2/3 điểm dữ liệu cho cái trước và một phần ba còn lại cho cái sau.Do đó, chúng tôi đào tạo mô hình bằng cách sử dụng tập huấn luyện và sau đó áp dụng mô hình vào tập kiểm tra.Theo cách này, chúng tôi có thể đánh giá hiệu suất của mô hình của chúng tôi.

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

Phân chia thử nghiệm tàu đượ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.