Вот набор данных, который я создал:
ID <- c('X',1,2,3)
Age <- c(30,25,33,35)
Asset_Size <- c(60,50,60,80)
Income <- c(NA,100000,90000,150000)
chart1 <- data.frame(ID,Age,Asset_Size,Income)
Я пытаюсь найти недостающее значение дохода для клиента X, если K = 3 и метод = «взвешенное голосование по расстоянию». До сих пор я делал это с помощью метода «невзвешенного голосования», и это то, как он выглядит.
train <- chart1[2:4, 2:3]
test <- chart1[1, 2:3]
cl <- chart1[2:4, 1]
knn(train, test, cl, k = 3, prob = T)
Как мне найти недостающее значение, используя метод K = 3 и метод «взвешенного по расстоянию»? Спасибо
1 ответ
require(VIM)
require(laeken)
kNN(chart1, k = 3, numFun = weightedMean, weightDist=TRUE)
Time difference of 0.008000851 secs
ID Age Asset_Size Income ID_imp Age_imp Asset_Size_imp Income_imp
1 X 30 60 106666.7 FALSE FALSE FALSE TRUE
2 1 25 50 100000.0 FALSE FALSE FALSE FALSE
3 2 33 60 90000.0 FALSE FALSE FALSE FALSE
4 3 35 80 150000.0 FALSE FALSE FALSE FALSE
Похожие вопросы
Новые вопросы
r
R — это бесплатный язык программирования с открытым исходным кодом и программная среда для статистических вычислений, биоинформатики, визуализации и общих вычислений. Пожалуйста, используйте минимально воспроизводимые примеры, которые другие могут запустить с помощью копирования и вставки. Показать желаемый результат полностью. Используйте dput() для данных и укажите все небазовые пакеты с помощью library(). Не вставляйте изображения для данных или кода, вместо этого используйте блоки кода с отступом. Для вопросов по статистике используйте https://stats.stackexchange.com.
kNN
наknn
. Это разные функции KNN. Это из пакетаVIM
. Убедитесь, что вы скопировали и вставили код из моего ответа. Установите пакеты, если у вас их нет.VIM
, а неVim
, и загрузите библиотеку после ее установки.