メインコンテンツに移動

Excelでサポートベクターマシンを訓練する

このチュートリアルは、XLSTAT統計解析ソフトウェアを用いてExcel内でサポートベクターマシン(SVM:Support Vector Machine)分類器をセットアップして訓練することを支援します。

SVM 分類器を訓練するためのデータセット

このチュートリアルで使用するデータセットは、有名なKaggle データサイエンス・プラットフォーム の"Titanic(タイタニック): Machine Learning from Disaster" という機械学習コンペのデータです。

Titanicデータセットは、このアドレスでアクセスできるでしょう。 これは1912年のRMS タイタニック号の沈没に関するデータです。惨事の中、救命ボートの不足により、2,224人の乗客のうちの1,500人以上が命を失いました。

データセットは、1209人の乗客のリストで、下記の情報を伴います: - survived: Survival (0 = No; 1 = Yes)

  • pclass: Passenger Class (1 = 1st; 2 = 2nd; 3 = 3rd)
  • name: Name
  • sex: Gender (male; female)
  • age: Age
  • sibsp: Number of Siblings/Spouses Aboard
  • parch: Number of Parents/Children Aboard
  • fare: Passenger Fare
  • cabin: Cabin
  • embarked: Port of Embarkation (C = Cherbourg; Q = Queenstown; S = Southampton)

このチュートリアルの目的

このチュートリアルのゴールは、Titanic デーセットでSVM分類器をセットアップして訓練して、検証集合で分類器がどれだけ良く機能するかを確認する方法を学びます。

SVM 分類器のセットアップ

SVM分類器をセットアップするには、 下図のように機械学習/サポートベクターマシン をクリックします: ボタンをクリックすると、SVMダイアログ・ボックスが現れます。Excelシート上のデータを選択してください。

応答変数 フィールドでは、データを分類する際に予測したいバイナリ変数を選択します。我々の事例では、それは救命情報を与える列です。

また、下図のようにチェックボックスをクリックして、量的および質的説明変数を選択します。 量的 フィールドでは、以下のフィールドに対応する列を選択します: - age

  • sibsp
  • parch
  • fare

複数の列を選択するには、Ctrl キーを使用できます。

質的 フィールドでは、質的な情報を持つ列を選択します: - pclass

  • sex
  • embarked

表の上部に各変数の名前があるので、変数ラベル チェックボックスをチェックしなければなりません。

オプション タブでは、分類器パラメータをセットアップします。SMO パラメータでは、我々はデフォルト・オプションを使用します。 C フィールドは、正則化パラメータです。これは、最適化の際にどれだけ誤分類を許すかという意味で解釈されます。C の値が大きいほど、誤分類オブザベーションのそれぞれで強いペナルティを与えることを意味します。我々の事例では、 C の値を 1に設定します。

トレランス(許容度)パラメータは停止基準です。計算をスピードアップしたい場合は、トレランス・パラメータを上げるとよいです。我々は、ここで トレランスをデフォルト値にしておきます。

我々は、下図のように前処理フィールドで標準化を選択し、線形カーネルを使用します。 我々は分類器がどれだけよく機能するかを確認したいので、トレーニング標本から検証標本を抽出します。この目的のために、検証タブで検証チェックボックスをチェックして、下図に示すように、トレーニング標本から100 オブザベーションをランダム に抽出することを選択します。 最後に、出力タブで下図のように取得したいアウトプットを選択します: OKをクリックすると計算が始まります。 そして、結果が表示されます。

SVM分類器の結果の解釈

最初の表は、最適化されたSVM分類器の概要を表示します。下図でわかるように、分類器はクラス 0 と 1 を分類し、クラス 0 が陽性クラスとしてラベルづけされました。分類器を訓練するために943 個のオブザベーションが使用され、452 個のサポートベクターマシンが識別されました。 下に示す2番目の表は、452個のサポートベクターの全リストで、関連するアルファ係数の値と陽性と陰性の出力値を伴います。前の表のバイアス値とともに、この情報は、最適化された分類器を完全に記述するのに十分です。

次の表は、検証標本の両方からの結果の混同行列を表示します。この行列は、分類器がどれだけよく働いているかの指標を提供します。検証集合では78%の正解を得ました。

この表に続いて、下のグラフは検証標本でのROC曲線を示します。ROC 曲線は、さまざまな可能なしきい値での (1 – 特異度, 感度) のグラフィカルな表現です。

我々は、曲線が左上隅に近いことを望みます:

SVM 分類器に関する結論

我々は線形カーネルを用いて分類器を訓練し、78% の正分類で良い結果を得ました。kaggleのベスト・データサイエンティストに挑戦するにはもう少し調整が必要です。1つのアプローチは、カーネルの種類を変更することで、より高次元の空間が我々のデータセットでよく機能することがわかるでしょう。

この記事は役に立ちましたか?

  • ウイ
  • いいえ