Bắt đầu ngayBắt đầu miễn phí

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

Xem khóa học

Hướng dẫn bài tập

  • In dframetestframe.
    • Có màu nào trong testframe không xuất hiện trong dframe không?
  • Gọi prepare() để tạo phiên bản one-hot-encoded của testframe (không kèm biến kết quả). Đặt tên là testframe.treat và in nó ra.
    • Dùng đối số varRestriction để chỉ giới hạn ở các biến trong newvars.
    • Các hàng có màu yellow được mã hóa như thế nào?

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 = ___))
Chỉnh sửa và Chạy Mã