10
8

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.

【2020/4月更新】 【やってみた】編 ~ Watson Studioに新しく搭載された機械学習の自動化機能「AutoAI」

Last updated at Posted at 2019-06-05

:newspaper: 誰でもAIモデルが作れる! Watson Studioに新しく搭載された機械学習の自動化機能「AutoAI」をザクっとご紹介しますの続きです。(長くなるので記事を分割しました)

:pencil: (2019/12月) Relationship Mapなど機能強化に伴い一部の画面コピーを取り直しました。
:pencil: (2020/04月) モデルの生成数が4->8に増えたのに伴い、一部の画面コピーを取り直しました。

やってみた

シナリオ

前述のYoutube動画やCognos Analyticsのデモ等でよく使われる顧客離反の実績データ(customer_churn.csv)を使って予測モデルを作り、顧客のサービス解約の可能性を予測します。
image

image
上記のようなデータで、"CHURN"の値(TかFか)を予測する二値予測問題です。
:warning: 記事を読むだけでなく実際に実行される場合は、上記のCSVデータをお手元にダウンロードしておいてください。

はじめに

image

  • 任意のプロジェクトで「Add to Project」-「AutoAI Experiment」をクリック

image

  • Nameに任意の名前を入力し、利用するWatson Machine Learningのインスタンスを選択して「Create」ボタン

入力データを指定

image

  • browse」リンクでダウンロード済みのcsvファイルを指定します

image

  • 「DataSource」欄にCSVファイルの名前が表示されます
  • 右側に「Select column to predict(予測したいカラムを選択)」が表示されるので「CHURN」を選択します
  • CHURN」を選択すると自動的に「PREDICTION TYPE(予測の種類)」は「Binary Classification(二値分類)」がセットされ、「OPTIMIZED METRIC(最適化の指標)」は「ROC AUC(Area under an Curve)」にセットされます
  • Run experiment」ボタンを押します

image

  • 処理の進行につれてRelationShip Mapが逐次、ダイナミックに更新されていきます。

image

  • ビューを切り替えるとProgress Mapもみられます。トレーニングの進行状況を見るのに便利です。

モデルの評価

image

  • 完了しました。今回のデータではトレーニングに11分かかりました。
  • パネルの下部にモデルの精度が表示されています。
  • view details」のリンクからモデルの詳細情報を参照できます

View Details

※解く問題の種類により表示される内容は若干違います。当ケースは二値分類の場合の例です。

基礎的な性能指標
image

混同行列(二値分類なので)
image

PR曲線
image

モデルの基本情報
image

特徴量変換の内訳(こういうのを自動でやってくれるの、楽ですね)
image

それぞれの特徴量の重要度
image

モデルの保管とデプロイ

モデルを保管してWMLにデプロイする手順はModel BuilderやSPSS Modelerなどと同じです。

image

  • 「Save as model」でモデルを保管します

image

  • 任意の名前を指定して「Save]

image

  • saveされました
  • View in project」のリンクをクリック

image

  • Deployments」タブ-「Add Deployments」をクリック

image

  • 任意の名前を入力して「Save」

image

  • Statusが「ready」になったらWMLへのデプロイは成功しています
  • サービスの名前のリンクをクリック

モデルのテスト

:pencil:(2019/08/06) What's Newによると2019/07/19付でテストでフォームが使えるようになりました。今まではJSON形式の要求をベタで渡す必要がありましたが、楽になりました。
image

以下はJSON形式の場合です。

image

  • 「Test」タブ
  • 「Enter input data」欄にjsonの形式で要求ぺイロードを記載します
  • 「Predict」ボタン
  • 右側にレスポンス(判定結果)が返ります
request
{"input_data":[{
        "fields": ["ID","Gender","Status","Children","Est Income","Car Owner","Age","LongDistance","International","Local,Dropped","Paymethod","LocalBilltype","LongDistanceBilltype","Usage,RatePlan"],
        "values": [[1,"F","S",1,38000,"N",24.393333,23.56,0,206.08,0,"CC","Budget","Intnl_discount",229.64,3]]
}]}
  • 要求のJSONのレイアウトはマニュアルのココに書いてありますが、要は下記の感じです
request
{"input_data":[{
        "fields": ["名前1","名前2",..."名前N"],
        "values": [[1,2,...値N]]
}]}
  • JSON中にターゲット=予測対象=当ケースでは「"CHURN"」のカラムとデータは存在してはいけません。(それを予測するのですから当然ですが)
  • ターゲット以外は省略できません。存在しないなら明示的にnullという値を渡す必要があります
OKの書き方
{"input_data": [{
    "fields":["ID","Gender","Status","Children","Est Income","Car Owner","Age","LongDistance","International","Local","Dropped","Paymethod","LocalBilltype","LongDistanceBilltype","Usage","RatePlan"],
    "values":[[null,"F",null,null,null,null,null,null,null,null,null,null,null,null,null,null]]}]
}
NGの書き方
{"input_data": [{
    "fields":["Gender"],
    "values":[["F"]]}]
}

(ご参考) モデル作成時に指定可能なオプション

発表当初はデフォルト決め打ちでしたが、2019/12月現在、デフォルトの設定を変更できるようになってます。
image

【データソース】
image

  • サンプリング、データのスプリット方法、含めるカラム(デフォルトは全部)

【予測】
image

  • 予測手法、Trueの値、重視すべき指標

【一般】
image

  • 手法の明細など。今は参照のみで変更できません。

以上です!(簡単すぎる。。)

:clipboard: 改定履歴

初版から記述を追加/変更した箇所には:pencil:マークを付けておきますね。

日付 変更内容
1.0 2019-06-05 初版公開
1.1 2019-08-06 テストでFormが使えるようになった点を追記
1.2 2020-04-09 一部画面コピーの取り直し
10
8
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
10
8

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?