Alteryxツールアイコン「複数フィールドビニングツール」(MultiFieldBinning Tool)をご紹介します
複数フィールドビニングツール(MultiFieldBinning Tool)
[準備]カテゴリの[複数フィールドビニング]ツールについて紹介します。概要
このツールは、数値フィールドに対してデータを設定した方法でグループ分け(タイル分け)します。タイルツールは一度に一つのフィールドしかタイルを作成できませんが、本ツールは一度にすべてのフィールドに対してタイルを作成することができます(その代わり、このツールは数値型しかタイル分けできません)。
また、本ツールは、レコード数を等しくするオプション、データ範囲を等間隔にする2つのオプションがあります。
レコード数を等しくするオプションの場合は、タイルツールを使ったマクロで作成されています。そのため、細かい仕様はタイルツールに依存します。
ビンは、ヒストグラムを作成する際によく使われるため、ヒストグラムを自分で描きたいときは本ツールが役に立ちます(データ調査カテゴリにもヒストグラムツールがありますが、Rのグラフのため自由度が少ないです)。
※本ツールはAlteryxマクロです
設定項目
設定画面は以下の通りです。
「等しいレコード」「等間隔」を選択すると、それぞれ「タイル数」を設定するボックスが表示されます。
なお、「等しいレコード」「等間隔」はいずれか一方しか選択できません。
項目名 | 詳細内容 |
---|---|
ビン分割するフィールドを選択 | ビンを作成したいフィールドにチェックをいれます。チェックをいれたフィールド同士は独立してビンが作成されます(ビン作成時、各フィールドの内容は他のフィールドに影響を与えません)。
なお、作成されるフィールド名は、「[元のフィールド名]_Tile_Num」となります。値の範囲などは作成されないので、必要に応じで自分で計算する必要があります。 また、Tile_Numの番号の付き方として、「等しいレコード」と「等間隔」で逆になっています。「等しいレコード」の場合は下から順に番号が付与され、「等間隔」の場合は、上から順に番号が付与されます。 |
等しいレコード | 入力データのレコード数に対して、ビンを作成する際に各ビンのレコード数が同じ様になるようにビンを作成します。
Tile_Numは、レコードの下から順に番号がつきます。 内部的にタイルツールを呼び出しているだけなので、タイルツールを使った方が良い結果が得られることがあります。 |
等間隔 | 作成するビンの値の範囲が等間隔になるように範囲を設定しビンを作成します。ヒストグラムを描く際などに利用できます。
Tile_Numは、レコードの上から順に番号がつきます。 |
タイル数 | 入力データをいくつのビンに分けるかを設定します。「等間隔」オプションの場合は、あるビンの中に該当するレコードがない場合はそのビン番号は抜け落ちます。 |
サンプル
「等しいレコード数」オプションの場合
「等しいレコード数」オプションは、内部的には「タイルツール」を呼び出しているだけです。また、このタイルツールのオプションとして、「列上でタイルを分割しない」「列をソート」が入っています。数値の組み合わせによっては意図しない動きになってしまうため、タイルツールを使った方が良いかもしれません。
実態としては、以下のようなタイルツールの設定がされています(強制的にオプションが入ってしまうため、柔軟に運用したいときはタイルツールが無難です)。
タイル数5
設定でタイル数5としてみました。基本的にはレコードの数に対してグルーピングしているだけですが、タイル化の際に「列上でタイルを分割しない」(同じ値が複数ある場合、異なるタイルに割り当てない)というオプションが効くため、同じ値を持つレコードが多い場合、必ずしもレコード数が各タイルで同じようにならないので要注意です。
このサンプルの場合、Field2(青い部分)が1と2という値しか持っておらず、タイル化の際にTile_Numは2つ(1と3)しかありません(しかも番号が飛び飛びです・・・)。
タイル数2
設定でタイル数2としてみました。ここで、Field2(青い部分)に着目するとすべて同じタイル番号になっています。これは、内部で使用しているタイルツールの「列をソート」オプションによりField2の値が大きい順に並べ替えられ、その後、「列上でタイルを分割しない」オプションにより分割するタイミングなくすべて同じTile_Numとなってしまった、ということかと思います(ここはタイルツールのアルゴリズムの問題かと思います)。ちなみに、タイルツールで「列をソート」オプションを使わなければ、タイルは2分割されます(もちろん、値が1のレコードと値が2のレコードで分割されます)。
これは極端な例なので、例えば、10個のデータ中、1が4個で2が6個の場合はTile_Numは1,2と2つ作成されます。
「等間隔」オプションの場合
「等間隔」オプションの場合を見ていきたいと思います。指定できる詳細項目は「タイル数」のみです。等間隔オプションの場合、ヒストグラムのビンを作成する際に有用に利用可能です。
タイル数2
設定でタイル数2としてみました。Field1の結果はちょうど半分のところでTile_Numが変わっていますが、Field2の結果は、中身の値が1と2しかなく、それぞれの数値に応じて別れています(数値が1ならTile_Numも1、数値が2ならTile_Numも2)。
タイル数3
タイル数3の場合、Field1はやはり数値の大きさに応じてTile_Numが別れていますが、Field2については、Tile_Num=2が欠損しています。当てはまるタイルがない場合は欠損してしまいますので、要注意です。
値の範囲が知りたい時
本ツールはAlteryxマクロですので、中身を分析することが可能です。実態としては、次のワークフローのように作成すれば同様の結果が得られ、値の範囲も判明します。
基本的には、指定したフィールドの「(最大値-最小値)÷タイル数」で間隔の値が決まります。あとは、最小値から間隔の値を足していくことで値の範囲が求められます(上記の図の通りです)。
Tile_Num | 値の範囲の低い方 | 値の範囲の高い方 | 実際の範囲 |
---|---|---|---|
1 | フィールドの最小値(1) | 左の値(1)+間隔の値3 | 1<= [フィールドの値]<4 |
2 | Tile_Num1の範囲のMax値(4) | 左の値(4)+間隔の値3 | 4<= [フィールドの値]<7 |
3 | Tile_Num2の範囲のMax値(7) | 左の値(7)+間隔の値3 | 7<= [フィールドの値] |
サンプルWFダウンロード
MultiFieldBinning_Sample fa-download
※Alteryx Designer 2020.1.2.24185時点の情報です