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を使用できません。
作成したMLユーザが「データベースアクション」にアクセスできるように設定します。(データのインポートのため必要)
管理者ADMINでログインします。
下記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;
Kaggleデータのインポート
Kaggleからtrain.csvとtest.csvをダウンロードし、管理者ADMINでデータをインポートします。(上で作成したAUTOMLユーザでCSVインポートしたい場合は権限付与が必要)
Oracle Machine Learning AutoML UIでモデル作成とデプロイ
「Oracle Machine Learningノートブック」をクリックします。
AUTOMLユーザでログインします。
処理完了すると画面右上に「完了」と表示されます。
完了するとアルゴリズムごとの精度が表示されます。
モデル名をクリックすると、項目が影響が大きい順で表示されます。
ただ今回は項目1つのみです。
デプロイが完了すると、REST APIでモデルを呼出すことが可能になります。
ノートブックの作成と結果予測
アルゴリズムを選択し、「ノートブックの作成」をクリックします。
ノートブック名をクリックすると、AutoMLで選択したアルゴリズムがPythonコードに変換されていることを確認できます。
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で機械学習してタイタニック号の生存者を予測