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

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

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

※OCIアカウントの作り方、ADBの作り方、OMLユーザの作り方等は[【OCI未経験でも】OML NotebooksでPythonを書き始める](https://qiita.com/yuki_coffee/items/e59eb9683e3762b51faf)の記事に記載しております。

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

**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](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/705638/7e98b405-6ecc-8a1b-65c1-67ee3dd4d4cd.png)


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

![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/705638/11221737-3919-94eb-d82f-1340791b1173.png)


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

![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/705638/926749df-f9d2-9804-890d-ef35399033bd.png)


##OMLユーザでサインイン
![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/705638/a8642636-0749-0aef-45a3-3458d3b86e20.png)


##データツールの「データ・ロード」をクリック
![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/705638/71497039-71d4-d800-ce8b-00bf612aecd2.png)


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

![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/705638/67205bf3-7a50-2e8f-ff2e-61f5387033f7.png)


##画面中央の「ファイルの選択」をクリック
![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/705638/9951772a-0289-b00d-551b-528b9075125b.png)


##weatherAUS.csvがソースにあることを確認し「緑の実行ボタン」をクリック
![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/705638/8369d968-684c-d339-9fc3-e17a42711006.png)


##データロードを実行中…
![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/705638/579d8c4f-49b3-c680-0446-0a269eefab8a.png)

##実行終了を示す緑のチェックマークを確認後、画面右下の「完了」をクリック
![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/705638/cf7f2b4d-43ee-52b0-9a84-b4c1fd17c72d.png)


##ADW詳細画面に戻り、「サービス・コンソール」をクリック
![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/705638/95e27088-cc8f-9c72-0963-ff4328282b97.png)


##サービスコンソール画面左の「開発」をクリック
![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/705638/0c031c7d-e9e8-bba5-84f8-f9aacee78602.png)


##サービスコンソール開発タブ内の、「Oracle Machine Learningノートブック」をクリック
![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/705638/180d48aa-6081-cab3-6f5f-f8751c0db606.png)


##OMLユーザでサインイン
![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/705638/de7afe8b-377a-5f18-d136-e56ba92fb005.png)


##クイックアクションの「AutoML」をクリック
![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/705638/4c5511ca-bf6b-9159-641a-78bf81971dbe.png)


##AutoML実験ページの左側の「+作成」をクリック
![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/705638/400333de-d71f-9768-fc85-445b91c18150.png)


##実験の作成ページで「名前」を入力
![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/705638/56e974d0-b82e-39d6-a2d8-b4a909fd6f48.png)


##実験の作成ページで「名前」を入力後、「データ・ソース」をクリック
![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/705638/d8bec4e7-16c4-f8ef-4f68-ddc3b1186241.png)


##表の選択で、「OML」スキーマにロードした「WEATHERAUS」を選択、「OK」をクリック
![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/705638/0b4eed2f-d5ad-5340-307f-a752d28550d4.png)


##データ・ソース選択後、「予測ターゲット」の選択をする
![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/705638/99f7a7f8-986b-fd91-21bb-0b7e995bb2b3.png)


##WEATHERAUSのデータでは、「RAINTOMORROW」を選択
![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/705638/1a743eca-9d2c-ed75-2d93-bf560102e17d.png)


##予測タイプは、自動で分類か回帰か決定(クリックして手動で選ぶことも可能です)
![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/705638/9a3ae565-2baf-5bce-2ae4-48b85460994d.png)


##画面下の特徴で「チェックボックス」をクリックで各特徴量の有効無効切り替えが可能
![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/705638/c44caaae-e5a4-73ed-9694-e54b929aaf0f.png)


##画面右上の「開始」をクリック後、「より良い精度」で実行
![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/705638/39517aaf-7b60-8b4d-9ad3-2274795842c5.png)


##AutoMLを実行中…
![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/705638/2c1e46c8-46df-6ab7-06af-3c69212fb359.png)


##精度進捗やリーダー・ボードが表示され、画面右上で実行進捗状態の確認可能に
![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/705638/18bf06db-0d00-50d0-c5f5-e4adf1b4bcd4.png)


