• 検索結果がありません。

アソシエーション分析

ドキュメント内 ROC lift chart 2 Copyright (C) 2008 i-library MOT 2 (ページ 30-36)

September 26, 2007

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

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

 

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

 

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

 

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

 

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

 

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

 

まず使用するデータは以下のデータで、あるプロジェクトの概要である。参加企業数、

予算、利益などが記載されている。 

 

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

さて、分析に入るが、weka を立ち上げ、第一に行なうのは、「分析の前に、変数の値 を名義尺度に変換する」必要がある。これは、数字ではなく、例えば、身長であれば、

高い、中程度、低い(3 つに区分:"bin"は"3"、高い、低いであれば"bin"は"2":"bin"

は後述)に区分することである。 

   

具体的には: 

"Choose"をクリック、filters:unsupervised:attribute:Discretize となる。 

 

   

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

 

   

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

 

"useEqualFrequency":通常は"True"を指定する。 

ままでよい。 

 

"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 を起動する(アソシエーション分析②補足)」です。 

   

October 20, 2007

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

今回は、supportとconfidence の概念についてである。

(投稿に間隔があいたにも関わらず、訪問してくださったヘビーユーザーの方に感 謝!)

さて、supportとは支持度、confidenceは信頼度、確信度とされることが多い。

support値とは「データベース全体で、その組み合わせ(事象)が発生する割合」で

あり、confidence 値とは、「相関の強さを示し、例えば、ABにおいてはAが発 生した場合のBが発生する確率」である。

例えば、下の図において:

A:おむつを購入する B:ビールを購入する

として全体を100人とする。

それぞれ、Aでは50人、Bでは20人がこの行動をしている(購入している)ことが わかる。

ここで、support(A)とはAの行動を起こす支持度、いわゆるAの行動をする確率で、

それをP(A)と表すと、全体が100人なので、P(A)=50/100=0.5となる。

同様に、P(B)=20/100=0.2 である。

さらに、Aの行動を起こし、かつ、Bの行動を同時に起こすのは(A⇒B)、図から10 人いるので、これをP(A⇒B)とすれば、P(A⇒B)=10/100=0.1 となる。

このときのconfidence(A⇒B)は、p(B|A)と表し、p(B|A)=10/50=0.2 である。

(Aの行動を起こした中で、Bの行動を起こすのは?と考えるとと分りやすい)

これらの結果について、どのルールを中心に考えるのかは、店舗運営者が欲するデ ータである。

そこで、分析で導出したルールの精度についての指標については、Lift値という値が ある。

この値は、信頼度を期待信頼度で割った値で、上の例では:

Lift値(A⇒B) = confidence(A⇒B) / confidence(⇒B)= 0.2/0.2=1.0 Lift値(B⇒A) = confidence(B⇒A) / confidence(⇒A)= 0.5/0.5=1.0 となる。

この値は1.0以上であることが目安とされている(が、どの値がよいかというのは分 析により様々である)。種々の導出されたルールを比較する際に役に立つ。

実際の分析では、supportとconfidence を指定して分析を行うことが多い。例えば、

support20%、confidende70%など・・・。この設定は分析対象により異なるので、

何回もtryするしかない。

とは言っても正解がないので、どこまでルールを導出するかは決まっていない。ビジ ネスに直結するルールなら「面白いルール」より「金になるルール」の方が望ましいこ とは言うまでもない。

さて、Wekaでは、店舗のレシートの分析は困難で、以前記載した例のようなデータ のルール導出しかおこなえないが、apriori program(ブログで記載のリンクが切れ ていますので、ここを参照してください↓↓

http://ibisforest.org/index.php?Apriori)では、いわゆる「バスケット分析」が可 能で、ルールの導出やプログラムの使用法が詳細に記載されている。Windowsで はコマンドプロンプトを利用して使用することが出来る。

非常に参考になるので、ご参照ください。

次は補足(ROC曲線とLift chart、研究開発部門での使用)です。

ドキュメント内 ROC lift chart 2 Copyright (C) 2008 i-library MOT 2 (ページ 30-36)

関連したドキュメント