コンテンツにスキップ

コミュニティクラスタリング

つながりの強いかたまりを見つけます。 「一緒に買われる商品のグループ」「やり取りの多い人のグループ」のように、関係の濃い集まりをネットワークから取り出します。

入出力

ポート内容
入力データデータ
出力データデータ

Spark エンジンでは動きません。

入力の行も列も残りません。 出力は、アイテムを 1 つずつ並べた別の表です。

出力の形

列名内容
カテゴリそのアイテムがアイテム列1とアイテム列2のどちらから来たか。列名そのものが入ります
アイテムアイテムの値
クラスタ番号同じかたまりに付く番号。0 から始まります

カテゴリ と アイテム の昇順に並びます。元の表に戻したいときは、キー列を指定する結合で アイテム をキーにつなぎます。

アイテム列1 と アイテム列2 に同じ値があっても、別々のアイテムとして扱われます。 カテゴリ でどちらの列から来たかが分かります。

設定項目

アイテム列1を選択必須
つながりの片方。文字列の列だけ選べます。
アイテム列2を選択必須
つながりのもう片方。文字列の列だけ選べます。

オプション

重み付きのネットワークにする
既定は off。on にすると重みとする列を選択が出ます。
重みとする列を選択必須
重み付きのネットワークにするが on のときだけ出ます。数値の列だけ選べます。
resolutionを設定
グループの細かさ。既定は 1。

入力データの形

1 行が 1 つのつながりを表します。

アイテム1アイテム2回数
商品A商品B15
商品A商品C3

「誰と誰」「何と何」が同じ行に並んでいる形にしてから掛けてください。商品の購入履歴のように 1 行 1 商品の形なら、先にキー列を指定する結合で同じレシートどうしを突き合わせて組を作ります。

選んだ列に欠損があるとエラーになります。

resolution

大きくすると細かく分かれ、小さくすると大きなかたまりになります。 既定の 1 から始め、グループ数を見て調整してください。

エラーと対処

処理対象列に欠損値がある

アイテム列(重みを使うときは重みの列も)に空欄があると出ます。

処理対象列に欠損値が含まれています。欠損値を除外するか補完してください。

直し方 — 欠損値処理で欠損のある行を落としてください。

列を選ばずに実行した

アイテム列1を選択・アイテム列2を選択(重みを使うときは重みとする列を選択)のどれかが空のまま実行したときに出ます。前の処理で列名が変わり、選んでいた列が入力データからなくなったときにも同じメッセージです。

対象の列が選択されていません。

直し方 — 列を選び直してください。

よく使う例

1. 一緒に買われる商品のグループを作る

商品をまとめて棚の構成を考えたいとき。

入力

商品1商品2
おむつビール
おむつおしりふき
パンジャム

設定

設定項目値
アイテム列1を選択商品1
アイテム列2を選択商品2

出力 — カテゴリ / アイテム / クラスタ番号 の 3 列になります。おむつ・ビール・おしりふきが同じ番号、パン・ジャムが別の番号になります。

2. つながりの強さを反映する

一緒に買われた回数が多い組を、強いつながりとして扱いたいとき。

入力

商品1商品2回数
おむつビール15
おむつパン1

設定

設定項目値
重み付きのネットワークにするon
重みとする列を選択回数

出力 — 回数の多い組が同じかたまりに入りやすくなります。

3. グループが大きすぎるとき

ほとんどの商品が 1 つのグループになってしまうとき。例 1 のように組がはじめから 2 つに切れているデータでは、resolution を上げても分かれ方は変わりません。 つながりが鎖のように続いているデータで効きます。

入力

商品1商品2
おむつビール
ビールおしりふき
おしりふきパン
パンジャム

設定

設定項目値
resolutionを設定2

出力 — より細かく分かれます。

4. 関係の弱い組を外してから掛ける

1 回しか一緒に買われていない組がノイズになるとき。

入力 — 例 2 と同じ

設定 — 先に条件で行をフィルタで 回数 >= 5 に絞ってから、このノードに掛けます。

出力 — 弱いつながりが消え、かたまりがはっきりします。

5. 付いた番号で集計する

グループごとの売上を見たいとき。

入力 — 例 1 の出力

設定 — キー列を指定する結合で アイテム を元データの商品名につなぎ、クラスタ番号 をキーにデータ集計します。

出力 — かたまりごとの合計が出ます。

関連