2016-07-07 46 views
0

这里是我创建的数据集:如何寻找失踪的收入值R中使用KNN

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) 

我试图找到收入的客户X缺失值,如果K = 1和方法= “未加权票”。 所以我想找到正确的KNN代码。这是我一直努力至今。

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

它寻找测试,培训和CL。不知道从那里去哪里。我很感激任何帮助。

回答

1

您的原始数据帧是这样的:

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,3X最接近。

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

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因为它们是最近的信息。

+0

嘿,如果你有一个免费的配件,你可以看看我的另一个问题吗?谢谢。 http://stackoverflow.com/questions/38253784/how-to-find-the-missing-value-using-kknn-not-knn-in-r?noredirect=1#comment63928811_38253784 – Tomas