バスケット分析
今回は R を用いてバスケット分析を行ってみます。バスケット分析の有名な話としておむつとビールの話があります。この話は「子供のいる家庭では、母親はかさばる紙おむつを買うように父親に頼み、店に来た父親はついでに缶ビールを購入していた。そこでこの 2 つを並べて陳列したところ、売り上げが上昇した」ということが知られています。このように「ある商品を買ったひとはこんな商品も買っています。」といったある商品と一緒に売れる商品を分析し見つける手法をバスケット分析といいます。このバスケット分析をRで実装してみます。
R での実装
今回は以下のような一人目のお客はビールと一緒にハムを買い、二人目のお客はハムと一緒にビールを買ったという 11 レコードから成るデータでバスケット分析を行ってみたいと思います。
まず、今回は arules というパッケージを使用します。
(パッケージについては前回の記事をご参照ください。)
次に今回使用する csv ファイル「test.csv」を引数 x に取り込みます。
取り込むデータの場所は特に指定がなければ「ファイル」⇒「ディレクトリの変更」に定義されている場所になります。
現在 x は data.frame 形式のデータになっているため、
引数 y として transactions 形式に変換します。
次に arules の中にある apriori 関数で相関ルールを抽出します。
※apriori 関数ではパラメータとして支持度、確信度、頻出アイテム最大数を指定することができます。
※デフォルト値では(支持度 0.1、確信度 0.8、頻出アイテム最大数 5)となっています。
そして apriori(y) の結果を inspect 関数で表示します。
支持度 (support)
条件 lhs と結論 rhs を含むデータが、全データ中に占める割合
信頼度 (confidence)
条件 lhs と結論 rhs を含むデータが、条件 X を含むデータ中に占める割合
Lift
信頼度 / 支持度
※LIFT 値が 1 を超えると、通常よりも関連が強い
ただし、条件 X と結論 Y を含むデータ自体の規模が小さければ、あまり判断の材料にはならない。
以上の結果から今回のデータでは商品 1 で「ハム」か「おむつ」を買った人は商品 2 で「ビール」を一緒に買うことが多いことが分かりました。
しかしながら【商品 1「ハム」⇒商品 2「ビール」】と【商品 1「ビール」⇒商品 2「ハム」】は同等に扱うべきですが、このままでは扱うことができていません。
その場合 transactions 形式から matrix 形式に変換します。
以下のように read.transacyions ()関数で引数 a を csv ファイルをカンマ区切り、フォーマットを指定して、一行目を飛ばすと指定し、引数bを引数 a の matrix 形式とすると以下のように引数 b を取り込むことができます。
そして apriori(b) の結果を inspect 関数で表示します。
このことからハムとビールが一緒に買われることが多いことが分かりました。
今回、バスケット分析を R で行うにあたって、初めて行う人でも今回行うレベルのバスケット分析であれば1時間程度で行うことができるので、是非みなさんも一度お試しください。
※ Microsoft、MS、Windows、Windows Serverは、米国 Microsoft Corporationの米国およびその他の国における登録商標です。
※ Windows の正式名称は、Microsoft Windows Operating System です。
※ その他の会社名、製品名は各社の登録商標または商標です。
※ 記事の内容は記事公開時点での情報です。閲覧頂いた時点では異なる可能性がございます。
キーワード
注目の記事一覧
- SAP 生成AIアシスタント/コパイロット「Joule(ジュール)」
- データパイプラインと変換ロジックを定義するノーコード/プロコードアプローチ
- 行動を喚起するチャート3選
- データウェアハウスの近代化-QlikとTalendの活用
- AIリテラシー、データリテラシーの新しい波
月別記事一覧
- 2024年10月 (1)
- 2024年8月 (1)
- 2024年7月 (2)
- 2024年6月 (1)
- 2024年4月 (1)
- 2024年2月 (1)
- 2024年1月 (1)
- 2023年9月 (1)
- 2023年8月 (2)
- 2023年7月 (1)
- 2023年6月 (1)
- 2023年5月 (2)