- Autonomous DatabaseサーバーレスでのOracle Spatial AIの使用
- 空間AIを使用するためのユースケースの確認
- 空間クラスタリングのユースケース・シナリオ
- 後処理ステップの実行
後処理ステップの実行
モデルをトレーニングしたら、次の後処理ステップを実行します:
- トレーニング済モデルをデータストアに格納して、後で使用し、モデルの再トレーニングを回避します。
次のコードに示すように、
oml.ds.save
関数を使用して、データストアの名前と名前/オブジェクトのペアを指定します:oml.ds.save({'lisa_model': lisa_model}, 'spatial_ai_ds', description='Hotspot Clustering for Median Income', overwrite=True) print(oml.ds.dir())
データストアのディレクトリから最近作成したものを特定します。
datastore_name ... description 0 agglomerative_ds ... 1 dbscan_accidents_ds ... 2 sai_regressor_ds ... some description 3 spatial ... None 4 spatial_ai_ds ... Hotspot Clustering for Median Income 5 spatial_error_ds ... some description [6 rows x 5 columns]
- データストアからモデルをロードします。
oml.ds.load
関数を使用して、データストアの名前と、トレーニング済モデルを含むPythonオブジェクトの名前を指定して、データストアからモデルをロードします。ds_objs = oml.ds.load('spatial_ai_ds', objs=['lisa_model'], to_globals=False) lisa_model_loaded = ds_objs['lisa_model'] print(lisa_model_loaded._labels[:10])
トレーニング済クラスタリング・モデルをデータストアからロードした後、
_labels
プロパティを使用して各観測に割り当てられているラベルを取得します。 前述のコードは、最初の10個の観測からラベルを出力します:[ 2 2 1 1 1 1 1 -1 -1 -1]
- トレーニング済モデルをデータストアからロードし、トレーニング・データに割り当てられたラベルを返すユーザー定義Python関数(UDF)を作成および格納します。
UDFは、
oml.script.create
を使用してOMLに登録されます。udf = """def get_lisa_labels_(): import oml ds_objs = oml.ds.load('spatial_ai_ds', objs=['lisa_model'], to_globals=False) lisa_model = ds_objs['lisa_model'] return lisa_model._labels.tolist()""" oml.script.create("lisaLabels", udf, is_global=True, overwrite=True)
- SQLを使用してPython UDFを実行します。
次のコードでは、
pyqEval
を使用して、SQLでPython UDFlisaLabels
を実行します。select * from table(pyqEval( par_lst => '{}', out_fmt => 'JSON', scr_name => 'lisaLabels' ) );
レスポンスは、クラスタリング・アルゴリズムによってすべての観測に割り当てられるラベルです。 簡潔にするために、次の出力には最初の10個のラベルのみが表示されます。
[2,2,1,1,1,1,1,-1,-1,-1,â¦]