LoginSignup
2
0

More than 1 year has passed since last update.

AutoML Tablesを自作データの予測で使ってみた

Last updated at Posted at 2021-06-07

はじめに

Google Cloud PlatformのAutoML Tablesで、手軽にデータの予測ができるようになりたい。
ということで試しに翌日の日経平均株価を予測してみました。この記事はその時のメモです。
過去5日分の日経平均株価から翌日の日経平均株価を予測してみます。

データ作成

次のサイトから過去10年分の日毎の日経平均株価を取得させていただきました。
https://www.macrotrends.net/2593/nikkei-225-index-historical-chart-data
トレーニング用のCSVデータは、エクセルで次のように作りました。

nikkei_225.csv
today,1ago,2ago,3ago,4ago,5ago
9547.79,9448.21,9514.44,9467.15,9449.46,9442.95
9574.32,9547.79,9448.21,9514.44,9467.15,9449.46
9411.28,9574.32,9547.79,9448.21,9514.44,9467.15
9351.4,9411.28,9574.32,9547.79,9448.21,9514.44
9354.32,9351.4,9411.28,9574.32,9547.79,9448.21
・・・(2437件のデータ)

1行目はタイトル行です。タイトル行は要るようです。
todayカラムが日々の株価で、これがターゲットカラムになります。nagoカラムがtodayのn日前の株価です。このデータから、5日前までの株価とtodayの株価の関係をモデル化するのが目標です。
2437行のデータがあります。注意点としまして、1000件未満のデータではエラーが出ます

インポート

Google Cloud Platformへログインします。
https://console.cloud.google.com/?hl=JA
ナビゲーションメニューから「Tables」>「データセット」、そして「新しいデータセット」ボタンを押します。

1.png
「新しいデータセットの作成」ダイアログに、適当なデータセット名を記入、「リージョン」は「グローバル」を選択、「データセットの作成」ボタンを押します。作成したデータセットの名前のところをクリックして、詳細ページに遷移します。

詳細ページ内の「インポート」タブの「パソコンからファイルをアップロードする」で、前節で作成したnikkei_225.csvを選択。「アップロード先のフォルダを選択してください。」の「BROWSE」ボタンを押して、右の「新しいパケットボタン」を押します。
2.png

「ロケーション」は「us-central1」を選択します。機械学習はus-centralでしか学習できないようで、学習させるデータが保存されているバケットのロケーションも、そのロケーションに合わせる必要があるとのことです。実際異なるとエラーが出ます。
3.png

パケット名をnikkei_dataにしました。それを「SELECT」します。
4.png
これまでの作業で、データは後述のCloud Storage上に保存されます。

トレーニング

次に「トレーニング」タブで、ターゲット列に「today」を選び、「予算」はとりあず1にしました。そしてモデルトレーニングのボタンを押します。
5.png

トレーニングは約30分かかりました。次がその結果です。モデルのサイズは531.804 MBでした。
6.png

テスト

テストデータは次のような形式です。トレーニングデータに比べて、ターゲットカラムのtodayがありません。株価が5日間このようになった後、翌日の株価(today)がいくらになるか予測しようとするものです。

nikkei_225_test.csv
1ago,2ago,3ago,4ago,5ago
29058.11,28946.14,28814.34,28860.08,29149.41

このテストデータnikkei_225_test.csvを、Cloud Strage上のパケットの中に置く必要があります。ナビゲーションメニューから「Cloud Storage」>「ブラウザ」を選び、とりあえず先に作成したnikkei_dataパケットの中にアップロードしました。

8.png

ナビゲーションメニューから「Tables」へ戻り、「テストと使用」タブ>「バッチ処理」タブで、「Cloud StorageのCSV」を選択、「BROWSE」ボタンを押し、右画面のパケットの中から先ほどアップロードしたテストデータnikkei_225_test.csvを選択、「SELECT」ボタンを押します。

9.png

続いて、結果ファイルの出力場所を設定します。「Cloud Storageパケット」を選び、「BROWSE」ボタンを押し、右に表示されるパケット「nikkei_data」を選択、「SELECT」ボタンを押します。最後に「バッチ予測を送信」ボタンを押します。

10.png

処理時間は約2分かかりました。結果を取得するのに、再度ナビゲーションメニューから「Cloud Storage」へ行き、nikkei_dataパケットの詳細ページへ行きますと、「prediction-」とついたフォルダが作られてますので、その中から結果のファイルをダウンロードします。

11.png

ダウンロードした結果ファイルが次になります。

prediction-nikkei_225_20210606072556-2021-06-06T12_31_57.785530Z_tables_1.csv
1ago,2ago,3ago,4ago,5ago,predicted_today
29058.11,28946.14,28814.34,28860.08,29149.41,29042.482421875

予測値29042.482421875円が得られました。実際のその時の株価ですが28941.52円です。どうなんでしょう。まあ前日から値上がりしていることは当たっているようです。

以上です。

その他

今回、テストは「バッチ予測」で行いましたが、「オンライン予測」という選択肢もあります。ただしオンライン予測を使用するには、クラウド上でモデルをデプロイする必要があります。そしてそのデプロイしたモデルをクラウド上に置くと1時間ごとに課金されるとのことです。

バッチ処理では、1件の予測に2分かかりましたが、ドキュメントによりますとオンライン予測では低レイテンシ(短い処理時間)とことこです。JSON形式のテストデータをcurlで送信して、結果をJSONで受け取ることができるとのことで、他のアプリケーションで利用できそうです。

2
0
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
2
0