Làm thế nào để phân chia đào tạo / kiểm tra trong các hệ thống đề xuất


8

Tôi đang làm việc với bộ dữ liệu MovieLens10M, dự đoán xếp hạng của người dùng. Nếu tôi muốn đánh giá một cách công bằng thuật toán của mình, tôi nên chia dữ liệu kiểm tra v.

Theo mặc định, tôi tin rằng dữ liệu được chia thành các tập kiểm tra v. Trong đó 'kiểm tra' chứa các phim chưa từng thấy trong tập huấn luyện. Nếu mô hình của tôi yêu cầu mỗi bộ phim phải được xem ít nhất một lần trong tập huấn luyện, tôi nên chia dữ liệu của mình như thế nào? Tôi có nên lấy tất cả trừ N xếp hạng của mỗi người dùng cho tất cả dữ liệu và đánh giá hiệu suất của tôi trên xếp hạng NxUser_num không?

Câu trả lời:


2

Leave-one-outxác nhận chéo có lẽ là cách đơn giản nhất để giải quyết vấn đề này. Nếu bạn tình cờ sử dụng một mô hình đòi hỏi nhiều thời gian để đào tạo, thì bỏ n% ra có thể phù hợp hơn.

Phương pháp này bao gồm việc loại bỏ một đánh giá đã biết và cố gắng dự đoán nó. Nếu bạn muốn xóa n phần trăm xếp hạng, chỉ cần chọn chúng ngẫu nhiên thay vì chọn một số lượng cụ thể của mỗi xếp hạng của người dùng. Và giữ n khá nhỏ - theo thứ tự 10% hoặc ít hơn.

Dưới đây là một điều trị tốt của các phương pháp xác nhận chéo cho các hệ thống đề xuất . Nói chung là:

Holdout là một phương pháp chia một tập dữ liệu thành hai phần: tập huấn luyện và tập kiểm thử. Những bộ này có thể có tỷ lệ khác nhau. Trong cài đặt hệ thống đề xuất, việc phân vùng được thực hiện bằng cách chọn ngẫu nhiên một số xếp hạng từ tất cả (hoặc một số) người dùng. Xếp hạng được chọn tạo thành tập kiểm tra, trong khi các xếp hạng còn lại là tập huấn luyện. Phương pháp này còn được gọi là left-k-out. Trong [17], Sarwar và cộng sự. chia dữ liệu thành đào tạo 80% và dữ liệu thử nghiệm 20%. Trong [18] một số tỷ lệ giữa đào tạo và kiểm tra (từ 0,2 đến 0,95 với mức tăng 0,05) được chọn và với mỗi thử nghiệm được lặp lại mười lần với các bộ kiểm tra và huấn luyện khác nhau và cuối cùng kết quả được tính trung bình. Trong [13] bộ thử nghiệm được thực hiện bởi 10% người dùng: 5 xếp hạng cho mỗi người dùng trong bộ thử nghiệm bị giữ lại.

Bỏ qua một lần là một phương thức thu được bằng cách đặt k = 1 trong phương thức rời khỏi. Với một người dùng đang hoạt động, chúng tôi lần lượt giữ lại một mục được xếp hạng. Các thuật toán học tập được đào tạo trên các dữ liệu còn lại. Phần tử bị giữ lại được sử dụng để đánh giá tính chính xác của dự đoán và kết quả của tất cả các đánh giá được tính trung bình để tính toán ước tính chất lượng cuối cùng. Phương pháp này có một số nhược điểm, chẳng hạn như quá mức và độ phức tạp tính toán cao. Kỹ thuật này phù hợp để đánh giá chất lượng đề xuất của mô hình cho người dùng đã đăng ký làm thành viên của hệ thống. Karypis et al. [10] đã thông qua một phiên bản tầm thường của việc tạo ra một thử nghiệm bằng cách chọn ngẫu nhiên một trong những mục nhập khác không cho mỗi người dùng và các mục còn lại để đào tạo. Trong [7], Breese và cộng sự.

Một biến thể đơn giản của phương pháp nắm giữ là xác thực chéo m-Fold. Nó bao gồm việc chia tập dữ liệu thành các nếp gấp độc lập (để các nếp gấp không trùng nhau). Lần lượt, mỗi nếp gấp được sử dụng chính xác một lần như tập thử nghiệm và các nếp gấp còn lại được sử dụng để huấn luyện mô hình. Theo [20] và [11], số lần được đề xuất là 10. Kỹ thuật này phù hợp để đánh giá khả năng đề xuất của mô hình khi người dùng mới (nghĩa là người dùng chưa thuộc mô hình) tham gia hệ thống. Bằng cách chọn một số lần hợp lý, chúng ta có thể tính trung bình, phương sai và khoảng tin cậy.

Hi vọng điêu nay co ich!

Khi sử dụng trang web của chúng tôi, bạn xác nhận rằng bạn đã đọc và hiểu Chính sách cookieChính sách bảo mật của chúng tôi.
Licensed under cc by-sa 3.0 with attribution required.