LoginSignup
8
1

More than 3 years have passed since last update.

OracleのAutoML UIで気軽に明日雨が降るか予測しよう

Last updated at Posted at 2021-04-21

Oracleの新製品AutoML UIを使って、クリックで簡単にモデル生成、デプロイ、RESTで呼び出すところまでやってみました。データセットは、Kaggleのオーストラリアの過去10年分の天候データから、次の日に雨が降るかどうかを予測するモデルを作ってみました。

番外編も用意しておりますので、最後までパラパラっと読み進めて下さいね。
今回も一緒に1ステップ1ステップ進めていける構成にしておりますので、是非楽しんで頂けたら嬉しいです!

※OCIアカウントの作り方、ADBの作り方、OMLユーザの作り方等は【OCI未経験でも】OML NotebooksでPythonを書き始めるの記事に記載しております。

今回の資料で使うデータの出典

Rain in Australia
Predict next-day rain in Australia
By Joe Young

https://www.kaggle.com/jsphyg/weather-dataset-rattle-package/metadata

・weatherAUS.csv(13.44 MB)をデバイスにダウンロード下さい

上記のデータのデータソースhttp://www.bom.gov.au/climate/data

OCIのAutoML UIでモデルを作る

OCIにログインする

image.png

ADBの詳細ページで、「ツール」をクリック

image.png

機械学習に必要なデータをロードするため、ツールタブの「データベース・アクション」クリック

image.png

OMLユーザでサインイン

image.png

データツールの「データ・ロード」をクリック

image.png

「データのロード」と「ローカル・ファイル」を選択し、「次」をクリック

image.png

画面中央の「ファイルの選択」をクリック

image.png

weatherAUS.csvがソースにあることを確認し「緑の実行ボタン」をクリック

image.png

データロードを実行中…

image.png

実行終了を示す緑のチェックマークを確認後、画面右下の「完了」をクリック

image.png

ADW詳細画面に戻り、「サービス・コンソール」をクリック

image.png

サービスコンソール画面左の「開発」をクリック

image.png

サービスコンソール開発タブ内の、「Oracle Machine Learningノートブック」をクリック

image.png

OMLユーザでサインイン

image.png

クイックアクションの「AutoML」をクリック

image.png

AutoML実験ページの左側の「+作成」をクリック

image.png

実験の作成ページで「名前」を入力

image.png

実験の作成ページで「名前」を入力後、「データ・ソース」をクリック

image.png

表の選択で、「OML」スキーマにロードした「WEATHERAUS」を選択、「OK」をクリック

image.png

データ・ソース選択後、「予測ターゲット」の選択をする

image.png

WEATHERAUSのデータでは、「RAINTOMORROW」を選択

image.png

予測タイプは、自動で分類か回帰か決定(クリックして手動で選ぶことも可能です)

image.png

画面下の特徴で「チェックボックス」をクリックで各特徴量の有効無効切り替えが可能

image.png

画面右上の「開始」をクリック後、「より良い精度」で実行

image.png

AutoMLを実行中…

image.png

精度進捗やリーダー・ボードが表示され、画面右上で実行進捗状態の確認可能に

image.png

実行中…①

image.png

実行中…②

image.png

実行が完了し、リーダー・ボードには、精度で上位5つのアルゴリズムが表示されている

image.png

画面下の特徴で各特徴量の重要度が表示されている

image.png

モデルデプロイ

作成されたモデルの内1つを選択して、「デプロイ」をクリック

image.png

必要項目を入力し、「OK」をクリック

image.png

デプロイ後、画面左上のハンバーガメニュの「モデル」をクリック

image.png

モデルページにて、「デプロイメント」をクリック

image.png

先ほどデプロイしたモデルが表示されていることを確認

image.png

デプロイしたモデルをRESTで呼ぶ

RESTで呼ぶ際に必要な6つの環境変数(1つ1つ見つけていきます):

① export omlserver=「ADBのURL」
② export tenant=「テナントのOCID」
③ export username=「OMLユーザのユーザ名」
④ export password=「OMLユーザのパスワード」
⑤ export database=「ADBのデータベース名」
⑥ export token=「認証トークン」

①環境変数omlserverには、ADBURLを入力 (次のどちらかの方法で見つけて下さい)

ADBURLの見つけ方 その1 – ADBのサービス・コンソールURLをコピー

image.png

image.png

ADBURLの見つけ方 その2 – ウォレットのtnsnames.oraから見つける

image.png

image.png

ADBURLが見つかりました

RESTで呼ぶ際に必要な6つの環境変数(1つ1つ見つけていきます):

① export omlserver=https://adb.ap-tokyo-1.oraclecloud.com
② export tenant=「テナントのOCID」←次!
③ export username=「OMLユーザのユーザ名」
④ export password=「OMLユーザのパスワード」
⑤ export database=「ADBのデータベース名」
⑥ export token=「認証トークン」

②環境変数tenant - OCIのトップ画面の右上の人型アイコンから、「テナンシ」をクリック

image.png

②環境変数tenant – テナンシ詳細ページのテナンシ情報にあるOCIDをコピー

image.png

環境変数tenantが見つかりました

RESTで呼ぶ際に必要な6つの環境変数(1つ1つ見つけていきます):

① export omlserver=https://adb.ap-tokyo-1.oraclecloud.com/
② export tenant=ocid1.tenancy.oc1..aaaaaaaaggaka7fbakfb22209fafnuahf73bhauillwouccx72faufdd
③ export username=「OMLユーザのユーザ名」←次!
④ export password=「OMLユーザのパスワード」
⑤ export database=「ADBのデータベース名」
⑥ export token=「認証トークン」

