最初のステップは、近似モデルの情報源であるデータセットの準備です。
データセットは以下で構成されています。
この例では、変数(列)の数は12で、インスタンス(行)の数は7385です。
次の12個の変数があります。
入力
- 車体のタイプ
- エンジンの大きさ[L]
- シリンダーの数
- トランスミッション(Automatic, Automated manual, Automatic with select shift, Continuously variable, Manual)
- 燃料の種類(レギュラー, ハイオク, 軽油, エタノールE85, 天然ガス)
ターゲット
- CO2排出量(市街地と高速道路を組み合わせた走行時)[g/km]
未使用
- 調査対象のカーブランド
- 車のモデル名
- 市街地での燃費[L/100km]
- 高速道路の燃費[L/100km]
- 複合燃費(市街地55%, 高速道路45%)[L/100km]
- 複合燃費(市街地55%, 高速道路45%)[m/gal]
また、"車体のタイプ"には多くのカテゴリー変数が含まれているため分析するには少し問題があることがわかりました。
しかし、さらに調べてみると、この変数を含む場合よりも含まない場合の方が最終的な検証誤差が高いことがわかりました。
ニューラルネットワークの主な目的の1つは、検証誤差をできるだけ少なくすることなので、"車体のタイプ"も入力として扱います。
他にも"未使用"にしておくべき変数があります。それは、"燃費(市街地、高速道路、複合全て)"の変数です。
これらの入力は研究の対象になり得ますが(CO2と燃費は互いに依存しています)、最終的な出力としてCO2排出量を見た方が視覚的に分かりやすいでしょう。
このデータセットをランダムに分割し、それぞれ60%、20%、20%のインスタンスを含む訓練用、検証用、テスト用のサブセットとします。
具体的には、訓練用に4431個、検証用に1477個、テスト用に1477個のインスタンスを使用しました。
すべてのデータセット情報が設定されたら、データの品質を確認するためにいくつかの分析を行います。
例えば、データの分布を計算することができます。
次の図は、対象となる変数(CO2排出量)のヒストグラムを示しています。
この図を見ると、CO2排出量は正規分布に従っていることがわかります。
実際、CO2排出量の中央値が先ほどの制限値を下回っている車がたくさんあります。
一方で今回の調査では、CO2排出量が非常に多く現在では運転できないような車が全体の0.108%存在していることがわかります。
次の図のように、入力とターゲットの相関関係を表すこともできます。
これにより、様々な入力がCO2排出量に与える影響を確認することができます。
上のグラフは、いくつかの入力がCO2排出量に重要な依存性を持っていることを示しています。
例えば、"engine_size: エンジンの大きさ"と"cylinders: シリンダーの数"は、CO2排出量と正の相関があります。
一方で、排出量と負の相関を持つ入力もあります。
また例えば、CO2排出量とエンジンの大きさを比較した散布図を作成することもできます。
一般的に、エンジンが大きくなればなるほど排出量も多くなります。
ただし、CO2排出量はすべての入力に同時に依存します。