В настоящее время я использую версию 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))
Но я не знаю, как правильно масштабировать данные тестирования.
Большое спасибо за помощь.