機械翻訳について

後処理ステップの実行

モデルをトレーニングしたら、次の後処理ステップを実行します:
  1. トレーニング済モデルをデータストアに格納して、後で使用し、モデルの再トレーニングを回避します。

    次のコードに示すように、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]
  2. データストアからモデルをロードします。

    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]
  3. トレーニング済モデルをデータストアからロードし、トレーニング・データに割り当てられたラベルを返すユーザー定義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)
  4. SQLを使用してPython UDFを実行します。

    次のコードでは、pyqEvalを使用して、SQLでPython UDF lisaLabelsを実行します。

    select *  
        from table(pyqEval(
            par_lst => '{}', 
            out_fmt => 'JSON',  
            scr_name => 'lisaLabels'  
        )  
    );

    レスポンスは、クラスタリング・アルゴリズムによってすべての観測に割り当てられるラベルです。 簡潔にするために、次の出力には最初の10個のラベルのみが表示されます。

    [2,2,1,1,1,1,1,-1,-1,-1,…]