【问题标题】:How do I find the missing income value using knn in R如何在 R 中使用 knn 找到缺失的收入值
【发布时间】:2016-07-07 09:53:52
【问题描述】:

这是我创建的数据集:

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)

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

【问题讨论】:

    标签: r dataset knn


    【解决方案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,3@ 987654328@最接近。

    因此,对于客户1,2,3,训练数据集将是AgeAsset_Size

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

    测试数据集将是客户XAgeAsset_Size

    test <- chart1[1, 2:3]
    

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

    cl <- chart1[2:4, 1]
    

    将这些数据集传递给 docs 指定的knn,您会得到:

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

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

    【讨论】:

    猜你喜欢
    • 2016-11-10
    • 2019-11-02
    • 1970-01-01
    • 2019-06-09
    • 1970-01-01
    • 1970-01-01
    • 2019-03-05
    • 2015-07-22
    • 2020-07-03
    相关资源
    最近更新 更多