2015年5月13日水曜日

つまずかないR言語入門(アソシエーションルール再び)

前回のエントリーで、アソシエーションルールを試してみた。
テクニカルな部分さえ押さえれば、結果がでることは理解できたが、
元のデータが筆者の妄想の産物なので、いま一つ納得感に欠ける
結果となった。

そこで、前回のデータを膨らませて、件数も増やして、再度トライ
することとした。

データは、csv形式で、20レコードをもつ、”basket2.csv”という
データを作成した。

以下手順。
Rを立ち上げ、
> library(arules)
としてライブラリーを呼び出す。
次に、
> b2.bas<-read.transactions(file="basket2.csv",sep=",",format="basket",rm.duplicate=TRUE)
とするが、前回同様に、
distribution of transactions with duplicates:
1
5
という表記で、なにか叱られるが、とりあえずスルーする。
> b2.ap<-apriori(b2.bas)
を実行すると、10数行のコメントがでるが、なかに
writing ... [78 rule(s)] done [0.00s].
とあり、このような数量でも、78のルールが生成されたようだ。

さらに、
> inspect(head(sort(b2.ap,by="support"),n=5))
として、support順にルールを表記させると

 lhs rhssupportconfidencelift
1{meat}=>{} 0.400.81.142857
2{cabbage} =>{meat}0.251.02.000000
3{butter} =>{bread}0.201.02.500000
4{butter} =>{}0.201.01.428571
5{cabbage} =>{}0.200.81.142857

キャベツを買うひとは肉を同時に買うということと、
バターを買う人はパンも同時に買い物バスケットに入れる
ということを明示してくれる。

ここで、先週来学んだことを備忘録的に記載すると、
aprioriアルゴリズムでは、confidence(信頼度)とsupport(支持度)、
lift(2つの事象の独立性をみる指標)で表される。
supportは、lhs(条件)とrhs(結論)を同時に満たすtransactionが、
全transactionにしめる割合をしめす。
また、confidenceは、lhs(条件)が発生したときに、rhs(結論)が
発生する割合を示す。

今回の適当な事例を無理やり解釈すると、全20トランザクションで
キャベツ⇒肉は25%、バター⇒パンは20%を占めている。
confidenceは2例とも、1.0でlhsとrhsの結びつきが強いことを示している。
liftは1より大きいと、そのルールは有効なルールと考えられる
(*www.itmedia.co.jpのサイトを参照)ので、理論的にも計算は正しいと理解した。

今更であるが、Rを使おうとする筆者のようなものは、Rをツールとして
操作出来ることはもとより、統計学の基礎もしくはそれ以上の知識を身に
つけないと、数値のもつ意味を捉え損なうおそれがあり、その意味で、
「Rは誰でも使えますよ」風の講習会はいかがなものかと思った次第です。


----------------------
スマートテクノロジーネットワークのホームページはこちら
----------------------

0 件のコメント:

コメントを投稿