Bayesツールの中身を見てみるAlteryx『カスタマーストーリー』を支えるツール特集2017年07月19日じょんすみす(130)5この記事は公開されてから1年以上経過しています。情報が古い可能性がありますので、ご注意ください。こんにちは、小澤です。Alteryxでは、一部のマクロで実装されたツールの中身をみることができます。これによって、Predictive系など複雑な処理を行っているツールが何をしているのかを確認することが可能です。Bayesツールがどのように実装されているのかを見てみましょう。マクロの中身を表示する方法マクロの中身を確認する方法は簡単です。上部のツール一覧か、ワークフロー上に配置されたツールを右クリックするとマクロを開くための項目が用意されています。これを選択することで、マクロのワークフローが表示されます。開いてみると、複雑そうには見えますが普通のワークフローと同様の方法で実装されている様子が確認できるかと思います。Bayesツールの入出力を確認するさて、ではこのワークフローの中身を確認して...の前にまずはこのツールがどのような入出力が必要なのか確認しておきます。ワークフローは以下のようになります。Bayesのモデル作成テストデータでスコアを出力と、よくある流れになっています。スムージングのパラメータグラフィックに関する設定インチ/センチ高さ/幅dpiとなっています。出力は、学習したモデルと以下のようなレポート出力の2つとなっています。Bayesツールの中身を確認してみましょう。ワークフロー全体を表示すると、以下のようによくわからないことになります。大まかに分けて、上部のインターフェスツールと下部の実装部分に分かれています。インターフェース部分は、さらにパラメータに関する設定と、グラフィックに関する設定の2つに分かれています。このワークフローを順に見ていきましょう。Selectツールまでの部分です。マクロの入力は2つのインターフェースツールに繋がっています。Inputツールに接続されることで、実際のデータから選択肢となる項目が決定されています。続いて、上下のSelectツールに分かれています。DownツールとActionツールで接続されています。Actionツールの設定は以下のようになっており、Selectツールで選択する項目を目的変数のみにしていることがわかります。下側の2つのSelectツールはそれぞれActionツールを経由して以下のように接続されています。左側はActionツールの設定で説明変数として選択されたカラムのみに絞っています。Messageツールに接続され、説明変数が選択されていない場合はエラーになるようになっています。そこから接続されている右側のSelectツールでは以下のようにXMLをFomulaで書き換えています。Fomulaの具体的な内容は以下のようになっており、目的変数として選択されているものは、説明変数からは外すような処理を行っています。続いてのJoinツールでは、上下2つのデータを位置で結合しています。これによって、必要な変数のみが選択された状態かつ、目的変数が一番左側にある状態になります。Selectツールで利用可能な型のデータのみに絞り込んでいます。Rツールを使ったモデリング続いて、Rツールの部分を見ていきます。説明変数の取得とエラーチェックをしています。")続いて、スムージングの値と、モデル名を取得しています。validName('%Question.model.name%')ここで、「%Question.xxx%」の形式でインターフェースツールで設定された値を取得しています。Downツールに対応しており、マクロ利用時インターフェースにおけるモデル名とスムージングのパラメータに対応しています。Qestionの後に続く、「laplace.val」や「model.name」はツールのAnnotationかワークフローの設定で行うことができます。続いて、実行するnaiveBayes関数を文字列として作成して、eval関数で実行しています。command.string))その後、モデルの中に様々な値を追加しています。valその後は、レポート出力に必要な値を組み立てて、1に出力しています。この部分は、一見複雑そうに見えますが、それほど処理として難しいことをしているわけではないため、出力例と合わせて見ていただけると雰囲気がつかめるかと思います。3)最後にグラフを2に出力してRツールで行っていることは終了です。graphWHR関数はAlteryxで定義されている、インチやセンチなど指定されている情報のみを取得する関数となっています。plotmoモデルの出力Rツールで生成したもののうち、モデルはそのまま出力するのみとなります。レポート出力の組み立て(テキスト部分)次にレポート出力を作成する部分を見ていきます。こちらは、まずテキスト部分から見ていきましょう。最初のFomulaツールでは、出力1のうち、grpがconfusionのものと、そうでないものに分かれています。上部はconfusion以外のものとなっており、出力結果における以下の部分を作成します。Tabツールでデータを横持ちに変換しています。これによって、fomulaツールによってconfusionを除いた1の出力結果が以下のように変形されます。Textツールでこれらの値をカラム名を指定して、レポートのテキスト部分に埋め込んでいきます。その後、Selectツールでこのレポート出力のみを残して、元の情報を持つカラムを削除します。最後にFomulaツールでDescriptionの項目を追加して完了となります。続いては、confusionの部分ですが、見慣れないツールが登場します。Rowsツールという名前のようで、内部はマクロになっているのですが、通常のツール一覧には表示されません。「DEPLICATED」と書かれているので、あまり後悔したくないタイプのツールなのではないかと思われます。そのため、内部の詳細には立ち入らず、入出力でどんなことができるツールなのかを見る程度に止めておきます。出力この入出力からもわかる通り、カラム名も含めて「|(パイプ)」で区切られているものをそれぞれの列に展開するツールのようです。Textツールでレポートの形式に体裁を整えています。最後に、Unionツールで先ほどのテキスト部分と結合することで1つにまとめています。レポート出力の組み立て(グラフ部分)さて、このマクロ最後の部分はレポートのグラフ部分の組み立てとなります。言っても特に難しい処理はありません。IDツールとFomulaツールで一意なIDを設定しています。Textツールで作成した説明文を付け足しておしまいです。最後に全体をUnionでまとめ上げて、レポート部分の出力にしています。これを知って何になるか?さて、これでマクロ内の動きを一通り確認することが出来ました。機械学習系のツールはものによって微妙な違いはあるものの、どれもほぼ似たような流れになります。それ以外のツールでもここまでの流れが追えれば、問題なく内容を確認することが可能かと思います。その答えは主に2つあるかと思います。1つ目は、似たようなマクロを作成する際に参考になるという部分です。利用したいけどAlteryxのツールとしては実装されていない手法などがある際には、既存のツールのような作りを参考にすることでその場限りではなく、汎用的に使えるツールにする際に参考になるかと思います。2つ目は、既存のツールの挙動を変更したい時にそれが可能になることです。レポート出力する内容を変更しい、といったことがあった場合にもツールの流れがわかっていれば、似たようなツールを一から作り直すのではなく、既存のものを一部変更して別名で保存してしまうだけで済みます。この他にも、ワークフロー作成のテクニック的な部分を学ぶこともできるかもしれません。Bayesツールの実態がどのようになっているのかを解説しました。少々難しいないようになってしまったかもしれませんが、今すぐではなくても将来的に自分でマクロを作りたいといった要望が出た際などに参考になるかと思います。ACEの人やってます。機械学習をしたりHadoopをいじったりしてるエンジニア。リモート】クラスメソッドの会社説明会を開催しますクラスメソッドでは、AWS・AI・ビッグデータ・モバイルなどの技術職や営業のメンバーとして一緒にお仕事をする仲間を大募集しています。#cmdevio新型コロナウイルスの感染拡大を受け、本イベントを延期させていただくことになりました(開催時期未定)。お申し込みいただいた皆様には大変申し訳ございませんが、何卒ご理解いただけますようよろしくお願いいたします。AWSについてライトに色んな情報交換をしましょう。カフェ店長のオカノです。今日はオフィスに用があるので、通勤ラッシュを避けて出社しました。この子は新メンバーのさめくんです。在宅勤務が推奨されているのでオフィスが閑散としており、すこしさみしそうです。本が出ていたので読んでみたところよかったので紹介させていただきます。使いたいときの注意点を書きました。新井成一64最近Sphinxつかってドキュメントを書いてるのですがなかなかイケています。臼田佳祐295ワークフロー自動化OSSのn8nをAWS環境で建てて検証してみました。非常に期待できるサービスです。Fargateの勉強をしています。使ってみたい方は参考にしてください。洋介255SnowflakeがAWSの東京リージョン上で稼働するようになりました。データを日本に置けます。芳賀健232こんにちは!猫様の忠実なるしもべ、芳賀健です。Tokyoで開催されました。カフェ店長のオカノです。クラスメソッド株式会社が運営するAWS・iOS・HTML5に関する技術情報サイトです。