データ工学特論

データ工学特論
第三回
木村昌臣
本日の話題



マーケットバスケット分析
記憶ベース推論
クラスタリング
マーケットバスケット分析
マーケットバスケット分析


買い物かごや
取引レコードでどの
アイテムが一緒に
買われる傾向があるかを分
析
分析をもとにアクションをと
りやすい(実行可能)



レイアウト計画
特売商品の品目調整
製品のバンドルの仕方
など
おむつ
ビール
つまみ
マーケットバスケット分析で得られるもの

結果はアソシエーションルールとして得られる



商品Pを買う ⇒ 商品Qを買う
一緒に買われるものがわかるので実行に移しやすい
ただし、すべての結果(アソシエーションルール)が
有益とは限らない



木曜日には顧客はビールと紙おむつを一緒に買う
製品保証契約をつけた顧客は大型家電を買う
店のオープン時にはトイレットリングがよく売れる
マーケットバスケット分析で得られるもの

結果はアソシエーションルールとして得られる
有益!
商品Pを買う ⇒ 商品Qを買う
 一緒に買われるものがわかるので実行に移しやすい
説明はつくが得
 ただし、すべての結果(アソシエーションルール)が
られていなかっ
既存の知識
有益とは限らない
た知識




木曜日には顧客はビールと紙おむつを一緒に買う
大型家電を買う顧客は製品保証契約をつける
店のオープン時にはトイレットリングがよく売れる
説明不可能
マーケットバスケット分析の方法
オレンジジュース⇒炭酸飲料
信頼性: 2/4 = 0.5 (50%)
サポート: 2/5 = 0.4 (40%)
炭酸飲料⇒オレンジジュース
信頼性: 2/3 = 0.67 (67%)
サポート: 2/5=0.4(40%)
オレンジジュース
を買ったときに
それぞれを
買った回数
信頼性・サポート・リフト
の値が大きいルールのみ
採用する
信頼性・サポート・リフト

信頼性=商品Bが買われたときの商品Aの購入確率(条
件付確率)
N ( A  B)
P( A | B) 

N ( B)
サポート=商品Aと商品Bの同時購入確率
N ( A  B)
P( A  B) 
N

リフト=商品B購入が条件の商品Aの購入確率と、商品A
の購入確率の比(商品Bを購入したという事実が商品A
の購入確率をどれだけ改善するかの指標)
P( A | B) N ( A  B)  N

P( A)
N ( B) N ( A)
手順
1.
アイテムの水準と内容を正しく設定


「ピザ」をアイテムにする?
トッピングに応じて別アイテムにする?
2.
同時購買表を解読してルールを生成
3.
実行上の制限の克服
手順1. アイテムの水準と内容を適切
に選ぶ
ピザ
抽象
○ 分析しやすい
(組み合わせが少なくてすむ)
× 詳細な情報が落ちる
チーズ増量ピザ
オニオンピザ
マッシュルームピザ
○ 特定のアイテムに焦点を当てた
分析ができる
具体
× ルールが複雑になり、
分析に時間がかかる
バーチャルアイテム
バーチャルアイテム
実際には商品そのものとして
存在しないが
含めると解析が便利になる
仮想アイテム
コカコーラ製品
まとめたもの
支払方法
(カード?現金?)
ダイエットコーク
コカコーラ
コカコーラC2
季節
手順2.同時購買表を解読してルール
を生成
ルール:
もし「前件部」が成立すれば「後件部」も成立する
「前件部 ⇒ 後件部」と書く
例)
(買ったものが)もし「オレンジジュース」であれば
(いっしょに買うのは)「炭酸飲料」である
同時購買表には、「アイテムのどの組合わせがもっとも多いか」についての情報が
提供されている
手順3. 実行上の制限の克服

アソシエーションルールの生成は多段階




単一のアイテムについての同時出現表を作成
2つのアイテムについての同時出現表を作成し、2アイテ
ム間のルールを生成
3つのアイテムについての同時出現表を作成し、3アイテ
ム間のルールを生成
4つのアイテムについての同時出現表を作成し、4アイテ
ム間のルールを生成
以下同様。アイテム数をAとすると、
全部で 2A 程度のルールを扱わなければならない
マーケットバスケット分析の長所




結果が明確に理解できる
探索的なデータマイニングができる
可変長のデータで使える
計算方法が単純で理解しやすい
マーケットバスケット分析の短所




問題の規模が大きくなると指数関数的に計
算量が増大する
データの属性が限定的にしか扱えない(ひと
つの特徴で識別されるデータ向き)
適切なアイテム数の決定が難しい
まれにしか買われないアイテムの説明がで
きない
記憶ベース推論
2.記憶ベース推論(Memory Based
Reasoning)

与えられた情報に対し、既知
のデータから一番近い事例を
探し出し、分類や属性値を予
測


保険金請求のデータベースで、
知りたい事例にちかいものを調
べ、即座に請求に応じるべきか、
調査を詳細に行うべきか判断
距離関数(事例間の距離)と
結合関数(事例と予測を結び
つけるもの)があればよい
既知のものの
なかで
一番近い事例
与えられた
事例
手順
1. データの値の標準化
2. 距離関数による与えられたデータに近い既
存データの探索
3. 2.によって得られた既存データ組より得た結
合関数の値から予測
手順(1) 入力データの尺度変換

