python - paper - libsvm predicen la confusión del método
libsvm weka (2)
Utiliza las etiquetas verdaderas para proporcionar estadísticas de precisión en caso de que esté realizando una prueba fuera de muestra.
Si lo está ejecutando "en línea", es decir, realmente no tiene las etiquetas verdaderas, simplemente ponga [0]*len(z)
lugar de y
Tengo una pregunta sobre el método svm_predict () en libsvm.
El archivo README tiene este código de ejemplo de inicio rápido:
>>> y, x = [1,-1], [{1:1, 3:1}, {1:-1,3:-1}]
>>> prob = svm_problem(y, x)
>>> param = svm_parameter(''-c 4 -b 1'')
>>> m = svm_train(prob, param)
>>> p_label, p_acc, p_val = svm_predict(y, x, m)
Ahora entiendo que y es una lista de categorías que están asociadas con los diccionarios en x. También entiendo la parte svm_train.
La parte que no tiene sentido es que en svm_predict, debo proporcionar los ''valores verdaderos'' de y, junto con los datos de prueba en x. Pensé que la idea era que no sabía las clasificaciones de los datos de prueba antes de tiempo.
si mis datos de entrenamiento son:
y = [1, 2, 3]
x = [{1:1}, {1:10}, {1:20}]
pero mis datos de prueba son:
z = [{1:4}, {1:12}, {1:19}]
Entonces, ¿por qué debo pasar los valores verdaderos de z a svm_predict () como:
a, b, c = svm_predict(y, z, m)
No voy a saber los verdaderos valores de z, para eso es la predicción. ¿Debo simplemente poner valores de clasificación arbitrarios para y cuando realizo una predicción, o me falta algo por completo?
Gracias a todos