【Coursera機械学習】week7の課題のまとめと勉強したことのメモ

coursera

これまでは、ニューラルネットワークについて勉強してきましたが、第7週目からはサポートベクターマシン(SVM)に関する講義でした。

この課題では、ガウスカーネルにより、非線形にデータを分割するSVMについて考えます。

課題1:gaussianKernel

ガウスカーネルは以下の式で定義されます。

\( K_{gaussian}(x^{(i)},x^{(j)}) = exp(-\frac{\sum_{k=1}^n(x_k^{(i)} – x_k^{(j)})^2}{2\sigma^2}) \)

これをoctaveで書くと以下のようになります。

このガウスカーネルにより以下のような境界線を引くことができます。

課題2:dataset3Params

この課題ではCとsigmaをそれぞれ[0.01, 0.03, 0.1, 0.3, 1, 3, 10, 30]の8通り、つまり、64通りのCとsigmaの組み合わせの中から最適なパラメータを見つけるプログラムを作成します。

  1. Cとsigmaの組み合わせを変えたTrainモデルを作成
  2. 学習済みモデルでXvalを入力し予測
  3. エラーを求める
  4. 最小のエラーのときのCとsigmaの値を保存

という流れでプロブラムを書いています。

求めたCとsigmaの組み合わせで境界線を引くと以下のようになります。

課題3:processEmail

課題3からはスパムメールの分類に取り組みます。

課題で実装する分は、 処理済みのメールに含まれるvocabulary listの単語のインデックスを配列に格納するところです。

課題4:emailFeatures

この課題では、対応する数値のところを1に置き換えた1899×1の入力データを準備します。

タイトルとURLをコピーしました