提问者:小点点

用SVM预测R


我正在尝试使用svm在R上预测一些数据来创建模型并预测

下面我附上了一些代码,我希望解释一下自己

datos<-read.csv("Seguros.csv",sep = ";",dec='.',header=T)
muestra<-sample(nrow(datos),4400)
aprendizaje<-datos[muestra,]
datosPrec <- read.csv("SegurosNuevosVE150.csv", sep = ";", dec = ".", header = T)
modeloSig <- svm(Fraude ~ ., data = aprendizaje, kernel = "sigmoid")
modeloSig
predictFinal <- predict(modeloSig, datosPrec[, 16])

我得到这个错误

代号错误

两者上的数据是相同的,唯一的区别是行数,最后一列调用“欺诈”而不是说“Si”o“No”,它说“NA”在SegurosNuevosVE150. csv下面我附上了摘要,我希望我解释了自己

摘要(Seguros. csv)

MontoPagado兴趣普拉索Tipo Mensualidad
Min.:-3453 Min.:-0.6448 Min.: 64.0国际:343 Min.:5003
第一Qu.:2284315第一Qu.:17.0000第一Qu.:404.0全国:6070第一Qu.:12164
中位数:3831087中位数:17.2500中位数:444.3中位数:17299
平均值:4585558平均值:15.8877平均值:438.4平均值:23496
第三Qu.:5792869第三Qu.:17.7500第三Qu.:478.7第三Qu.:28939
Max.:49019276 Max.:18.7500 Max.:515.3 Max.:276296

金额保险类型付款方式付款保证2其他保险记录
最小: 7803 A:4158盒子:607否:3278否:5527否:5310 R0:5310
第一个Qu.:401439 B:1817否定义:450是:3135是:886是:1103 R2:530
中位数:613561 C:438卡:5356 R1:495
平均值:764561 R5:40
第三个Qu.:916591 R6:26
最大值:7734773 R7:5
(其他):7
年龄Estado民事工资欺诈
最小值:21.00离婚:229分钟.:0否:6146
第一个Qu.:33.50不申请:25第一个Qu.:0是:267
中位数:35.50单身:5895中位数:0
平均值:36.58联盟:256平均值:4126
第三曲。:38.50鳏夫:8第三曲。:6404
最大值。:57.00最大值。:104185

总结(SegurosNuevosVE150. csv)

MontoPagado兴趣Placzo Tipo Mensualidad MontoAsecurado
Min.: 613 Min.:-0.50 Min.:302.7国际:6 Min.:5029 Min.:8470
第一Qu.:2678695第一Qu.:17.25第一Qu.:431.3全国:144第一Qu.:12122第一Qu.:462045
中位数:3987711中位数:17.25中位数:434.0中位数:17533中位数:639318
平均值:4915943平均值:16.40平均值:439.9平均值:24432平均值:806379
第三Qu.:6780419第三Qu.:17.62第三Qu.:474.7第三Qu.:29269第三Qu.:1091095
Max.:28647806 Max.:17.75 Max.:492.7 Max.:148886 Max100 Cajas: 9 No:82 No:127 No:130 R0:130 Min.:31.00离婚:5
B:36 NoDefido:44 Si:68 Si:23 Si:20 R1:9第1 Qu.:33.50 Soltero:140
C:14 Tarjeta:97 R2:11中位数:35.50联合:4
平均值:36.78 Viudo:1
第3 Qu.:39.00
Max.:57.00
Salario欺诈
Min.:0模式:逻辑
第1 Qu.:0 NA's:150
中位数:3806
平均值:5198
第3 Qu.:7432
Max.:82010


共1个答案

匿名用户

你的问题就在最后一行。当您需要指定整个数据框时,您为“newdata”传递的参数仅指定数据框的一列。

modeloSig <- svm(Fraude ~ ., data = aprendizaje, kernel = "sigmoid")
predictFinal <- predict(modeloSig, newdata=datosPrec) #changed datosPrec