gpt4 book ai didi

r - 从R中的e1071软件包训练SVM时出现错误“(下标)逻辑下标太长”

转载 作者:行者123 更新时间:2023-12-03 21:46:22 28 4
gpt4 key购买 nike

我正在使用traindata训练svm。 (R中的e1071软件包)。以下是有关我的数据的信息。

> str(train)
'data.frame': 891 obs. of 10 variables:
$ survived: int 0 1 1 1 0 0 0 0 1 1 ...
$ pclass : int 3 1 3 1 3 3 1 3 3 2 ...
$ name : Factor w/ 15 levels "capt","col","countess",..: 12 13 9 13 12 12 12 8 13 13
$ sex : Factor w/ 2 levels "female","male": 2 1 1 1 2 2 2 2 1 1 ...
$ age : num 22 38 26 35 35 ...
$ ticket : Factor w/ 533 levels "110152","110413",..: 516 522 531 50 473 276 86 396
$ fare : num 7.25 71.28 7.92 53.1 8.05 ...
$ cabin : Factor w/ 9 levels "a","b","c","d",..: 9 3 9 3 9 9 5 9 9 9 ...
$ embarked: Factor w/ 4 levels "","C","Q","S": 4 2 4 4 4 3 4 4 4 2 ...
$ family : int 1 1 0 1 0 0 0 4 2 1 ...


我对它进行如下训练。

library(e1071)
model1 <- svm(survived~.,data=train, type="C-classification")


没问题但是当我预测为:

pred <- predict(model1,test)


我收到以下错误:

Error in newdata[, object$scaled, drop = FALSE] : 
(subscript) logical subscript too long


我还尝试从训练和测试数据中删除“门票”预测变量。但是还是一样的错误。问题是什么?

最佳答案

“测试”数据集中的因素之一的级别数可能有所不同。

运行str(test)并检查因子变量是否与“火车”数据集中的相应变量具有相同的水平。

即下面的示例显示my.test $ foo只有4个级别.....

str(my.train)
'data.frame': 554 obs. of 7 variables:
....
$ foo: Factor w/ 5 levels "C","Q","S","X","Z": 2 2 4 3 4 4 4 4 4 4 ...

str(my.test)
'data.frame': 200 obs. of 7 variables:
...
$ foo: Factor w/ 4 levels "C","Q","S","X": 3 3 3 3 1 3 3 3 3 3 ...

关于r - 从R中的e1071软件包训练SVM时出现错误“(下标)逻辑下标太长”,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/17109219/

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