③環境変数usernameには、OMLユーザのユーザ名を入力

RESTで呼ぶ際に必要な6つの環境変数(1つ1つ見つけていきます):

① export omlserver=https://adb.ap-tokyo-1.oraclecloud.com/
② export tenant=ocid1.tenancy.oc1..aaaaaaaaggaka7fbakfb22209fafnuahf73bhauillwouccx72faufdd
③ export username=OML
④ export password=「OMLユーザのパスワード」←次!
⑤ export database=「ADBのデータベース名」
⑥ export token=「認証トークン」

④環境変数passwordには、OMLユーザのパスワードを入力

RESTで呼ぶ際に必要な6つの環境変数(1つ1つ見つけていきます):

① export omlserver=https://adb.ap-tokyo-1.oraclecloud.com/
② export tenant=ocid1.tenancy.oc1..aaaaaaaaggaka7fbakfb22209fafnuahf73bhauillwouccx72faufdd
③ export username=OML
④ export password=password
⑤ export database=「ADBのデータベース名」←次!
⑥ export token=「認証トークン」

⑤環境変数database - データベース名をコピー

image.png

RESTで呼ぶ際に必要な6つの環境変数(1つ1つ見つけていきます):

① export omlserver=https://adb.ap-tokyo-1.oraclecloud.com/
② export tenant=ocid1.tenancy.oc1..aaaaaaaaggaka7fbakfb22209fafnuahf73bhauillwouccx72faufdd
③ export username=OML
④ export password=password
⑤ export database=ATPoml
⑥ export token=「認証トークン」 ←次!

⑥環境変数tokenには、①〜⑤を使って手にいれた認証トークンを

RESTで呼ぶ際に必要な6つの環境変数(1つ1つ見つけていきます):

① export omlserver=https://adb.ap-tokyo-1.oraclecloud.com/
② export tenant=ocid1.tenancy.oc1..aaaaaaaaggaka7fbakfb22209fafnuahf73bhauillwouccx72faufdd
③ export username=OML
④ export password=password
⑤ export database=ATPoml

↓上記の環境変数を使って、手に入れる

⑥ export token=「認証トークン」

⑥環境変数token - ターミナルで①〜⑤の環境変数を追加

image.png

export omlserver=https://adb.ap-tokyo-1.oraclecloud.com
export tenant=ocid1.tenancy.oc1...................uca
export username=OML
export password=<password>
export database=ATPoml

⑥環境変数token - 認証トークンをCURLで手に入れる

image.png

curl -X POST --header 'Content-Type: application/json' --header 'Accept: application/json' -d 
'{"grant_type":"password", "username":"'${username}'", "password":"'${password}'"}' 
"${omlserver}/omlusers/tenants/${tenant}/databases/${database}/api/oauth2/v1/token"

⑥環境変数tokenに認証トークンを手に入れました(下準備完了)

① export omlserver=https://adb.ap-tokyo-1.oraclecloud.com/
② export tenant=ocid1.tenancy.oc1..aaaaaaaaggaka7fbakfb22209fafnuahf73bhauillwouccx72faufdd
③ export username=OML
④ export password=password
⑤ export database=ATPoml
⑥ export token=’eJhbGciOi......................EFA==‘

ターミナルで、環境変数tokenを追加

image.png

export token=‘token’

デプロイしたaus_1の詳細情報をGETしてみる

image.png

curl -X GET "${omlserver}/omlmod/v1/deployment/aus_1" \
--header "Authorization: Bearer $token" | jq

デプロイしたaus_1の詳細情報でattributeを見てみる

image.png

モデルに予測させてみる

image.png

curl -X POST "${omlserver}/omlmod/v1/deployment/aus_1/score" \
--header "Authorization: Bearer ${token}" \
--header 'Content-Type: application/json‘ \ -d 
'{"inputRecords":[{"HUMIDITY3PM":"30","LOCATION":"Albury",
"RAINFALL":"1","WINDGUSTSPEED":"30"}]}'| jq

明日雨が降るかどうか確率を出してくれている

image.png

値を変えて、モデルに予測させてみる

image.png

curl -X POST "${omlserver}/omlmod/v1/deployment/aus_1/score" \
--header "Authorization: Bearer ${token}" \
--header 'Content-Type: application/json‘ \ -d 
'{"inputRecords":[{"HUMIDITY3PM":"90","LOCATION":"Albury",
"RAINFALL":"30","WINDGUSTSPEED":"50"}]}'| jq

今度は、雨が降るであろう予測が返ってくる

image.png

番外編:AutoML UIで作ったモデルをOML Notebooksにエキスポートする

リーダー・ボードで単純ベイズの「モデル」を選択し、「ノートブックの作成」をクリック

image.png

新規作成する「ノートブックの名前」を入力し、「OK」をクリック

image.png

画面上部で、ノートブックが作成されたことを確認後、左上のハンバーガメニューをクリック

image.png

ハンバーガメニューの「ノートブック」をクリック

image.png

ノートブックの画面で、先ほど作成した「AUS Weather」をクリック

image.png

モデルをエキスポートして新規作成したノートブック「AUS Weather」の中身①

image.png

モデルをエキスポートして新規作成したノートブック「AUS Weather」の中身②

image.png

8
1
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
8
1