Python
 Computer >> コンピューター >  >> プログラミング >> Python

TensorFlowのEstimatorとPythonを使ってタイタニックデータセットを検査する方法

タイタニックデータセットは、TensorFlowとEstimatorを組み合わせることで検査できます。具体的には、データセットの特徴量(フィーチャー)を反復処理してリスト形式に変換し、その結果をコンソールに表示します。

関連記事: TensorFlowとは何か?KerasとTensorFlowを連携させてニューラルネットワークを構築する方法

本記事では、KerasのSequential APIを使用します。これは、各層がちょうど1つの入力テンソルと1つの出力テンソルを持つ、シンプルな層のスタックで構成される逐次モデルを構築するのに適したAPIです。

また、Google Colaboratoryを使用してコードを実行します。Google Colab(Colaboratory)はブラウザ上でPythonコードを実行できる環境であり、事前の設定が一切不要で、GPU(グラフィックス処理装置)にも無料でアクセスできます。ColaboratoryはJupyter Notebookをベースに構築されています。

Estimatorとは何か

Estimatorは、TensorFlowにおける完全なモデルの高レベルな抽象化です。容易なスケーリングと非同期学習のために設計されており、モデルの構築・評価・推論のプロセスを簡素化します。

ここでは、tf.estimator APIを使用してロジスティック回帰モデルを学習させます。このモデルは、他のアルゴリズムと比較するためのベースラインとして機能します。使用するのはタイタニックデータセットで、性別、年齢、乗船クラスなどの特徴量をもとに、乗客が生存したかどうかを予測することを目標とします。

特徴量カラム(feature columns)の役割

Estimatorは「特徴量カラム」を使用して、モデルが生の入力特徴量をどのように解釈するかを記述します。Estimatorは数値の入力ベクトルを期待するため、特徴量カラムは、データセット内の各特徴量をモデルがどのように変換すべきかを定義する役割を果たします。効果的なモデルを学習させるためには、適切な特徴量カラムの組み合わせを選択することが非常に重要です。

コード例

print("データセットを検査しています")
ds = make_input_fn(dftrain, y_train, batch_size=10)()
for feature_batch, label_batch in ds.take(1):
    print('特徴量キーの一部:', list(feature_batch.keys()))
    print()
    print('クラスのバッチ:', feature_batch['class'].numpy())
    print()
    print('ラベルのバッチ:', label_batch.numpy())

コード出典:https://www.tensorflow.org/tutorials/estimator/linear

出力結果

データセットを検査しています
特徴量キーの一部: ['sex', 'age', 'n_siblings_spouses', 'parch', 'fare', 'class', 'deck', 'embark_town', 'alone']
クラスのバッチ: [b'First' b'First' b'First' b'Third' b'Third' b'Third' b'First' b'Third'
b'Second' b'Third']
ラベルのバッチ: [0 1 1 0 0 0 1 0 0 0]

解説

  • まず、タイタニックデータセットを読み込み、検査を行います。
  • データセットの最初のバッチを反復処理することで、特徴量キーの一覧、乗船クラス(class)の値、そして生存を示すラベル(0=死亡、1=生存)がコンソールに表示されます。
  • 出力から、sex(性別)、age(年齢)、fare(運賃)、class(乗船クラス)、deck(デッキ)、embark_town(乗船港)、alone(同行者の有無)など、9種類の特徴量が含まれていることが確認できます。
  • このようにバッチ単位でデータの中身を確認することは、前処理や特徴量エンジニアリングを行う前の重要なステップとなります。
  1. PythonとKerasを使ってモデル全体を保存・再利用する方法を徹底解説

    TensorFlowとKerasとはTensorFlowは、Googleが提供する機械学習フレームワークです。オープンソースとして公開されており、Pythonと組み合わせて使用することで、各種アルゴリズムやディープラーニングアプリケーションの実装が可能になります。研究用途から本番環境まで幅広く活用されています。KerasはPythonで書かれたディープラーニングAPIです。高水準APIとして設計されており、生産性の高いインターフェースによって機械学習の問題を効率的に解決できます。TensorFlowフレームワーク上で動作し、素早い実験・試行を支援するために開発されました。高いスケーラビリティと

  2. Kerasを使ってPythonでモデルをプロットする方法をわかりやすく解説

    TensorFlowとはTensorFlowは、Googleが提供している機械学習フレームワークです。オープンソースとして公開されており、Pythonと組み合わせて使用することで、アルゴリズムの実装やディープラーニングアプリケーションの開発など、幅広い用途に活用できます。研究目的から本番環境での運用まで対応しており、複雑な数値計算を高速に実行するための最適化技術が数多く組み込まれています。TensorFlowにおける「テンソル(Tensor)」は、データを扱うための基本的なデータ構造です。テンソルは多次元配列(またはリスト)であり、データフローグラフと呼ばれる計算グラフのノード同士をエッジでつ