【问题标题】:Implementation of k prototypek原型的实现
【发布时间】:2019-09-21 05:02:04
【问题描述】:

我有一个数字和分类变量的混合数据集。我尝试基于 https://www.kaggle.com/rahultej/k-prototypes-correlation-randomforesthttps://journal.r-project.org/archive/2018/RJ-2018-048/RJ-2018-048.pdf

所以,基本上,我只是在我的数据框中删除了包含 NA 的列,并尝试在不对分类变量进行任何数据转换的情况下实现 kprototype。

包含分类数据的列中的类别数量不同。 示例:X 列有 4 个类别,Y 列有 15 个类别。我不确定 kprototype 是否适用于这种情况??

我收到以下错误

Ops.data.frame(x[, j], rep(protos[i, j], nrows)) 中的错误: 长度为 1043 的列表没有意义

我还尝试将分类变量转换为数值。虽然我没有使用过缩放功能。当我将分类变量转换为数字时,它会引发错误 “x 中没有因子变量!尝试使用 kmeans()...”

data_kproto <- kproto(data, k = 4)

【问题讨论】:

    标签: r


    【解决方案1】:

    将具有 2 个以上水平的所有因子转换为单独的列。将数值数据缩放到 z 分数。确保数据是数据框。

    # Turn to dummies
    library(caret)
    dummies <- dummyVars(" ~ .", data)
    data <- data.frame(predict(dummies, newdata = data))
    
    # Scale
    data <- scale(data[,c("numeric_1", "numeric_2")])
    
    # Check data frame
    data <- as.data.frame(data)
    
    # kproto
    data_kproto <- kproto(data, k = 4)
    

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 2011-01-24
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2011-04-01
      • 1970-01-01
      相关资源
      最近更新 更多