最初のステップは、分類モデルの情報源であるデータセットの準備です。
データセットは以下で構成されています。
この事例のデータは、列数(変数の数)が6個、行数(インスタンスの数)が25個です。
変数は以下のものです。
入力
- 濃度1(空気/ガス比=0.799ml: 0.201ml)における測定周波数[Hz]
- 濃度2(空気/ガス比=0.700ml: 0.300ml)における測定周波数[Hz]
- 濃度3(空気/ガス比=0.600ml: 0.400ml)における測定周波数[Hz]
- 濃度4(空気/ガス比=0.501ml: 0.499ml)における測定周波数[Hz]
- 濃度5(空気/ガス比=0.400ml: 0.600ml)における測定周波数[Hz]
ターゲット
- クラス(1-オクタノール、1-プロパノール、2-ブタノール、2-プロパノール、1-イソブタノール)
初めの5つの入力が、各アルコールが5パターンの異なる濃度でセンサーを通過した際の測定周波数です。
もともとの水晶振動子の共振周波数との差を表すため、負の値をとります。
ニューラルネットワークが扱うのは、あくまで数値だということに注意が必要です。
そのためカテゴリカルな"クラス"変数は、以下のように5つの数値的な変数に変換されます。
- 1-オクタノール: 1 0 0 0 0
- 1-プロパノール: 0 1 0 0 0
- 2-ブタノール: 0 0 1 0 0
- 2-プロパノール: 0 0 0 1 0
- 1-イソブタノール: 0 0 0 0 1
このデータセットを、訓練用、テスト用に分割します。
それぞれがインスタンス全体の60%(15個)、40%(10個)を含むようランダムに分けます。
データセットの設定が済むと、変数の分布を計算できます。
次の図は、各インスタンスをアルコールの種類ごとに分けた円グラフです。
見ての通り、5種類のアルコールが同じ数だけデータに含まれていることが分かります。
また、入力とターゲットとの相関を調べることで、どの入力が最も予測に影響を与えるかの示唆を得られることがあります。
この例では、どの入力もターゲットであるクラスと強く相関していることが上の図から分かります。