※ ChatGPTを利用し、要約された質問です(原文:MATLABでSVMのプログラミングについて)
MATLABでSVMのプログラミングについて
このQ&Aのポイント
MATLABでSVMのプログラミングについて質問しています。
SVMのサンプルコード(MATLAB)を読んでいますが、和訳はできてもそれぞれが何のために行われているのかイメージできず困っています。
SVMという分類器を使う前に、分類前のデータを扱い易い尺度の世界にいれる下準備なのかなぁ、と想像していますが、なぜ平均が0で分散が1の正規分布なのか、なぜそれを2倍したり、マイナスにした世界を用意しているのかわかりません。
SVMのサンプルコード(MATLAB)を読んでいますが、和訳はできてもそれぞれが何のために行われているのかイメージできず困っています。
=====================================
X1 = randn(2, num1) + 2*ones(2, num1);
X2 = randn(2, num2) - 2*ones(2, num2);
X = [X1, X2];
=====================================
の意味は、
====================================
X1=平均が0で分散が1の正規分布の2行10列の乱数行列と、全ての要素がプラス2の2行10列の行列を加算した結果。
X2=平均が0で分散が1の正規分布の2行10列の乱数行列と、全ての要素がマイナス2の2行10列の行列を加算した結果。
X=X1とX2の正規分布を内包した世界。
=====================================
SVMという分類器を使う前に、分類前のデータを扱い易い尺度の世界にいれる下準備なのかなぁ、と想像していますが、
なぜ平均が0で分散が1の正規分布なのか、なぜそれを2倍したり、マイナスにした世界を用意しているのかわかりません。(これはたまたまこのコードでそう設定しているだけで、平均や分散の値は変更してかまわないのでしょうか。もしそうであれば、どういうデータを分類する場合により大きな分散にするべきでしょうか。)
正規分布の世界は平均とSD値で完全に記述でき、また異なる正規分布のXとYに、ある重みづけをしてもやはり正規分布に従う、という性質がありますが、それとこのSVMでの冒頭処理はどう関連付けられるのでしょうか。
統計、行列、ベクトルの知識が足りないのだなと実感し勉強中ですが、困っています。
すみませんが、ぜひヒントか勉強するべきポイントを教えていただけると助かります。
どうぞよろしくお願い致します。
お礼
sheep555様 懇切丁寧な説明をありがとうございました。 画像つきの回答をいただけて、本当によく理解できました。 いただいたアドバイスに従い、これからは数式の和訳ではなく、まずその数式が表現している世界を描いてみるように致します。 教えていただけて本当に助かりました。 ありがとうございました!