我正在使用 e1071 'tune' 功能来优化 SVM 模型。我想使用 F1 而不是 Accuracy 作为优化的值。我在这篇文章中发现:Optimize F-score in e1071 package我需要定义一个新的 error.fun。我遇到的问题是,该帖子中显示的功能并未最终成为解决方案,并且对我不起作用。如果我知道每个 tune 迭代中预测的变量名称,我可以编写一个函数来计算 F1,但我不知道如何获得这些值。如何计算 F1 并使用它在 e1071 中使用“tune”优化模型参数?我的代码如下:
tuned = tune.svm(PriYN~., data = dataset, kernel = "radial", probability=TRUE, gamma = 10^(-5:-1), cost = 10^(-3:1), tunecontrol=tune.control(cross=10))