データをあらわすベクトル列の各成分の値を標準
化する

下式のように入力ベクトルの第i成分についての平均μi
と分散σiを用いて標準化する(各成分が平均0、分散1
となる)
zi 

xi  i
i
もしくは、第i成分の最大値と最小値の間の幅Dを用い
て標準化する(最小値が0、最大値が1)
xi  xi
zi 
Di
min
手順(2) 距離関数による近傍データの取得

データ間の遠近を定義する距離関数より、与えられ
たデータに近い既存のデータを得る

距離関数は、通常は以下の公理を満たすことが要請され
る
同一性:
交換可能性:
三角不等式:

 
 
d ( x, y)  0 if and only if x  y
 
 
d ( x , y )  d ( y, x )
 
 
 
d ( x , y )  d ( y, z )  d ( x , z )
ただし、実用上は遠近さえ定義できればよいのでこれら
の公理のいくつかを満たさない距離を利用することもある
距離関数(1)

連続データについては以下のものが代表的:
Euclid距離:
 
d E ( x, y) 
 (x  y )
i
2
i
i
Manhattan距離:
 
d M ( x, y)   xi  yi
i
標準化絶対値
による距離:
 
 
d E ( x, y)
d N ( x, y) 
 
max d E ( x , y )
x, y
距離関数(2)

カテゴリカルデータの場合は、適宜決める必要が
ある。例えば、同一であれば1、異なれば0とする方
法がある
例)
d (m ale, m ale)  0
d (male, female)  1
d ( female, male)  1
d ( female, female)  0
距離関数(3)

連続データとカテゴリカルデータが混在する
場合、以下のようにして全体の距離を定義
することが多い



合計(すべての距離の和をとる)
ユークリッド距離(すべての距離の2乗和の平方
根をとる)
標準化合計(すべての距離の和をその最大値で
割って標準化する)
手順(3) 結合関数による予測


距離関数で近いとされたデータにもとづき予測を与
える結合関数を使って結果を予測する
結合関数の例)



与えられたデータに一番近いデータによる事例の結果
を返す関数
与えられたデータの近傍データk個による結果の平均を
返す関数
(このことからMBRをk-NN法と呼ぶことがある)
与えられたデータの近傍データk個の結果に対して重み
つき和をとり、その値を返す関数
など
記憶ベース推論の長所・短所

長所



似ている事例を用いて予測するためわかりやす
い
どのような形式のデータにも距離関数・結合関
数が定義可能であれば適用可能
短所


過去の事例をすべて探索するため、処理時間
が事例数に比例して長くかかる
過去の全事例を保存する記憶領域が必要
クラスタリング
クラスタリング


類似している塊(クラス
タ)に、レコードを分類
する手法
探索的データマイニン
グ

未知のデータを分類す
るため
2種類のクラスタリング

分割型



与えられたデータ群を複数のまとまり(=クラスタ)
に分割
クラスタ間に共通部分を設けないのが普通
階層型


似ている(=距離が近い)ものは先に、似ていな
いものは後にデータをまとめていく方法
デンドログラムを使って表現
K-means法




1967年 J.B.MacQueenが発表
分割型の代表的手法
あらかじめクラスタの数(=K)を指定する必要
あり
通常、数値データ(ベクトル)群の分割に利
用される
K-means法の手順
1. K個のデータをseedとする
2. 各データをどのseedに近いかにもとづいてグループ
化する
3. 各グループ毎に、含まれるデータの重心を計算す
る


1
xg 
xi

N c iC
4. 2.のseedの代わりに3.の重心を指定し、2.および3.
を重心が収束するまで繰り返す
K-means法の手順
K=分類(クラスタ)の個数
重心を導出*
収束するまで繰り返し
重心間の垂直二等分線(面)
により再分類
*最初は、ランダムにK個の点を選び、
種とする。
凝集型階層的クラスタ

距離が近いもの同士をまとめていく



その工程をグラフ化したものがデンドログラム
データ間の距離は記憶ベース推論のときと同様
のものを使う
クラスタ間の距離の定義によって結果が変わる



単一連結法(single linkage: 最近隣法)
完全連結法(complete linkage: 最遠隣法)
セントロイド法(comparison of centroids)
クラスタ間距離
simple
centroids
complete
凝集型クラスタリングの手順
1. 各データ間の距離を計算し、類似度行列を
作成する
2. もっとも距離が短いデータ組を見つけ、クラ
スタとして置き換える
3. クラスタから他のデータまでの距離を計算し
て、類似度行列を更新する
4. 2.と3.をすべてのデータがひとつのクラスタ
の中に含まれるまで繰り返す
簡単な例(1) 単一連結法
1
2
3
4
1
2
3
4
簡単な例(2) 単一連結法
1
C1
2
3
1
4
1
2
3
4
簡単な例(3) 単一連結法
1
C2
2
3
4
2
1
4
1
2
3
4
クラスタリングの長所・短所

長所



データの構造を把握しやすい
距離尺度(類似度)が与えられればどのようなデー
タに対しても適用可能
短所



距離尺度の定義が困難な場合に適用できない
K-means法ではseedの選び方によって結果が変わ
る場合がある
得られたクラスタの意味づけが難しい場合がある