【发布时间】:2012-04-20 18:35:27
【问题描述】:
我目前使用 MATLAB 版本的 LIBSVM 支持向量机来分类我的数据。 LIBSVM 文档提到,在应用 SVM 之前进行缩放非常重要,我们必须使用相同的方法来缩放训练和测试数据。
“相同的缩放方法”解释为:
例如,假设我们将训练数据的第一个属性从[-10, +10] 缩放到[-1, +1]。如果测试数据的第一个属性在[-11, +8]范围内,我们必须将测试数据缩放到[-1.1, +0.8]
可以使用以下 MATLAB 代码在 [0,1] 范围内缩放训练数据:
(data - repmat(min(data,[],1),size(data,1),1))*spdiags(1./(max(data,[],1)-min(data,[],1))',0,size(data,2),size(data,2))
但我不知道如何正确缩放测试数据。
非常感谢您的帮助。
【问题讨论】:
-
我的问题是,如果 [a,b] 范围内的训练数据归一化到 [0,1] 范围内,那么 [c,d] 范围内的测试数据归一化到哪个范围?
标签: matlab testing input scaling libsvm