Sé que LIBSVM solo permite una clasificación uno contra uno cuando se trata de SVM multi-clase. Sin embargo, me gustaría modificarlo un poco para realizar una clasificación de uno contra todos. He intentado realizar one-against-all a continuación. ¿Es este el enfoque correcto?Multi-Class SVM (uno contra todos)
El código:
TrainLabel;TrainVec;TestVec;TestLaBel;
u=unique(TrainLabel);
N=length(u);
if(N>2)
itr=1;
classes=0;
while((classes~=1)&&(itr<=length(u)))
c1=(TrainLabel==u(itr));
newClass=c1;
model = svmtrain(TrainLabel, TrainVec, '-c 1 -g 0.00154');
[predict_label, accuracy, dec_values] = svmpredict(TestLabel, TestVec, model);
itr=itr+1;
end
itr=itr-1;
end
que podría haber hecho algunos errores. Me gustaría escuchar algunos comentarios. Gracias.
Segunda parte: Como dijo: Necesito hacer Sum-pooling (o votar como una solución simplificada) para llegar a la respuesta final. No estoy seguro de cómo hacerlo. Necesito ayuda en eso; Vi el archivo de Python, pero todavía no estoy muy seguro. Necesito algo de ayuda.
¿Cuál es la pregunta exactamente? ¿Estás preguntando cómo realizar una clasificación uno contra todos con LibSVM? ¿El programa genera el resultado esperado? Por cierto, los parámetros de LibSVM deberían ser ''-c 1 -g 0.00153'' (le faltaba la comilla simple final). – grapeot
He editado la pregunta ... – lakesh
@lakesh: He publicado una respuesta a una pregunta similar, puede que encuentre útil: http://stackoverflow.com/a/9049808/97160 – Amro