
【AlteryxTips】重複を除いた組み合わせを作る方法
こんにちは!MJです。
今回はAlteryxで同じ10色のセットからそれぞれ1色ずつ選んで重複のない組み合わせを作る方法について説明します。
組み合わせ(combination)と順列(permutation)の違い
組み合わせを理解するために、まず順列と組み合わせの違いについて確認します。
- 順列(permutation): 順序を考慮して要素を並べる場合
- 例: (赤 Red, 青 Blue) と (青 Blue, 赤 Red) は異なるものとして扱います。
- 組み合わせ(combination): 順序を考慮せずに要素を選択する場合
- 例: (赤 Red, 青 Blue) と (青 Blue, 赤 Red) は同じものとして扱います。
今回の課題では、順序を無視した組み合わせを見つけることが目的です。
課題
・10色のセット
[ Red, Blue, Yellow, Green, Black, White, Brown, Orange, Pink, Purple ]
この10色の中から2色を選び、組み合わせを作りたいと思います。
ただし、順序は無視するため、(Red, Blue) と (Blue, Red) は同じ組み合わせと見なします。
数学的アプローチ
組み合わせの計算式
組み合わせの数は、次の式で計算できます
ここで、
- n = 全体の要素数 (10)
- k = 選択する要素数 (2)
これを適用すると
つまり、可能な組み合わせは合計45になります。
Alteryxを使って組み合わせを求める
それではAlteryxを使って実際の組み合わせを作成してみます。
全体ワークフローのイメージは下記のとおりです。
1.データセットの全体の組み合わせを作成
フィールド付加ツールを使って、10色のセットから Color1 と Color2 の2つのフィールドを持つ100レコードの組み合わせを作成します。
2.同じ要素同士の組み合わせは排除
同じ要素同士の組み合わせはフィルターツールで左右が等しくないレコードを排除します。
3.順序を無視するフラグ作成
要素が重複している組み合わせを判別するためにフォーミュラツールで値の並び順によってフラグを作成します。
(Red, Blue)と(Blue, Red)の組み合わせには、同じフラグが付与されます。
4.フラグで重複した組み合わせ削除、結果出力
ユニークツールでフラグフィールドを選択すれば、重複が削除された組み合わせが「Uアンカー」で確認できます。
最後にセレクトツールを使い、フラグフィールドを排除すると、最後的に45レコードの組み合わせが生成されます。
まとめ
今回は重複のない組み合わせについて学び、Alteryxのワークフローで実装してみました。
他にも色々な方法があるので、皆さんが使いやすい方法を見つけて活用してください。
※Alteryx Version 2024.1.1時点での情報です