gpt4 book ai didi

r - 在 Caret 中使用 train 时为 "nrow(x) == n is not TRUE";已经设置为因素

转载 作者:行者123 更新时间:2023-12-02 09:28:04 27 4
gpt4 key购买 nike

我正在使用此处找到的数据集:http://archive.ics.uci.edu/ml/datasets/Qualitative_Bankruptcy

运行代码时: 图书馆(插入符号)

bank <- read.csv("Qualitative_Bankruptcy.data.txt", header=FALSE, na.strings = "?", 
strip.white = TRUE)

x=bank[1:6]
y=bank[7]

bank.knn <- train(x, y, method= "knn", trControl = trainControl(method = "cv"))

我收到以下错误: 错误:nrow(x) == n 不正确

我找到的唯一例子是 Error: nrow(x) == n is not TRUE when using Train in Caret ;我的 Y 已经是具有两个类的因子向量,所有 X 特征也是因子。我尝试在 X 和 Y 上使用 as.matrix 和 as.data.frame 但没有成功。

nrow(x) 等于 250,但我不确定包中的 n 指的是什么。

最佳答案

y 实际上不是一个向量,而是一个只有一列的 data.frame 因为 bank[7] 没有将第 7 列转换成向量,所以 length(y) 为 1。请改用 bank[, 7]。它对 x 没有影响,但它也可以由 bank[, 1:6] 生成。

此外,为了使 KNN 工作,您可能必须将包含因子变量的 x data.frame 转换为数字虚拟变量。

x=model.matrix(~. - 1, bank[, 1:6])
y=bank[, 7]
bank.knn <- train(x, y, method= "knn",
trControl = trainControl(method = "cv"))

关于r - 在 Caret 中使用 train 时为 "nrow(x) == n is not TRUE";已经设置为因素,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/35944221/

27 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com