在R中使用svm进行预测时出现的错误

点击这里访问我使用的训练和测试数据。我是SVM的新手。我尝试在R中使用svm包来训练我的数据,我的数据包含40个属性和39个标签。所有属性都是双精度类型(大多数是0或1,因为我对分类属性进行了虚拟编码),类标签原本是不同的字符串,后来我将其转换为因子,现在是整数类型。

model=svm(Category~.,data=train1,scale=FALSE)p1=predict(model,test1,"prob")

这是我在使用SVM训练模型后得到的结果。

Call:svm(formula = Category ~ ., data = train1, scale = FALSE)Parameters:   SVM-Type:  C-classification    SVM-Kernel:  radial    cost:  1   gamma:  0.02564103    Number of Support Vectors:  2230

我使用了预测函数

Error in predict.svm(model, test1, "prob") : NAs in foreign function call (arg 1)In addition: Warning message:In predict.svm(model, test1, "prob") : NAs introduced by coercion

我不明白为什么会出现这个错误,我检查了训练数据的所有属性,它们都没有NA值。请帮助我解决这个问题。谢谢


回答:

我假设你使用的是e1071包(你没有指定使用哪个包,据我所知没有名为svm的包)。

错误信息令人困惑,但问题是你将”prob”作为第三个参数传递,而函数期望一个布尔值。试试这样做:

require(e1071)model=svm(Category~.,data=train1, scale=FALSE, probability=TRUE)p1=predict(model,test1, probability = TRUE)head(attr(p1, "probabilities"))

这是我得到的输出样本。

  WARRANTS OTHER OFFENSES LARCENY/THEFT VEHICLE THEFT  VANDALISM NON-CRIMINAL    ROBBERY    ASSAULT WEAPON LAWS   BURGLARY1 0.04809877      0.1749634     0.2649921    0.02899535 0.03548131    0.1276913 0.02498949 0.08322866  0.01097913 0.03800846  SUSPICIOUS OCC DRUNKENNESS FORGERY/COUNTERFEITING DRUG/NARCOTIC STOLEN PROPERTY SECONDARY CODES    TRESPASS MISSING PERSON1 0.03255891     0.003790755   0.006249521    0.01944938     0.004843043      0.01305858 0.009727582     0.01840337     FRAUD  KIDNAPPING     RUNAWAY DRIVING UNDER THE INFLUENCE SEX OFFENSES FORCIBLE PROSTITUTION DISORDERLY CONDUCT       ARSON1 0.01884472 0.006089563 0.001378799                 0.003289503            0.01071418  0.004562048        0.003107619 0.002124643  FAMILY OFFENSES LIQUOR LAWS      BRIBERY EMBEZZLEMENT      SUICIDE1    0.0004787845 0.001669914 0.0007471968 0.0007465053 0.0007374036

希望这对你有帮助。

Related Posts

Keras Dense层输入未被展平

这是我的测试代码: from keras import…

无法将分类变量输入随机森林

我有10个分类变量和3个数值变量。我在分割后直接将它们…

如何在Keras中对每个输出应用Sigmoid函数?

这是我代码的一部分。 model = Sequenti…

如何选择类概率的最佳阈值?

我的神经网络输出是一个用于多标签分类的预测类概率表: …

在Keras中使用深度学习得到不同的结果

我按照一个教程使用Keras中的深度神经网络进行文本分…

‘MatMul’操作的输入’b’类型为float32,与参数’a’的类型float64不匹配

我写了一个简单的TensorFlow代码,但不断遇到T…

发表回复

您的邮箱地址不会被公开。 必填项已用 * 标注