R knncat 是否规范化数据?

R Does knncat normalise data?

我正在对一些数据进行 knn 分析。我有分类数据(超过 2 个因素)和连续数据。我找到了一个解决这种情况的包 (knncat),但几乎没有文档解释它的实际工作原理。

我希望使用交叉验证(我相信这可以通过简单地不提供训练数据来完成)并且我 运行 遇到了问题。我不知道这个包如何规范化数据。我不知道是否应该在使用之前对数字数据进行归一化,或者我是否应该保持原样。

有谁知道 knncat 是如何处理这个的?或者有人能推荐一种更好的方法或包来处理混合分类和数字数据的 KNN 吗?

  1. 检查函数正在做什么的最好方法是查看函数内部 body,你可以这样做:

    getAnywhere(knncat)

    据我所知,那里没有缩放或居中数据。


  1. 关于第二个问题,分类数据的处理方式是 创建虚拟变量(knncat 实际上就是这样做的)。但是你 可以自己创建虚拟变量。

    例如,

    data$cat.var.dummy <- as.integer(as.factor(data$cat.var))
    

    或者你可以使用 Caret 包,它有方法可以做到这一点 嗯,dummyVars