【问题标题】:Caret package findCorrelation() function插入符号包 findCorrelation() 函数
【发布时间】:2016-05-07 20:16:02
【问题描述】:
您好,我在使用 findCorrelation() 函数时遇到问题,这是我的输入和输出:
findCorrelation(train, cutoff = .50, verbose = FALSE)
findCorrelation_exact 中的错误(x = x,cutoff = cutoff,verbose =
verbose) : 相关矩阵不是对称的
有人知道为什么会这样吗?
【问题讨论】:
标签:
r
correlation
r-caret
【解决方案1】:
如果您使用的是数据框,那么您可能必须先将其制成矩阵。
corval <- findCorrelation(cor(as.matrix(train)), cutoff = 0.80, verbose = FALSE, names = FALSE)
【解决方案2】:
findCorrelation 函数需要一个相关矩阵作为 x 值,所以试试这个:
findCorrelation(cor(train), cutoff = .50, verbose = FALSE)
参考:Caret pre-processing
【解决方案3】:
嗯,这是因为矩阵的列可能没有行多(反之亦然)。例如。
library(caret)
train <- cor(mtcars)
findCorrelation(train, cutoff = .50, verbose = FALSE)
# works
findCorrelation(train[, -1], cutoff = .50, verbose = FALSE)
# Error in findCorrelation_exact(x = x, cutoff = cutoff, verbose = verbose) :
# correlation matrix is not symmetric
dim(train[, -1])
# [1] 11 10
(至少根据错误消息,这是我的猜测。)