我正在使用此处找到的数据集: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"))
Run Code Online (Sandbox Code Playgroud)
我收到以下错误:错误:nrow(x)== n不为TRUE
我发现的唯一例子是Error:在Caret中使用Train时,nrow(x)== n不为TRUE ; 我的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"))
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
4815 次 |
| 最近记录: |