0
1

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?

More than 3 years have passed since last update.

Autonomous DatabaseのAutoMLにCommonLit Readability Prizeを試してみる

Posted at

Oracle Cloud Infrastructure (OCI) で無料で使用可能なAutonomous Database (Autonomous Data Warehouse) を使用して、KaggleコンペのCommonLit Readability PrizeをAutoMLに試してみるのが目的です。
(以下の記述はAutonomous Data Warehouseがすでに作成されていることが前提条件です。)

Autonomous Data Warehouse ML のユーザ作成

Autonomous Data Warehouseの管理者ADMINは既存していますが、後で使用したい「Oracle Machine Learningノートブック」には管理者ADMINだと一部機能制限があります。管理者以外のユーザを作成しておく必要があります。
※ADMINは機能制限でAutoMLを使用できません。

「Oracle MLユーザーの管理」をクリックします。
image.png

ユーザ情報を入力し、「作成」ボタンをクリックします。
image.png

作成したMLユーザが「データベースアクション」にアクセスできるように設定します。(データのインポートのため必要)

「データベース・アクション」をクリックします。
image.png

管理者ADMINでログインします。

「SQL」をクリックします。
image.png

下記SQLを実行します。

BEGIN
   ORDS_ADMIN.ENABLE_SCHEMA(
     p_enabled => TRUE,
     p_schema => 'AUTOML',
     p_url_mapping_type => 'BASE_PATH',
     p_url_mapping_pattern => 'automl',
     p_auto_rest_auth => TRUE
   );
   COMMIT;
END;

image.png

Kaggleデータのインポート

Kaggleからtrain.csvとtest.csvをダウンロードし、管理者ADMINでデータをインポートします。(上で作成したAUTOMLユーザでCSVインポートしたい場合は権限付与が必要)

train.csvを取り込みます。
image.png
image.png

同様にtest.csvも取り込みます。
image.png

Oracle Machine Learning AutoML UIでモデル作成とデプロイ

「Oracle Machine Learningノートブック」をクリックします。
image.png

AUTOMLユーザでログインします。

「AutoML」をクリックします。
image.png

必要な情報を入力し、「開始」ボタンをクリックします。
image.png

処理完了すると画面右上に「完了」と表示されます。
完了するとアルゴリズムごとの精度が表示されます。
image.png

モデル名をクリックすると、項目が影響が大きい順で表示されます。
ただ今回は項目1つのみです。
image.png

モデルを選んで、「デプロイ」をクリックします。
image.png

必要な情報を入力し、「OK」をクリックします。
image.png

image.png

デプロイが完了すると、REST APIでモデルを呼出すことが可能になります。

ノートブックの作成と結果予測

アルゴリズムを選択し、「ノートブックの作成」をクリックします。
image.png
image.png

「ノートブック」をクリックします。
image.png

ノートブック名をクリックすると、AutoMLで選択したアルゴリズムがPythonコードに変換されていることを確認できます。
image.png

TESTテーブルのデータを読込み、結果予測するには以下のコードを最後に追加します。

%python
import oml

column = '"EXCERPT"'
schema='"AUTOML"'
table='"TEST"'

query = 'SELECT ' + column + ' FROM ' + schema + '.' + table + ' ORDER BY ID '

data_test = oml.sync(query=query)
result = svm_mod.predict(data_test)['PREDICTION'].pull()
print(result)

予測結果は以下を得られましたが、一様な値となってしまい予測がうまくできていないことがわかります。
タイタニックデータセットではそれなりのスコアが出ていますが、こちらの自然言語処理はうまくいかないことがわかりました。
今度は Oracle Machine Learning AutoML UIで機械学習してタイタニック号の生存者を予測
image.png

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

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?