Tôi đang sử dụng createFolds()
trong R (phiên bản: 3.3.0) để tạo phân vùng tàu/thử nghiệm. Để làm cho kết quả có thể tái sản xuất, tôi đã sử dụng set.seed()
với giá trị hạt giống là 10. Như mong đợi, kết quả (nếp gấp được tạo ra) có thể tái sản xuất được.Kết quả R: set.seed() không phù hợp nếu gói caret được tải
Nhưng một khi tôi đã tải gói hàng chỉ sau khi đặt hạt giống. Và sau đó sử dụng hàm createFolds, tôi thấy rằng các nếp gấp đã tạo khác nhau (mặc dù vẫn có thể tái sản xuất).
Cụ thể, những nếp gấp tạo ra khác nhau trong hai trường hợp sau:
Trường hợp 1:
library(caret)
set.seed(10)
folds=createFolds(y,k=5,returnTrain=TRUE)
Trường hợp 2:
set.seed(10)
library(caret)
folds=createFolds(y,k=5,returnTrain=TRUE)
nơi y
là một vector.
Tại sao điều này có thể xảy ra?
A [câu hỏi tương tự] (https://github.com/topepo/caret/issues/452) đã xuất hiện vào một ngày khác; một số gói sử dụng số ngẫu nhiên khi khởi động – topepo
@topepo có cách nào xung quanh vấn đề này không? Tôi có cùng một vấn đề, nhưng ngay cả khi tôi thiết lập hạt giống sau khi tải gói caret. Đây có phải là dự kiến không ?. Tôi đã hy vọng sử dụng dấu mũ cho createFolds, nhưng tôi cần một cách để làm cho nó có thể tái sản xuất được. EDIT: Tôi chỉ nhận ra rằng tôi đã không đặt hạt giống giữa các cuộc gọi khác nhau của 'createFolds()', đó là vấn đề. – Reilstein