Pages: [1]
  Print  
Author Topic: LibSVM and normalization  (Read 4938 times)
Username
Newbie
*
Posts: 39


« on: June 13, 2008, 11:43:04 AM »

Hi,

does the LibSVM learner normalize the example values internally or must I apply the Normalizaion operator?

Thanks
Logged
Sebastian Land
Administrator
Hero Member
*****
Posts: 2421


« Reply #1 on: June 16, 2008, 01:29:51 PM »

Hi,
I don't think that the LibSVM will normalize the values internally. As far as I know, there are no reasons to do that. But if you want to go for sure: Run the LibSVM one time without previous normalization and one time with it. By comparing the model you should be able to find differences if there are one.
If you try, I would appreciate if you could report the results here, since I'm a little bit curious, too Smiley


Greetings,
   Sebastian
Logged

Hope to see you at RapidMiner Community Meeting and Conference (RCOMM 2011) in Dublin from June 7-10, 2011.
The Call for Paper is online now!
More information at http://www.rcomm2011.org
Username
Newbie
*
Posts: 39


« Reply #2 on: June 16, 2008, 04:17:12 PM »

My program isn't finished yet, so I can't tell you any results soon but I found this section in the LibSVM tutorial:

Quote
Scaling them before applying SVM is very important. (Sarle 1997, Part 2 of Neural
Networks FAQ) explains why we scale data while using Neural Networks, and most
of considerations also apply to SVM.
The main advantage is to avoid attributes in greater numeric ranges dominate
those in smaller numeric ranges. Another advantage is to avoid numerical diffculties
during the calculation. Because kernel values usually depend on the inner products of
feature vectors, e.g. the linear kernel and the polynomial kernel, large attribute values
might cause numerical problems. We recommend linearly scaling each attribute to
the range [-1; +1] or [0; 1].
Of course we have to use the same method to scale testing data before testing. For
example, suppose that we scaled the rst attribute of training data from [-10; +10]
to [-1; +1]. If the rst attribute of testing data is lying in the range [-11; +8], we
must scale the testing data to [-1:1; +0:8].

http://www.csie.ntu.edu.tw/~cjlin/papers/guide/guide.pdf

So, I will use normalization before applying the LibSVM learner.  Smiley

Is there something like a "NormalizationModel" to get the same normalized values for trainig and test examples?
« Last Edit: June 16, 2008, 04:23:04 PM by Username » Logged
Tobias Malbrecht
Global Moderator
Sr. Member
*****
Posts: 291



WWW
« Reply #3 on: June 16, 2008, 06:22:43 PM »

Hi,

Is there something like a "NormalizationModel" to get the same normalized values for trainig and test examples?

This should be possible by applying the operator Normalization with enabling the parameter return_preprocessing_model on the training data. This means, a preprocessing model is generated by normalizing the training which you can subsequently apply on the test data as well. The normalization is then done on the test data via the same transformation as applied on the training data. Therefore you have to apply this model using the ModelApplier.

Regards,
Tobias
Logged

Tobias Malbrecht
Rapid-I GmbH
radgomu6
Newbie
*
Posts: 2


« Reply #4 on: March 23, 2012, 06:33:57 AM »

You told about using Normalization operator. What is that? I'm a beginner. Is that available in Matlab? If so, how to access it?

Hi,

This should be possible by applying the operator Normalization with enabling the parameter return_preprocessing_model on the training data. This means, a preprocessing model is generated by normalizing the training which you can subsequently apply on the test data as well. The normalization is then done on the test data via the same transformation as applied on the training data. Therefore you have to apply this model using the ModelApplier.

Regards,
Tobias
Logged
Pages: [1]
  Print  
 
Jump to: