テクニカルな部分さえ押さえれば、結果がでることは理解できたが、
元のデータが筆者の妄想の産物なので、いま一つ納得感に欠ける
結果となった。
そこで、前回のデータを膨らませて、件数も増やして、再度トライ
することとした。
データは、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 | rhs | support | confidence | lift | ||
1 | {meat} | => | {} | 0.40 | 0.8 | 1.142857 |
2 | {cabbage} | => | {meat} | 0.25 | 1.0 | 2.000000 |
3 | {butter} | => | {bread} | 0.20 | 1.0 | 2.500000 |
4 | {butter} | => | {} | 0.20 | 1.0 | 1.428571 |
5 | {cabbage} | => | {} | 0.20 | 0.8 | 1.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 件のコメント:
コメントを投稿