Tôi đã đọc khá nhiều bài viết về gói caret và tôi đặc biệt quan tâm đến chức năng đào tạo . Tuy nhiên, tôi không hoàn toàn chắc chắn nếu tôi đã hiểu chính xác cách thức hoạt động của chức năng tàu.
Để minh họa những suy nghĩ hiện tại của tôi, tôi đã soạn một ví dụ nhanh.
Đầu tiên, người ta chỉ định một lưới tham số. Giả sử tôi sử dụng phương thức gbm , theo đó, lưới tham số cho mô hình của tôi có thể trông như sau:
grid <- expand.grid( .n.trees=seq(10,50,10), .interaction.depth=seq(1,4,1), .shrinkage=c(0.01,0.001), .n.minobsinnode=seq(5,20,5))
Sau đó, các tham số điều khiển cho tàu (trainControl) được xác định. Tôi muốn biết liệu suy nghĩ của tôi về xác nhận chéo bằng tàu hỏa có đúng không, và do đó, trong ví dụ này tôi sử dụng như sau:
train_control <- trainControl('cv',10)
Cuối cùng, chức năng đào tạo được thực thi. Ví dụ:
fit <- train(x,y,method="gbm",metric="Kappa",trControl=train_control,tuneGrid=grid)
Bây giờ cách tôi đoán rằng tàu hoạt động là như sau:
- Trong ví dụ trên, có 160 (5 * 4 * 2 * 4) kết hợp tham số có thể
- Đối với mỗi tàu kết hợp tham số thực hiện xác nhận chéo 10 lần
- Đối với mỗi kết hợp tham số và cho mỗi lần gấp (trong 10 lần), chỉ số hiệu suất (Kappa trong ví dụ của tôi) được tính toán (trong ví dụ của tôi, điều này ngụ ý rằng 1600 Kappa được tính toán)
- Đối với mỗi kết hợp tham số, giá trị trung bình của chỉ số hiệu suất được tính trên 10 lần
- Kết hợp tham số có chỉ số hiệu suất trung bình tốt nhất được coi là tham số tốt nhất cho mô hình
Câu hỏi của tôi rất đơn giản, những suy nghĩ hiện tại của tôi có đúng không?