2014-04-14 11 views
5

Tôi đang sử dụng gói caret của R để thực hiện một số đánh giá tìm kiếm và mô hình lưới. Tôi có chỉ số đánh giá tùy chỉnh là mức trung bình có trọng số của lỗi tuyệt đối. Trọng số được chỉ định ở cấp độ quan sát.Đánh giá mô hình R caret với chỉ số hiệu suất thay thế

X <- c(1,1,2,0,1) #feature 1 
w <- c(1,2,2,1,1) #weights 
Y <- 1:5 #target, continuous 

#assume I run a model using X as features and Y as target and get a vector of predictions 

mymetric <- function(predictions, target, weights){ 

v <- sum(abs(target-predictions)*weights)/sum(weights) 
return(v) 
} 

một ví dụ được đưa ra về cách sử dụng summaryFunction để xác định một thước đo đánh giá tùy chỉnh cho tàu caret của(). Để báo giá:

Hàm trainControl có đối số được gọi là summaryFunction chỉ định chức năng cho hiệu suất máy tính. Các chức năng nên có những lập luận này:

dữ liệu là một tài liệu tham khảo cho một khung dữ liệu hoặc ma trận với các cột gọi là obs và pred cho các giá trị kết quả quan sát và dự đoán (hoặc số dữ liệu cho hồi quy hoặc nhân vật giá trị cho phân loại) . Hiện tại, xác suất lớp học không được chuyển cho hàm. Giá trị trong dữ liệu là các dự đoán được giữ lại (và các giá trị tham chiếu liên quan của chúng) cho một kết hợp các thông số điều chỉnh. Nếu đối số classProbs của đối tượng trainControl được đặt thành TRUE, các cột bổ sung trong dữ liệu sẽ xuất hiện có chứa xác suất loại . Tên của các cột này giống với cấp lớp . lev là một chuỗi ký tự có các mức hệ số kết quả là lấy từ dữ liệu huấn luyện. Đối với hồi quy, giá trị NULL là được chuyển vào hàm. mô hình là chuỗi ký tự cho mô hình đang được sử dụng (nghĩa là giá trị được chuyển đến đối số phương thức của tàu).

Tôi không thể tìm ra cách chuyển trọng số quan sát thành summaryFunction.

Trả lời

3

Bạn không thể chuyển trọng số trực tiếp đến hàm tổng hợp, đây là một sự giám sát vì bạn có thể chuyển chúng vào hàm mô hình hóa. Nếu mô hình cơ bản chứa trọng số, chúng được sử dụng để tạo ra các giá trị dự đoán.

Tôi sẽ thêm điều đó vào bản phát hành tiếp theo.

Tối đa

+0

Xin chào ... Chỉ để xác nhận xem thay đổi này có được thực hiện trong phiên bản mới của Caret không? Tôi đang sử dụng caret-6.0-58 và các đối số của nó không có trọng số – myloginid

+0

Đã xác nhận - Mã không thành công với trọng số được thêm vào hàm tóm tắt có lỗi - "Lỗi trong FUN (trái, phải): đối số không phải số để toán tử nhị phân" – myloginid

Các vấn đề liên quan