Wekaを起動する(アソシエーション分析①)

2007年9月26日

データマイニング

t f B! P L
今回のアソシエーション分析は、今更ながらであるが、データマイニングでは最も有名な分析かもしれない。

「金曜日には、ビールとおむつが良く売れる」

といえば、どこかで聞いたことがあるかもしれない。

アソシエーション分析はマーケットバスケット分析とも呼ばれ、「商品Zを購入する人は商品Yも購入する傾向がある」というように2つ以上のアイテムの関連性に関するルールを探るものである。

従って、ルールの中には当然のルールもあり、ビールとおつまみ、歯ブラシと歯磨き粉などはセットになることが多い。

さて、本ブログは「習うより慣れろ」である。早速、データ解析を行う。

まず使用するデータは以下のデータで、あるプロジェクトの概要である。参加企業数、予算、利益などが記載されている。



分析の目的はプロジェクトでのルールを発見することで、「利益の高いのは・・・」と利益を目的変数に設定し、説明因子を引き出すのではない。さらに、wekaでは、表のように行と列が整っていることが条件で、レシートなどの顧客がいくつの品目を購入したかが離散しているのには適さない(この方法ついては後日記載する予定)。

さて、分析に入るが、wekaを立ち上げ、第一に行なうのは、「分析の前に、変数の値を名義尺度に変換する」必要がある。これは、数字ではなく、例えば、身長であれば、高い、中程度、低い(3つに区分:"bin"は"3"、高い、低いであれば"bin"は"2":"bin"は後述)に区分することである。


具体的には:
"Choose"をクリック、filters:unsupervised:attribute:Discretizeとなる。



次に図の"4"(文字の部分)をクリックすると次の画面が現れる。



"bins":先ほどの身長ような数値をいくつのグループ(高い、中程度、低いなら"3")に分けるかを指定し、通常は2~4を指定する。

"useEqualFrequency":通常は"True"を指定する。
"attributeIndices"どの変数に対して変換を行うかを指定するもので通常は初期値のままでよい。

"OK"をクリック後、先ほどの画面の"5"で"No class"に指定し、"6"の"Apply"をクリックする。これで、分析前のデータ処理が終了した。

次に、"WekaExplorer"画面の"Associate"タブをクリックする。さらに、図の赤の四角の部分をクリックすると、別の画面が立ち上がる。



"numRules"は抽出する最大ルール数、"minMetric"は最小信頼度(metricTypeに
”Confidence”を選択している場合)。数値を小さくすると、抽出されるルールの候補が増加する。"Start"をクリックすると分析が始まり、時にはルールが抽出されない場合があるが、このような時は
この数値(minMetric)を小さくしたり、"lower...support"の数値を設定したりして、ルールを抽出する。


画面には以下のようにアウトプットされる。
* * * * * *
Apriori
=======

Minimum support: 0.1
Minimum metric <confidence>: 0.8
Number of cycles performed: 18

Generated sets of large itemsets:

Size of set of large itemsets L(1): 25

Size of set of large itemsets L(2): 151

Size of set of large itemsets L(3): 21

Best rules found:

1. 予算='(6006.5-inf)' 企業数='(6.5-inf)' 8 ==> 開発期間='(15-25.5]' 7 conf:(0.88)
2. 企業数='(6.5-inf)' 開発期間='(15-25.5]' 8 ==> 予算='(6006.5-inf)' 7 conf:(0.88)
3. 開発期間='(15-25.5]' 利益='(19993.5-31697.5]' 7 ==> 開発種別=C 6 conf:(0.86)
4. 関連国数='(-inf-1.5]' 利益='(19993.5-31697.5]' 7 ==> 企業数='(-inf-3.5]' 6 conf:(0.86)
5. 要員='(18-inf)' 利益='(19993.5-31697.5]' 7 ==> 企業数='(-inf-3.5]' 6 conf:(0.86)

* * * * * *


典型的には"2"のルール:「企業数が多く、開発期間が中程度であれば、予算が高い」というルールが抽出されている。

以上のように、wekaでは簡単に行なえるが、この分析で身につけて置かなければならないのは、"support"と"confidence"の概念である。この概念が不明であると、当たり前のルールしか抽出できない状態になってしまい、折角のデータ収集がムダに終わってしまう可能性がある。

これは次回に補足する。

(「Wekaを起動する(アソシエーション分析①)」了)
次回は「Wekaを起動する(アソシエーション分析②)」です。

*ブログ中の図はクリックすれば、拡大されます。
*本ブログ記事の下「Labels」の「データマイニング」をクリックすると、データマイニングに関する記事が一括掲載されます。

自己紹介

自分の写真
エンジニアの視点から、品質技法、解析技術、生成AIについて発信しています。 (シックスシグマ・ブラックベルト、MBA)

このブログを検索

ブログ アーカイブ

QooQ