##実行中…①
![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/705638/23aa2fb4-a9b3-ebac-3e0a-6a277dfe2c29.png)


##実行中…②
![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/705638/6fd83771-ce9e-f774-9387-a2efecc4bd91.png)


##実行が完了し、リーダー・ボードには、精度で上位5つのアルゴリズムが表示されている
![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/705638/f8898cba-056d-17e8-19f0-d59c93bd66f5.png)


##画面下の特徴で各特徴量の重要度が表示されている
![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/705638/c5d2d018-2231-877b-eac5-6635c780ea36.png)

#モデルデプロイ

##作成されたモデルの内1つを選択して、「デプロイ」をクリック
![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/705638/b15502d4-e896-b884-80ef-cde1acafc780.png)


##必要項目を入力し、「OK」をクリック
![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/705638/6880097a-b2d9-1755-7983-44084e783092.png)


##デプロイ後、画面左上のハンバーガメニュの「モデル」をクリック
![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/705638/a11ccf04-596d-9696-5340-395f84e1dc3b.png)


##モデルページにて、「デプロイメント」をクリック
![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/705638/62ee0665-99db-e837-bfbf-de2d339b2137.png)


##先ほどデプロイしたモデルが表示されていることを確認
![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/705638/4cc01728-c5cb-085e-792f-a3c86d8118e4.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](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/705638/18364f64-142c-05f0-c082-f963bdcc723f.png)

![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/705638/ad0777da-2f3c-a9bf-3467-51117ccd1fa1.png)

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

![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/705638/86acb91e-972d-8b55-a083-1f8b75507c76.png)

![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/705638/8e453794-5124-6175-9e4c-2bb74ecdd0b7.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](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/705638/f392b960-1b8e-283e-dc7a-6a7048d02c89.png)


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

![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/705638/84788560-88b1-4dff-061a-f1f2267056fe.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](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/705638/8c39c934-a677-61c5-91bb-f904897d7939.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](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/705638/9afcfa9c-e4d7-fe40-e778-ba4c7b4e9744.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](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/705638/59dddefc-3ab3-8546-3f75-d745ed5ea9ee.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](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/705638/adf34532-dfcc-7fd7-359f-d1cbdec6fd52.png)

```
export token=‘token’
```


##デプロイしたaus_1の詳細情報をGETしてみる
![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/705638/d1688196-609d-5000-3546-da62ef622d65.png)

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

##デプロイしたaus_1の詳細情報でattributeを見てみる
![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/705638/f98f88e4-b25b-5534-8e5d-0f7038495531.png)


##モデルに予測させてみる
![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/705638/71d084c0-91a6-292a-02ae-e30fba956574.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](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/705638/610ef857-81e4-b63c-e6ac-c6f7fa9f212e.png)


##値を変えて、モデルに予測させてみる
![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/705638/1bfd7210-0d59-cc68-9648-37bd0ff05969.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](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/705638/606501dc-f89e-696d-b2cc-d32015cd2abe.png)

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

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

![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/705638/1a8e27f7-8f80-4f88-912e-d1b1c263dea3.png)


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

![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/705638/fa392886-00a0-c4ab-0797-f8bc9e544fd7.png)


##画面上部で、ノートブックが作成されたことを確認後、左上のハンバーガメニューをクリック
![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/705638/e2d19252-054b-727f-fac1-b049d73c9017.png)


##ハンバーガメニューの「ノートブック」をクリック
![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/705638/44453297-006f-1c50-e710-ffa4bb7fd9b2.png)


##ノートブックの画面で、先ほど作成した「AUS Weather」をクリック
![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/705638/16cc62a3-c7a3-64d7-1fb4-87bddb0575fd.png)


##モデルをエキスポートして新規作成したノートブック「AUS Weather」の中身①
![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/705638/f9ca0b16-45bf-5255-68f1-9b1bf4b75f90.png)


##モデルをエキスポートして新規作成したノートブック「AUS Weather」の中身②
![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/705638/72e8e472-3882-b51e-7d20-9145d09f6c42.png)

##