Mức độ mới (novel levels)
Khi một mức của biến phân loại hiếm gặp, đôi khi nó sẽ không xuất hiện trong dữ liệu huấn luyện. Nếu mức hiếm đó xuất hiện trong dữ liệu tương lai, các mô hình phía sau có thể không biết xử lý ra sao. Khi các mức độ mới như vậy xuất hiện, việc dùng model.matrix hoặc caret::dummyVars để one-hot-encode sẽ không hoạt động đúng.
vtreat là một lựa chọn "an toàn" hơn so với model.matrix để one-hot-encode, vì nó có thể xử lý an toàn các mức độ mới. vtreat cũng xử lý giá trị thiếu trong dữ liệu (cả biến phân loại và biến liên tục).
Trong bài tập này, bạn sẽ xem vtreat xử lý các giá trị phân loại không xuất hiện trong tập huấn luyện như thế nào.
Kế hoạch xử lý treatplan và tập biến newvars từ bài trước vẫn còn.
dframe và một data frame mới testframe đã được nạp sẵn.
Bài tập này là một phần của khóa học
Học có giám sát với R: Hồi quy
Hướng dẫn bài tập
- In
dframevàtestframe.- Có màu nào trong
testframekhông xuất hiện trongdframekhông?
- Có màu nào trong
- Gọi
prepare()để tạo phiên bản one-hot-encoded củatestframe(không kèm biến kết quả). Đặt tên làtestframe.treatvà in nó ra.- Dùng đối số
varRestrictionđể chỉ giới hạn ở các biến trongnewvars. - Các hàng có màu yellow được mã hóa như thế nào?
- Dùng đối số
Bài tập tương tác thực hành trực tiếp
Hãy thử làm bài tập này bằng cách hoàn thành đoạn mã mẫu này.
# treatplan is available
summary(treatplan)
# newvars is available
newvars
# Print dframe and testframe
___
___
# Use prepare() to one-hot-encode testframe
(testframe.treat <- ___(___, ___, varRestriction = ___))