gpt4 book ai didi

r - 使用 e1071 和插入符号的 SVM 模型有不同的结果

转载 作者:行者123 更新时间:2023-11-30 08:24:34 24 4
gpt4 key购买 nike

我正在使用两个不同的数据包来训练两个 SVM 模型,并得到截然不同的结果。这是可以预料到的吗?

使用 e1071 的模型 1

library('e1071')
model1 <- svm(myFormula, data=trainset,type='C',kernel='linear',probability = TRUE)
outTrain <- predict(model1, trainset, probability = TRUE)
outTest <- predict(model1, testset, probability = TRUE)
train_pred <- attr(outTrain, "probabilities")[,2]
test_pred <- attr(outTest, "probabilities")[,2]
calculateAUC(train_pred,trainTarget)
calculateAUC(test_pred,testTarget)

使用插入符号的模型2

model2 <- train(myFormula,data=trainset,method='svmLinear')
train_pred <- predict(model2, trainset)
test_pred <- predict(model2, testset)
calculateAUC(train_pred,trainTarget)
calculateAUC(test_pred,testTarget)

calculateAUC() 是我定义的函数,用于在给定目标的预测值和实际值的情况下计算 AUC 值。我认为这些值是:

型号1 (e1071)

1
0.8567979

模型2(插入符号)

0.9910193
0.758201

这是可能的吗?还是我做错了?

如果有帮助,我可以提供示例数据

最佳答案

是的,这是可能的,因为例如:

  • 不同的C值,在e1071中默认值为1,也许caret使用其他值?
  • 数据缩放,e1071 默认情况下会缩放您的输入,插入符号默认情况下不会缩放(尽管 kernlab 的 svm 会缩放,而且它是一个“幕后”模型,因此需要进行源代码检查确保)
  • 不同的eps/maxiteration或其他与优化相关的阈值

只需在学习后显示您的模型参数并检查它们是否相同,您可能会发现这两个库之间的某些默认参数是不同的。

关于r - 使用 e1071 和插入符号的 SVM 模型有不同的结果,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/18911338/

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