Actualmente utilizo la versión MATLAB de la máquina de vectores de soporte LIBSVM para clasificar mis datos. La documentación de LIBSVM menciona que la escala antes de aplicar SVM es muy importante y tenemos que usar el mismo método para escalar los datos de entrenamiento y prueba.escalando los datos de prueba para LIBSVM: implementación de MATLAB
El "mismo método de escalamiento" se explica como: Por ejemplo, supongamos que escaló el primer atributo de datos de entrenamiento de [-10, +10]
a [-1, +1]
. Si el primer atributo de los datos de prueba se encuentra en el rango [-11, +8]
, hay que escalar los datos de prueba para [-1.1, +0.8]
de escala los datos de entrenamiento en el rango de [0,1]
se puede hacer usando el siguiente código de MATLAB:
(data - repmat(min(data,[],1),size(data,1),1))*spdiags(1./(max(data,[],1)-min(data,[],1))',0,size(data,2),size(data,2))
Pero no sé cómo escalar los datos de prueba correctamente.
Muchas gracias por su ayuda.
mi pregunta es que si entrenar datos en el rango de [a, b] normalizados al rango [0,1], los datos de prueba en el rango de [c, d] normalizados a qué rango? – Lily