【Weka】アソシエーション・ルール(association rule)【機械学習】

公開日: : 最終更新日:2018/07/26 機械学習 , , , ,

フリーの機械学習ツール Weka でアソシエーション・ルール(association rule)を使ってみたときのメモです。

アソシエーション・ルール(association rule)とは、事象間の共起性(Co-occurence)を表す規則(rule)を意味します。

有名なのは、大量のスーパーの購入履歴から「ビールとおむつが同時に買われることが多い」というようなルールを探し出すことです。

データの準備

まず、CSV 形式で以下のようなデータを用意しました。

7つの事象の共起性のルールを自動的に見つけていきます。ちなみに、「yes」となっているところが対象事象が観測されたことを意味しています。

データの読み込みは、Weka を起動させ、

前処理 -> ファイルを開く からCSV ファイルを選択します。

最小支持度(minsup)と最小信頼度(minconf)の設定

膨大な数のアソシエーション・ルールから有用なルールと無用なルールの区別を行うための指標が、支持度(support)と信頼度(confidence)になります。

大量のルールから、ある条件を満たすルールのみを有用なルールとみなし抽出します。

その際に用いる、最小支持度(minsup)と最小信頼度(minconf)を Weka で設定します。

アソシエートタブの「選択」ボタンの横のエリアをクリックします。

すると、以下のようなウィンドウが開きます。

最小支持度が「lower BoundMinSupport」で設定でき、最小信頼度が「minMetric」で設定できます。

今回は、最小支持度が 30%、最小信頼度が 75% で設定しました。

実行および結果

開始」ボタンを押すと、ルールの抽出が行われ、右側に結果が表示されます。

結果は以下のようになり、条件を満たす15個のルールが抽出されました。

ちなみに「conf」は信頼度を表しています。

=== 実行情報 ===

スキーマ: weka.associations.Apriori -N 20 -T 0 -C 0.75 -D 0.05 -U 1.0 -M 0.3 -S -1.0 -c -1
関連: association_rule_data
インスタンス: 8
要素: 7
coffee
bread
butter
milk
beer
beans
rice
=== アソシエートモデル (トレーニングセット) ===

 

Apriori
=======

Minimum support: 0.3 (2 instances)
Minimum metric <confidence>: 0.75
Number of cycles performed: 14

Generated sets of large itemsets:

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

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

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

Best rules found:

1. bread=yes 4 ==> butter=yes 4 conf:(1)
2. coffee=yes butter=yes 3 ==> bread=yes 3 conf:(1)
3. coffee=yes bread=yes 3 ==> butter=yes 3 conf:(1)
4. milk=yes 2 ==> bread=yes 2 conf:(1)
5. milk=yes 2 ==> butter=yes 2 conf:(1)
6. beer=yes 2 ==> butter=yes 2 conf:(1)
7. butter=yes milk=yes 2 ==> bread=yes 2 conf:(1)
8. bread=yes milk=yes 2 ==> butter=yes 2 conf:(1)
9. milk=yes 2 ==> bread=yes butter=yes 2 conf:(1)
10. bread=yes 4 ==> coffee=yes 3 conf:(0.75)
11. coffee=yes 4 ==> bread=yes 3 conf:(0.75)
12. coffee=yes 4 ==> butter=yes 3 conf:(0.75)
13. bread=yes butter=yes 4 ==> coffee=yes 3 conf:(0.75)
14. bread=yes 4 ==> coffee=yes butter=yes 3 conf:(0.75)
15. coffee=yes 4 ==> bread=yes butter=yes 3 conf:(0.75)

関連記事

機械学習の手法のまとめ。

機械学習は、「与えられた入出力事例をモデル化する行為」のことで、ディープラーニングなどで注目を集めて

記事を読む

【探索】ダイクストラ法・最良優先探索・Aアルゴリズムの比較。

縦型探索や横型探索では、機械的に順序を付け、最小ステップでゴールを目指します。 つまり、

記事を読む

【深層学習】 TensorFlow と Keras をインストールする【Python】

今回は、Google Colaboratory 上で、深層学習(DeepLearning)フレームワ

記事を読む

【機械学習】決定木(decision tree)について。

教師あり学習の一つである決定木(desicion tree)について勉強したことを書いていきます。

記事を読む

【探索】縦型・横型・反復深化法の探索手法の比較。

探索とは、チェスや将棋や囲碁などのゲームをコンピュータがプレイするときに、どの手を指すかを決定するの

記事を読む

【Weka】フリーの機械学習ソフトをインストールする方法。

Weka は、GUIで使えるフリーの機械学習ソフトです。 https://ja.wikiped

記事を読む

【Weka】欠損データを自動的に補完するフィルタを使ってみた。

機械学習で用いるデータについてです。データは完璧なことに越したことはないが、通常は、ある属性の値が入

記事を読む

【Weka】CSVファイルを読み込んで決定木を実行。

フリーの機械学習ソフト Weka を使って、CSVファイルを読み込んで決定木(Decision Tr

記事を読む

【機械学習・手法比較】決定木とナイーブベイズを比較してみた。

同じデータを使って、教師有り機械学習手法の 決定木(Decision Tree)とナイーブベイズ(N

記事を読む

【画像認識】 Google画像検索結果を取得する方法 【google image download】

今回は、深層学習(DeepLearning)で画像認識をするための画像データの収集を、Google画

記事を読む

【Python】 DataFrame の特定の列で出現回数をカウントして降順でソートする方法。

Python で DataFrame 型の特定の列を指定して、対象列の

【テキストマイニング】 Amebaブログからデータ取得するための準備。

テキストマイニングを行うために、Ameba ブログ(アメブロ)のデータ

【Linux】 ローカルに Python をインストールする方法。

今回は、Linux サーバに、root 権限なしで、ローカルに Pyt

【Linux】 ファイルの重複した行を削除して、ファイルを結合する方法。

大容量の CSV ファイルの重複した行を削除して、ファイルを結合する処

【画像認識】 Google画像検索結果を取得する方法 【google image download】

今回は、深層学習(DeepLearning)で画像認識をするための画像

→もっと見る

PAGE TOP ↑