В настоящее время я использую версию MATLAB для векторной машины LIBSVM для классификации моих данных. В документации LIBSVM упоминается, что масштабирование перед применением SVM очень важно, и мы должны использовать тот же метод для масштабирования как данных обучения, так и тестирования.
"Тот же метод масштабирования" объясняется следующим образом:
Например, предположим, что мы масштабировали первый атрибут данных обучения от [-10, +10]
до [-1, +1]
. Если первый атрибут данных тестирования находится в диапазоне [-11, +8]
, мы должны масштабировать данные тестирования до [-1.1, +0.8]
Масштабирование обучающих данных в диапазоне [0,1]
может быть выполнено с использованием следующего кода 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))
Но я не знаю, как правильно масштабировать данные тестирования.
Большое спасибо за вашу помощь.