如何在 R 中使用 knn 找到缺失的收入值

How do I find the missing income value using knn in R

这是我创建的数据集:

ID <- c(NA,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)

如果 K = 1 且方法 =“未加权投票”,我正在尝试查找客户 x 的收入缺失值。 所以我试图找到正确的 knn 代码。到目前为止,这是我一直在尝试的。

knn(chart1,k = 1, prob=TRUE)

它正在寻找测试、训练和 cl。不知道从那里去哪里。感谢您的帮助。

您的原始数据框如下所示:

chart1
#   ID Age Asset_Size Income
# 1 NA  30         60     NA
# 2  1  25         50 100000
# 3  2  33         60  90000
# 4  3  35         80 150000

所以你正在寻找客户 X 的收入预测,使用 AgeAsset_Size 的信息,使用 knn,它只是意味着找到1,2,3 X 与哪个已知客户最接近。

所以训练数据集将是 AgeAsset_Size 客户 1,2,3:

train <- chart1[2:4, 2:3]

并且测试数据集将是 AgeAsset_Size 客户 X:

test <- chart1[1, 2:3]

集群将只是 ID 因为你正在做一个最近的邻居:

cl <- chart1[2:4, 1]

按照文档的规定将这些数据集传递给 knn,您将得到:

knn(train, test, cl, k = 1, prob = T)
[1] 2
attr(,"prob")
[1] 1
Levels: 1 2 3

因此 X 最接近客户 2,预测收入应该是 90000,如果您查看他们的 AgeAsset_size 信息,这是有道理的,因为他们是最近的。