私は現在、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))
しかし、テストデータを正しくスケーリングする方法がわかりません。
ご助力ありがとうございます。