Sự khác biệt giữa Mục tiêu và feval trong xgboost trong R là gì? Tôi biết đây là một cái gì đó rất cơ bản nhưng tôi không thể xác định chính xác chúng/mục đích của chúng. Ngoài ra, mục tiêu softmax là gì, trong khi thực hiện phân loại đa lớp?Sự khác nhau giữa mục tiêu và feval trong xgboost
Trả lời
Mục tiêu
Objective
trong xgboost
là function mà thuật toán học sẽ cố gắng và tối ưu hóa. Theo định nghĩa, nó phải có khả năng tạo ra 1 (gradient) và 2 (hessian) dẫn xuất w.r.t. các dự đoán tại một vòng đào tạo nhất định.
Một tùy chỉnh Objective
chức năng ví dụ: link
# user define objective function, given prediction, return gradient and second order gradient
# this is loglikelihood loss
logregobj <- function(preds, dtrain) {
labels <- getinfo(dtrain, "label")
preds <- 1/(1 + exp(-preds))
grad <- preds - labels
hess <- preds * (1 - preds)
return(list(grad = grad, hess = hess))
}
Đây là chức năng quan trọng đối với đào tạo và không có mô hình xgboost
có thể được đào tạo mà không xác định một. Các hàm Objective
được sử dụng trực tiếp trong việc chia tách tại mỗi nút trong mỗi cây.
feval
feval
trong xgboost
lượt không có vai trò trực tiếp tối ưu hóa hoặc đào tạo mô hình của bạn. Bạn thậm chí không cần một để đào tạo. Nó không ảnh hưởng đến việc chia tách. Tất cả những gì nó làm là ghi điểm cho mô hình của bạn SAU KHI nó đã được đào tạo. Xem ví dụ về tùy chỉnh feval
evalerror <- function(preds, dtrain) {
labels <- getinfo(dtrain, "label")
err <- as.numeric(sum(labels != (preds > 0)))/length(labels)
return(list(metric = "error", value = err))
}
Thông báo, chỉ trả về tên (chỉ số) và điểm (giá trị). Thông thường, feval
và objective
có thể giống nhau, nhưng có lẽ cơ chế tính điểm bạn muốn có một chút khác biệt hoặc không có các dẫn xuất. Ví dụ: mọi người sử dụng logloss objective
để đào tạo, nhưng tạo AUC feval
để đánh giá mô hình.
Ngoài ra, bạn có thể sử dụng số feval
để ngăn mô hình của mình không được đào tạo khi nó ngừng cải thiện. Và bạn có thể sử dụng nhiều chức năng feval
để chấm điểm mô hình của mình theo những cách khác nhau và quan sát tất cả chúng.
Bạn không cần chức năng feval
để đào tạo mô hình. Chỉ để đánh giá nó, và giúp nó ngừng đào tạo sớm.
Tóm tắt:
Objective
là ngựa thồ chính.
feval
là người trợ giúp để cho phép xgboost
làm một số điều thú vị.
softmax
là chức năng objective
thường được sử dụng trong phân loại nhiều lớp. Nó đảm bảo rằng tất cả các dự đoán của bạn tổng hợp một, và được thu nhỏ bằng cách sử dụng hàm mũ. softmax
- 1. Sự khác biệt giữa _ và tự. trong Mục tiêu-C
- 2. Sự khác nhau giữa tiêu diệt() và unpersist() là gì?
- 3. Sự khác biệt giữa mục tiêu và mục tiêu hiện tại trong flex là gì?
- 4. Sự khác biệt giữa mục tiêu-c và java
- 5. Mục tiêu-C: sự khác biệt giữa id và void *
- 6. Sự khác nhau giữa! = Và =! trong Java?
- 7. Sự khác nhau giữa | và || trong MATLAB?
- 8. Sự khác nhau giữa `% trong%` và `== '
- 9. Mục tiêu-C: Sự khác nhau giữa forKey và forKeyPath là gì?
- 10. Sự khác nhau giữa REST và WebServices
- 11. Sự khác nhau giữa JPA và JPA2
- 12. Sự khác nhau giữa JAVA_HOME và JRE_HOME
- 13. Sự khác nhau giữa clBLAS và ViennaCL?
- 14. Sự khác biệt giữa C++, mục tiêu-c và mục tiêu-C++ là gì?
- 15. Sự khác nhau giữa C: và C:/
- 16. bất kỳ sự khác biệt nào giữa xgboost gốc và sklearn XGBClassifier
- 17. Sự khác nhau giữa TVar và TMVar
- 18. Sự khác nhau giữa NoClassDefFoundError và ClassNotFoundException?
- 19. Sự khác nhau giữa @FormDataParam và @FormParam
- 20. sự khác nhau giữa XSD và WSDL
- 21. Sự khác nhau giữa onResume() và onResumeFragments()
- 22. Sự khác nhau giữa presentModalViewController và presentViewController?
- 23. Sự khác nhau giữa CursorLoader và AsyncTaskLoader
- 24. Sự khác nhau giữa String.scan và String.split
- 25. Sự khác nhau giữa memset và memcpy trong C
- 26. Sự khác nhau giữa PyMODINIT_FUNC và PyModule_Create
- 27. Sự khác nhau giữa System.Web.Cache và HTTPContext.Curent.Cache
- 28. Sự khác nhau giữa onClickListener và onItemClickListener
- 29. Sự khác nhau giữa innodb_log_buffer_size và innodb_buffer_pool_size
- 30. Sự khác nhau giữa objectForKey và valueForKey?