Tôi có tập dữ liệu và tôi muốn tạo mô hình, tốt nhất là với gói caret
. Dữ liệu của tôi thực sự là một chuỗi thời gian nhưng câu hỏi không phải là cụ thể cho chuỗi thời gian, nó chỉ là tôi làm việc với CreateTimeSlices
cho phân vùng dữ liệu.Loại trừ các giá trị bị thiếu khỏi tính toán hiệu suất mô hình
Dữ liệu của tôi có một số lượng giá trị thiếu nhất định là NA
và tôi đã gán riêng cho chúng một cách riêng biệt của mã caret
. Tôi cũng giữ một kỷ lục vị trí của họ:
# a logical vector same size as the data, which obs were imputed NA
imputed=c(FALSE, FALSE, FALSE, TRUE, FALSE, FALSE)
imputed[imputed] <- NA; print(imputed)
#### [1] FALSE FALSE FALSE NA FALSE FALSE
Tôi biết có một tùy chọn trong Caret train
chức năng hoặc là loại trừ NA
hoặc quy cho họ với các kỹ thuật khác nhau. Đó là không phải những gì tôi muốn. Tôi cần xây dựng mô hình trên tập dữ liệu đã được phỏng đoán nhưng Tôi muốn loại trừ các điểm bị tranh chấp khỏi việc tính toán các chỉ số lỗi (RMSE, MAE, ...).
Tôi không biết cách thực hiện điều này trong dấu mũ. Trong kịch bản đầu tiên của tôi, tôi đã cố gắng để làm toàn bộ kiểm chứng chéo bằng tay, và sau đó tôi đã có một biện pháp lỗi tùy chỉnh:
actual = c(5, 4, 3, 6, 7, 5)
predicted = c(4, 4, 3.5, 7, 6.8, 4)
Metrics::rmse(actual, predicted) # with all the points
#### [1] 0.7404953
sqrt(mean((!imputed)*(actual-predicted)^2 , na.rm=T)) # excluding the imputed
#### [1] 0.676757
Làm thế nào tôi có thể xử lý theo cách này làm trong caret
? Hay có cách nào khác để tránh mã hóa mọi thứ bằng tay?
Âm thanh như thứ gì đó yêu cầu mã tùy chỉnh, không phải 'caret', với tôi. –
Tôi cũng nghĩ đến việc sử dụng đối số 'trọng số 'nhưng nó không rõ ràng khi nó được đưa vào tài khoản hay không. – agenis