<< libsvm_loadmodel utilities libsvm_partest >>

libsvm >> utilities > libsvm_normalize

libsvm_normalize

scale the input data for correct learning

Calling Sequence

[scaled_instance,scaled_parameters] = libsvm_normalize(instance);
[scaled_instance,scaled_parameters] = libsvm_normalize(instance,[meanV,stdV]);

[scaled_instance] = libsvm_normalize(instance,scaled_parameters);

[scaled_instance,scaled_parameters,scaled_label,scaled_label_parameters] = libsvm_normalize(instance,[meanV,stdV],label,[label_mean, label_std]);

Description

Scaling before applying SVM is very important in order to avoid several numerical problems! Each feature row in the instance matrix has be scaled indepented from the other features.

It is important to scale the testing data with the same scale as the training data! Scale your data. For example, scale each attribute to a mean of 0 and a standard deviation of 1.

Examples

[label,instance]=libsvmread(fullfile(libsvm_getpath(),"demos","heart_scale"));
[scaled_instance,scaled_parameters] = libsvm_normalize(instance,[0,1]);
cc = libsvm_svmtrain(label,scaled_instance);
[predicted_label,accuracy]=libsvm_svmpredict(label,libsvm_normalize(instance,scaled_parameters),cc);
disp("accuracy: "+string(accuracy(1))+" %");

See also

Authors


Report an issue
<< libsvm_loadmodel utilities libsvm_partest >>