介绍
构建机器学习模型SVM(支持向量机)后,需要在测试或者验证数据评估模型效能,但是常用的R命令无法获取预测分组的概率值。
构建SVM模型
给出简要构建SVM模型代码
set.seed(123)
svm_fit <- e1071::svm(
Group ~ .,
data = trainData,
kernel = "radial",
metric = "ROC",
gamma = optimalVar$sigma,
cost = optimalVar$C,
summaryFunction = twoClassSummary,
probability = TRUE)
svm_fit
常用预测测试数据集的概率代码
predict(svm_fit, newdata = testData, type = "prob")
该代码只能获得因子化的字符串变量,无法用于后期构建ROC曲线。
在查阅了资料后,可以采用下列代码
- probability设置为TRUE
- attr函数获取分组概率值
pred_prob_temp <- predict(svm_fit, newdata = testData, probability = TRUE)
pred_prob <- attr(pred_prob, "probabilities")
另外需要注意:参数newdata包含label,而newx则仅仅包含feature