我目前使用MATLAB版本的LIBSVM支持向量機來分類我的數據。 LIBSVM文檔提到在應用SVM之前進行縮放非常重要,我們必須使用相同的方法來調整訓練和測試數據。縮放LIBSVM的測試數據:MATLAB實現
「縮放的相同方法」解釋爲: 例如,假設我們將訓練數據的第一個屬性從[-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))
但我不知道如何正確擴展測試數據。
非常感謝您的幫助。
我的問題是,如果訓練數據範圍[a,b]歸一化到範圍[0,1],測試數據範圍[c,d]歸一化到哪個範圍? – Lily 2012-04-07 17:39:31