Mah*_*lid 5 r machine-learning svm libsvm confusion-matrix
这是我的示例R代码:
train <- read.csv("Train.csv")
test <- read.csv("Test+.csv")
x <- model.matrix(age ~ . - 1,data=train)
classify=svm(as.factor(age)~ ., data=train,method="class")
pred = predict(classify,test,type="class")
Run Code Online (Sandbox Code Playgroud)
我怎样才能从中打印百分比准确度?我希望显示所有性能指标,如准确度,精度,召回.etc以供我评估.
以下是一些选项,使用内置iris数据框进行说明:
library(e1071)
m1 <- svm(Species ~ ., data = iris)
Run Code Online (Sandbox Code Playgroud)
使用table函数创建混淆矩阵:
table(predict(m1), iris$Species, dnn=c("Prediction", "Actual"))
Run Code Online (Sandbox Code Playgroud)
Run Code Online (Sandbox Code Playgroud)Actual Prediction setosa versicolor virginica setosa 50 0 0 versicolor 0 48 2 virginica 0 2 48
使用该caret包生成混淆矩阵和其他模型诊断(您还可以caret用于整个模型开发,调整和验证过程):
library(caret)
confusionMatrix(iris$Species, predict(m1))
Run Code Online (Sandbox Code Playgroud)
Run Code Online (Sandbox Code Playgroud)Confusion Matrix and Statistics Reference Prediction setosa versicolor virginica setosa 50 0 0 versicolor 0 48 2 virginica 0 2 48 Overall Statistics Accuracy : 0.9733 95% CI : (0.9331, 0.9927) No Information Rate : 0.3333 P-Value [Acc > NIR] : < 2.2e-16 Kappa : 0.96 Mcnemar's Test P-Value : NA Statistics by Class: Class: setosa Class: versicolor Class: virginica Sensitivity 1.0000 0.9600 0.9600 Specificity 1.0000 0.9800 0.9800 Pos Pred Value 1.0000 0.9600 0.9600 Neg Pred Value 1.0000 0.9800 0.9800 Prevalence 0.3333 0.3333 0.3333 Detection Rate 0.3333 0.3200 0.3200 Detection Prevalence 0.3333 0.3333 0.3333 Balanced Accuracy 1.0000 0.9700 0.9700