Cách phân chia chính xác tập dữ liệu không cân bằng kết hợp kiểm tra tàu và tập xác nhận chéo
Đồng ý - 7,36%
Không đồng ý - 1,68%
Thảo luận - 17,82%
Không liên quan - 73,13%
Tôi đang tách dữ liệu theo cách này:
(tách tập dữ liệu thành phân tách 67/33)
- đào tạo 67%, kiểm tra 33%
(chia nhỏ đào tạo thêm 80/20 để xác nhận)
- đào tạo 80%, xác nhận 20%
(Sau đó chia nhỏ đào tạo và xác nhận bằng cách sử dụng bộ xác nhận chéo 3 lần)
Ngoài ra, việc đạt được 1,68% không đồng ý và đồng ý là một việc cực kỳ khó khăn.
Đây là nơi tôi đang gặp vấn đề vì nó không có ý nghĩa gì đối với tôi. Bộ xác thực được tạo trong phần tách 80/20 có được phân tầng cũng như trong phần 5 không?
Đây là nơi tôi đang ở hiện tại:
Chia dữ liệu thành 67% Tập huấn luyện và 33% Tập kiểm tra
x_train1, x_test, y_train1, y_test = train_test_split(x, y, test_size=0.33)
x_train2, x_val, y_train2, y_val = train_test_split(x_train1, y_train1, test_size=0.20)
skf = StratifiedKFold(n_splits=3, shuffle = True)
skf.getn_splits(x_train2, y_train2)
for train_index, test_index in skf.split(x_train2, y_train2):
x_train_cros, x_test_cros = x_train2[train_index], x_train2[test_index]
y_train_cros, y_test_cros = y_train2[train_index], y_train[test_index]
Tôi cũng sẽ chạy lại skf cho bộ xác thực chứ? Các bộ kiểm tra thử nghiệm từ skf được tạo đang được sử dụng trong mô hình tuần tự ở đâu?
Trích dẫn cho phương pháp tôi đang sử dụng:
Thota, Aswini; Tilak, Priyanka; Ahluwalia, Simrat; và Lohia, Nibrat (2018) "Phát hiện tin tức giả: Phương pháp tiếp cận học tập sâu", Tạp chí Khoa học Dữ liệu của SMU: Vol. 1: Số 3, Điều 10. Có tại:https://scholar.smu.edu/datasciencereview/vol1/iss3/10
Trả lời
Bạn cần thêm một tham số nữa trong hàm 'train_test_split ()':
x_train1, x_test, y_train1, y_test = train_test_split(x, y, test_size=0.33, stratify = y)
Điều này sẽ giúp bạn phân bổ đồng đều tất cả các danh mục mục tiêu.