Mẹo kNN II: sắp xếp biến
Khi thuật toán k-Nearest Neighbors lặp qua các biến trong dữ liệu để bù khuyết, nó tính khoảng cách giữa các quan sát dựa trên các biến khác, trong đó có biến đã được bù ở các bước trước. Điều này có nghĩa là nếu các biến nằm sớm trong dữ liệu có nhiều giá trị khuyết, thì phép tính khoảng cách phía sau sẽ dựa trên rất nhiều giá trị đã được bù. Việc này đưa nhiễu vào phép tính khoảng cách.
Vì lý do đó, một thực hành tốt là sắp xếp các biến theo số lượng giá trị khuyết tăng dần trước khi thực hiện kNN imputation. Cách này giúp mỗi lần tính khoảng cách dựa trên càng nhiều dữ liệu quan sát được và càng ít dữ liệu đã bù càng tốt.
Hãy thử áp dụng điều này trên dữ liệu tao!
Bài tập này là một phần của khóa học
Xử lý dữ liệu khuyết bằng Imputation trong R
Hướng dẫn bài tập
- Tính số lượng giá trị khuyết ở từng cột của
taotrong phần đầu của pipeline. - Sau đó, sắp xếp các biến theo số lượng giá trị khuyết theo thứ tự tăng dần, trích xuất tên của chúng và gán kết quả vào
vars_by_NAs. - Dùng
select()để sắp xếp lại thứ tự các biến củataotheo thứ tự đã lưu trongvars_by_NAs. - Thực hiện k-Nearest Neighbors imputation trên dữ liệu đã sắp xếp và gán kết quả vào
tao_imp.
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.
# Get tao variable names sorted by number of NAs
vars_by_NAs <- tao %>%
___ %>%
colSums() %>%
sort(decreasing = ___) %>%
names()
# Sort tao variables and feed it to kNN imputation
tao_imp <- tao %>%
select(___) %>%
___()
tao_imp %>%
select(sea_surface_temp, humidity, humidity_imp) %>%
marginplot(delimiter = "imp")