【解説】TensorFlowのDNNモデルでAuto MPGデータセットのMPG値を予測する方法
TensorFlowはGoogleが提供するオープンソースの機械学習フレームワークです。Pythonと組み合わせて使用され、アルゴリズムの実装やディープラーニングアプリケーションの開発など、幅広い用途に活用されています。研究目的から本番環境での運用まで対応しており、現在多くのAI開発現場で採用されている標準的なフレームワークの一つです。
TensorFlowにおける基本データ構造は「テンソル(Tensor)」です。テンソルとは多次元配列またはリストのことであり、「データフローグラフ」と呼ばれる計算グラフの各エッジ(辺)をつなぐ役割を果たします。
Windows環境では、以下のコマンドでtensorflowパッケージをインストールできます。
pip install tensorflow
回帰問題とは
回帰問題の目的は、価格や確率、「雨が降るかどうか」といった連続変数または離散変数の出力値を予測することです。分類問題がカテゴリへの振り分けを行うのに対し、回帰は具体的な数値そのものを推定する点が特徴です。
Auto MPGデータセットについて
本記事で使用するのは「Auto MPG」データセットです。このデータセットには、1970年代〜1980年代の自動車の燃費効率(MPG:1ガロンあたりの走行マイル数)が記録されており、重量、馬力、排気量などの属性情報が含まれています。これらの属性をもとに、特定の車両の燃費効率を予測することが目標となります。
実行環境:Google Colaboratory
以下のコードはGoogle Colaboratory(Google Colab)上で実行しています。Google Colabはブラウザ上で直接Pythonコードを実行できるサービスで、面倒な環境構築が不要なうえ、GPU(Graphics Processing Unit)にも無料でアクセス可能です。ColaboratoryはJupyter Notebookをベースに構築されています。
コード例
print("Model is being built and compiled")
dnn_model = build_compile_model(normalizer)
print("The statistical summary is displayed ")
dnn_model.summary()
print("The data is being fit to the model")
history = dnn_model.fit(
train_features, train_labels,
validation_split=0.2,
verbose=0, epochs=100)
print("The error versus epoch is visualized")
plot_loss(history)
print("The predictions are being evaluated")
test_results['dnn_model'] = dnn_model.evaluate(test_features, test_labels, verbose=0)
pd.DataFrame(test_results, index=['Mean absolute error [MPG]']).T
コード引用元:https://www.tensorflow.org/tutorials/keras/regression
出力結果
実行すると、まずモデルの概要(各層の構成とパラメータ数)が表示され、続いて学習過程におけるエポック数と損失(誤差)の関係を示したグラフが出力されます。最後に、テストデータに対する評価結果として平均絶対誤差(MAE)がDataFrame形式で表示されます。
コードの解説
- モデルの構築とコンパイル:build_compile_model関数により、正規化層(normalizer)を含むDNNモデルが構築・コンパイルされます。
- モデル概要の表示:summary関数を使うことで、レイヤーごとの出力形状やパラメータ数といった統計情報を確認できます。
- モデルの学習:fitメソッドにより、訓練データ(train_features、train_labels)を使ってモデルを学習させます。validation_split=0.2は訓練データの20%を検証用に確保することを、epochs=100は全データを100回繰り返し学習することを意味します。
- 学習曲線の可視化:plot_loss関数によって、エポック数の増加に伴う予測誤差の推移がグラフとして描画され、過学習や未学習の兆候を目視で確認できます。
- モデルの評価:evaluateメソッドでテストデータに対する性能を測定し、その結果(平均絶対誤差 [MPG])をpandasのDataFrameにまとめて表示します。
- DNNの優位性:単純な線形回帰モデルと比較して、DNNは非線形な関係性も捉えられるため、より高い予測精度を実現できます。
-
TensorFlowとAuto MPGデータセットで自動車の燃費(MPG)を予測する方法
TensorFlowはGoogleが提供する機械学習フレームワークです。オープンソースとして公開されており、Pythonと組み合わせてアルゴリズムやディープラーニングアプリケーションなどを実装できます。研究用途から本番環境まで幅広く利用され、複雑な数値計算を高速に実行するための最適化技術を備えています。これはTensorFlowがNumPyと多次元配列を基盤としているためです。この多次元配列は「テンソル」と呼ばれます。フレームワークはディープニューラルネットワークの構築をサポートしており、高いスケーラビリティを持ち、多くの人気データセットが同梱されています。GPU演算を活用し、リソース管理を自
-
TensorFlowとAuto MPGデータセットでデータを分割・検査し、自動車の燃費を予測する方法
TensorFlowとは TensorFlowは、Googleが提供する機械学習フレームワークです。オープンソースとして公開されており、Pythonと組み合わせてアルゴリズムやディープラーニングアプリケーションなどを実装するために広く使われています。研究用途から本番環境まで幅広く活用されており、複雑な数学的演算を高速に実行するための最適化技術を備えているのが特徴です。これは内部でNumPyと多次元配列を利用しているためで、この多次元配列は「テンソル(tensor)」と呼ばれます。 TensorFlowは深層ニューラルネットワークの構築をサポートしており、高いスケーラビリティを持つほか、多くの