小ネタ:AI Builderの二項分類で Trick or Treat を判断する

かなり日がたってしまいましたが、PowerApps で Halloween challenge というのが勃発的に起こっていたので、10/1にGAとなった AI Builder でちょっと遊んでみました。

個人情報をもとに「Trick」か「Treat」を判断する二項分類モデルを作る

前準備:1,000名分のダミーデータを作成する

  • ダミーデータはこちらで作成した疑似個人情報をベースにします。氏名、年齢、性別、住所などを含むデータを出力できます。
    • このサイトではrand()によって各レコードにランダムな値を振れるので、1-100の間でランダムな数字を振るようにし、1,000件分のダミーデータを出力しました。
  • 出力されたデータに対してToT列を追加し、ランダム値が素数であればToT列をYes、そうでなければNoというデータを付加します。
  • ダミーデータを元にエンティティを作成します。

AI Builder:モデルをビルドする

  • Build は3ステップ
  • まず初めに、どのフィールドの予測を得たいかを設定します。
  • 次に、予測を得るために参考とするフィールドを選択します。
  • モデルをビルドします。
  • そこそこのパフォーマンスになっていることを確認して、モデルを公開します。

Canvas App:データの入力と結果の出力用アプリを作成する

適当な感じにキャンバスアプリを作成します。

「Challenge!」ボタンを押すと、CDSのエンティティにレコードを追加し、前述の二項分類モデルを利用して「ToT」フィールドに「Yes/No」値を格納し、その結果に応じて Trick or Treat する仕組みです。
実際に値を見てみると、ちゃんと予測結果が入っています(crb91_tot – predicted (Trick or Treat Model) の列)。

CDSに格納した予測結果を元に、「いたずら」か「お菓子」かを表示します。

AI Builder:予測結果

今回は前述の通り「randで降った乱数が素数の場合はTrick(いたずら)」という関係性を定義した上で「AI Builder(Binary Classification) の判定値からは外す」ということを行ったので、AIちゃんからしてみると賢明に対象項目から関連を探して予測を返していることになります。
モデルの情報を見ると、本来の関連性がない状況で、数値が入る項目を頼りに予測していることがわかります(Add4, Birthday)。

かんたんなまとめ

AI Builder は、エンドユーザーが気軽にAIの機能を使えるようになる点においては素晴らしい機能だと思います。ただし利用に際しては個別のライセンスが必要になるので、ご購入されているプランに応じてご確認ください。個人的には早くFormが日本語対応しないかなーと思っています!