PythonとTensorFlowでブーストツリー(Boosted Trees)を使う方法
TensorFlowはブーストツリー(Boosted Trees)と組み合わせて使用することで、データセットに対する予測性能を向上させることができます。データの読み込みや前処理は通常どおり行いますが、予測の段階では複数のモデルを使って予測を実行し、それらすべての出力を統合して最終的な結果を導き出すのが特徴です。
関連記事
TensorFlowとは何か?KerasがTensorFlowと連携してニューラルネットワークを構築する仕組みについても、あわせてご覧ください。
本記事では、KerasのSequential APIを使用します。このAPIは、各レイヤーが1つの入力テンソルと1つの出力テンソルを持つ、シンプルなレイヤーの積み重ねからなる逐次モデルを構築するのに適しています。
また、畳み込みニューラルネットワーク(CNN)を利用すれば、少なくとも1つの層を含むネットワーク構造を持つ学習モデルを構築することも可能です。
以下のコードはGoogle Colaboratory上で実行しています。Google Colab(Colaboratory)はブラウザ上で直接Pythonコードを実行できる環境であり、事前の設定が一切不要で、GPU(グラフィックス処理装置)にも無料でアクセスできます。ColaboratoryはJupyter Notebookをベースに構築されています。
ここでは、決定木とtf.estimator APIを使って勾配ブースティングモデルを訓練する方法を紹介します。ブーストツリーモデルは、回帰問題と分類問題の双方において、最も人気が高く効果的な機械学習手法の一つとされています。これはアンサンブル学習の一種であり、多数(数十〜数百、場合によっては数千)の決定木モデルによる予測を組み合わせることで精度を高めます。ハイパーパラメータの調整を最小限に抑えながら、優れたパフォーマンスを実現できる点が大きな魅力です。
コード例
import numpy as np
import pandas as pd
from IPython.display import clear_output
from matplotlib import pyplot as plt
print("Load the dataset")
dftrain = pd.read_csv('https://storage.googleapis.com/tf-datasets/titanic/train.csv')
dfeval = pd.read_csv('https://storage.googleapis.com/tf-datasets/titanic/eval.csv')
print("Delete the column 'survived'")
y_train = dftrain.pop('survived')
y_eval = dfeval.pop('survived')
import tensorflow as tf
tf.random.set_seed(123)コード引用元:https://www.tensorflow.org/tutorials/estimator/boosted_trees
出力
Load the dataset Delete the column 'survived'
解説
- 必要なパッケージをインポートします。
- Titanicのデータセットを読み込みます。
- データはCSVファイルとして読み取られます。
- 目的変数である「survived」列を削除し、訓練用・評価用それぞれのラベルとして分離します。
-
Kerasで新しいコールバックを使ってモデルをトレーニングする方法【Python入門】
TensorFlowとKerasとはTensorFlowは、Googleが提供する機械学習フレームワークです。オープンソースとして公開されており、Pythonと組み合わせて使用することで、アルゴリズムの実装やディープラーニングアプリケーションの開発など、幅広い用途に活用できます。研究目的から本番環境まで対応しており、複雑な数値計算を高速に実行するための最適化技術も備えています。Windowsに「tensorflow」パッケージをインストールするには、以下のコマンドを実行します。pip install tensorflowテンソル(Tensor)は、TensorFlowで使われる基本的なデータ構
-
PythonとTensorFlowで2つの行列を乗算する方法を解説
TensorFlowは、Googleが提供する機械学習フレームワークです。オープンソースとして公開されており、Pythonと組み合わせてアルゴリズムやディープラーニングアプリケーションなどを実装するために利用されています。研究用途から本番運用まで幅広く使われており、複雑な数学的演算を高速に処理できる最適化技術を備えているのが特長です。 その理由の一つは、NumPyと多次元配列を基盤としている点にあります。この多次元配列は「テンソル」と呼ばれます。TensorFlowは深層ニューラルネットワークの構築をサポートし、高いスケーラビリティを持ち、人気のデータセットが多数付属しています。また、GPUに