現在、MATLABバージョンのLIBSVMサポートベクターマシンを使用してデータを分類しています。 LIBSVMのマニュアルには、SVMを適用する前のスケーリングは非常に重要であり、トレーニングとテストの両方のデータをスケーリングするために同じ方法を使用しなければならないことに言及しています。LIBSVMのテストデータのスケーリング:MATLABの実装
「同じスケーリングの方法」は、 と説明されています。たとえば、トレーニングデータの最初の属性を[-10, +10]
から[-1, +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))
:試験データの最初の属性は範囲[-11, +8]
にある場合は、以下のMATLABコードを使用して行うことができ[0,1]
の範囲でトレーニングデータをスケーリング[-1.1, +0.8]
にテストデータをスケーリングする必要がありますしかし、テストデータを正しくスケールする方法はわかりません。
ありがとうございました。
私の質問はif範囲[0,1]に正規化された[a、b]の範囲のデータを訓練し、[c、d] – Lily