Cómo interpretar el resultado de predicción de SVM en R?
Soy nuevo en R y estoy usando lae1071
paquete para clasificación SVM en R.
Use el siguiente código
data <- loadNumerical()
model <- svm(data[,-ncol(data)], data[,ncol(data)], gamma=10)
print(predict(model, data[c(1:20),-ncol(data)]))
LosloadNumerical
es para cargar datos, y los datos son de la forma (se ingresan las primeras 8 columnas y la última columna es clasificación):
[,1] [,2] [,3] [,4] [,5] [,6] [,7] [,8] [,9]
1 39 1 -1 43 -1 1 0 0.9050497 0
2 23 -1 -1 30 -1 -1 0 1.6624974 1
3 50 -1 -1 49 1 1 2 1.5571429 0
4 46 -1 1 19 -1 -1 0 1.3523685 0
5 36 1 1 29 -1 1 1 1.3812029 1
6 27 -1 -1 19 1 1 0 1.9403649 0
7 36 -1 -1 25 -1 1 0 2.3360004 0
8 41 1 1 23 1 -1 1 2.4899738 0
9 21 -1 -1 18 1 -1 2 1.2989637 1
10 39 -1 1 21 -1 -1 1 1.6121595 0
El número de filas en los datos es 500.
Como se muestra en el código anterior, probé las primeras 20 filas para la predicción. Y la salida es:
1 2 3 4 5 6 7
0.04906014 0.88230392 0.04910760 0.04910719 0.87302217 0.04898187 0.04909523
8 9 10 11 12 13 14
0.04909199 0.87224979 0.04913189 0.04893709 0.87812890 0.04909588 0.04910999
15 16 17 18 19 20
0.89837037 0.04903778 0.04914173 0.04897789 0.87572114 0.87001066
Puedo decir intuitivamente por el resultado que cuando el resultado está cerca de 0, significa clase 0, y si está cerca de 1 está en la clase 1.
Pero mi pregunta es cómo puedoprecisament interpretar el resultado: ¿hay un umbrals Puedo usar para que los valores debajo des se clasifican como 0 y los valores superiores as se clasifican como 1?
Si existe tals, ¿cómo puedo derivarlo?