Audience Studio との連携#

AutoGluon Notebook では予測結果を格納したテーブルを Audience Studio の Master Segment の attribute_table に追加する作業をオプションを指定するだけで自動で行ってくれるため、大変便利である。ここでは、連携のための設定方法と Audience Studio 側での予測値の扱い方について説明する。使用するデータセットや WF などは Quick Start の2値分類のものをベースにしていく。

Master Segment の準備#

telco_churn テーブルを master_table に設定した “telco_churn” という名前の Master Segment を作成しておく。

_images/3-4-1-1.png

Fig. 14 Master Segment の設定#

WF の記述#

_export:
  ml:
    input_database: ml_datasets
    output_database: ml_results  

+gluon_train:
  ml_train>:
    notebook: gluon_train
    input_table: ${ml.input_database}.telco_churn_train
    target_column: churn
    model_name: churn_model
    time_limit: 10*60


+gluon_predict:
  ml_predict>:
    notebook: gluon_predict
    model_name: churn_model
    input_table: ${ml.input_database}.telco_churn_test
    output_table: ${ml.output_database}.telco_churn_predicted_as
    
    audience_name: telco_churn # Master Segment 名
    foreign_key: customerid    # master_table 側の key
    rowid_column: customerid   # attribute_table(input_table)側の key

Notebook#

'''
Add the prediction result as an attribute table of CDP master segment
'''
if audience_name is not None:
    assert foreign_key is not None, "foreign_key option is required when setting audience_name option"
    assert rowid_column is not None, "rowid_column option is required when setting audience_name option"
    attr_columns = [col for col in merged_df.columns if col != rowid_column]
    attr_aliases = [f"automl_{col}" for col in attr_columns]
    
    clog(f"💎 Add attributes `{','.join(attr_columns)}` in the output_table `{output_database}.{output_table}` to CDP master segment `{audience_name}`")

    cdp = CdpAudience()
    cdp.add_attribute(audience_name=audience_name, attr_db=output_database, attr_table=output_table, attr_columns=attr_columns, attr_aliases=attr_aliases, join_key=rowid_column, foreign_key=foreign_key, rerun_master_segment=True, replace_attr_if_exists=True)

attr_table への追加が完了すれば、以下のような出力を得ることができる。

+gluon_predict@2109220779:  💎 Add attributes `churn,predicted_proba,predicted_probabilities` in the output_table `ml_results.telco_churn_predicted_as` to CDP master segment `telco_churn`
ⓘ Successfully added an attribute table 'telco_churn_predicted_as' to master segment 472570
ⓘ Successfully triggered rerun of Master Segment: 472570

アウトプットテーブル#

audience_name を指定した場合には、アウトプットテーブルは、

  • rowid_column で指定したカラムと、

  • 予測結果のカラム(churn, predicted_proba, predicted_probabilities)

だけのカラムを持ったテーブルとなる。

customerid

churn

predicted_proba

predicted_probabilities

4629-NRXKX

Yes

0.5972924232

{“No”: 0.402708, “Yes”: 0.597292}

4510-HIMLV

Yes

0.7673046589

{“No”: 0.232695, “Yes”: 0.767305}

1432-FPAXX

No

0.3022913635

{“No”: 0.697709, “Yes”: 0.302291}

4365-MSDYN

No

0.1528982967

{“No”: 0.847102, “Yes”: 0.152898}

0565-JUPYD

No

0.09377645701

{“No”: 0.906224, “Yes”: 0.093776}

Audience Studio の確認#

実行完了後、Master Segment に attr_table が追加されているかを確認しよう。

_images/3-4-2-1.png

Fig. 15 Master Segment の確認。attribute_table が追加されている。また、同時に更新された Master Segment の更新も行われているので、ここで再度更新を行う必要はない。#

Audience Studio 内での活用#

_images/3-4-3-1.png

Fig. 16 Segment Editor では、予測結果のアトリビュートは “AutoML” という名でグルーピングされている。図のルールは、Yes と予測した上でその予測確率が 0.8 以上という確度の高いカスタマーに対するセグメントを作っている。#

_images/3-4-4-1.png

Fig. 17 逆に、No と予測した上でその確信度が 0.8 以上という確度の高いカスタマーに対するセグメントは、No の予測確率は (1 - predicted_proba) となるので predicted_proba が追加されているかを確認しよう 0.2 より小さいルールを作ることになる。#