1 CPS216: Advanced Database Systems Data Mining Slides created by Jeffrey Ullman, Stanford.

42
1 CPS216: Advanced Database Systems Data Mining Slides created by Jeffrey Ullman, Stanford

Transcript of 1 CPS216: Advanced Database Systems Data Mining Slides created by Jeffrey Ullman, Stanford.

Page 1: 1 CPS216: Advanced Database Systems Data Mining Slides created by Jeffrey Ullman, Stanford.

1

CPS216: Advanced Database Systems

Data Mining

Slides created by Jeffrey Ullman, Stanford

Page 2: 1 CPS216: Advanced Database Systems Data Mining Slides created by Jeffrey Ullman, Stanford.

2

What is Data Mining?

Discovery of useful, possibly unexpected, patterns in data.

Subsidiary issues: Data cleansing: detection of bogus data.

• E.g., age = 150.

Visualization: something better than megabyte files of output.

Warehousing of data (for retrieval).

Page 3: 1 CPS216: Advanced Database Systems Data Mining Slides created by Jeffrey Ullman, Stanford.

3

Typical Kinds of Patterns

1. Decision trees: succinct ways to classify by testing properties.

2. Clusters: another succinct classification by similarity of properties.

3. Bayes, hidden-Markov, and other statistical models, frequent-itemsets: expose important associations within data.

Page 4: 1 CPS216: Advanced Database Systems Data Mining Slides created by Jeffrey Ullman, Stanford.

4

Example: Clusters

x xx x x xx x x x

x x xx x

xxx x

x x x x x

xx x x

x

x xx x x x x x x

x

x

x

Page 5: 1 CPS216: Advanced Database Systems Data Mining Slides created by Jeffrey Ullman, Stanford.

5

Example: Frequent Itemsets

A common marketing problem: examine what people buy together to discover patterns.

1. What pairs of items are unusually often found together at Kroger checkout?• Answer: diapers and beer.

2. What books are likely to be bought by the same Amazon customer?

Page 6: 1 CPS216: Advanced Database Systems Data Mining Slides created by Jeffrey Ullman, Stanford.

6

Meaningfulness of Answers

A big risk when data mining is that you will “discover” patterns that are meaningless.

Statisticians call it Bonferroni’s principle: (roughly) if you look in more places for interesting patterns than your amount of data will support, you are bound to find “false patterns”.

Page 7: 1 CPS216: Advanced Database Systems Data Mining Slides created by Jeffrey Ullman, Stanford.

7

Rhine Paradox --- (1)

David Rhine was a parapsychologist in the 1950’s who hypothesized that some people had Extra-Sensory Perception.

He devised an experiment where subjects were asked to guess 10 hidden cards --- red or blue.

He discovered that almost 1 in 1000 had ESP --- they were able to get all 10 right!

Page 8: 1 CPS216: Advanced Database Systems Data Mining Slides created by Jeffrey Ullman, Stanford.

8

Rhine Paradox --- (2)

He told these people they had ESP and called them in for another test of the same type.

Alas, he discovered that almost all of them had lost their ESP.

What did he conclude? Answer on next slide.

Page 9: 1 CPS216: Advanced Database Systems Data Mining Slides created by Jeffrey Ullman, Stanford.

9

Rhine Paradox --- (3)

He concluded that you shouldn’t tell people they have ESP; it causes them to lose it.

Page 10: 1 CPS216: Advanced Database Systems Data Mining Slides created by Jeffrey Ullman, Stanford.

10

“Association Rules”

Market BasketsFrequent ItemsetsA-priori Algorithm

Page 11: 1 CPS216: Advanced Database Systems Data Mining Slides created by Jeffrey Ullman, Stanford.

11

The Market-Basket Model

A large set of items, e.g., things sold in a supermarket.

A large set of baskets, each of which is a small set of the items, e.g., the things one customer buys on one day.

Page 12: 1 CPS216: Advanced Database Systems Data Mining Slides created by Jeffrey Ullman, Stanford.

12

Association Rule Mining

tran1 cust33 p2, p5, p8tran2 cust45 p5, p8, p11tran3 cust12 p1, p9tran4 cust40 p5, p8, p11tran5 cust12 p2, p9tran6 cust12 p9

transactio

n

id custo

mer

id products

bought

salesrecords:

• Trend: Products p5, p8 often bought together

market-basketdata

Page 13: 1 CPS216: Advanced Database Systems Data Mining Slides created by Jeffrey Ullman, Stanford.

13

Support

Simplest question: find sets of items that appear “frequently” in the baskets.

Support for itemset I = the number of baskets containing all items in I.

Given a support threshold s, sets of items that appear in > s baskets are called frequent itemsets.

Page 14: 1 CPS216: Advanced Database Systems Data Mining Slides created by Jeffrey Ullman, Stanford.

14

Example Items={milk, coke, pepsi, beer,

juice}. Support = 3 baskets.

B1 = {m, c, b} B2 = {m, p, j}B3 = {m, b} B4 = {c, j}B5 = {m, p, b} B6 = {m, c, b, j}B7 = {c, b, j} B8 = {b, c}

Frequent itemsets: {m}, {c}, {b}, {j}, {m, b}, {c, b}, {j, c}.

Page 15: 1 CPS216: Advanced Database Systems Data Mining Slides created by Jeffrey Ullman, Stanford.

15

Applications --- (1)

Real market baskets: chain stores keep terabytes of information about what customers buy together. Tells how typical customers navigate

stores, lets them position tempting items.

Suggests tie-in “tricks,” e.g., run sale on diapers and raise the price of beer.

High support needed, or no $$’s .

Page 16: 1 CPS216: Advanced Database Systems Data Mining Slides created by Jeffrey Ullman, Stanford.

16

Applications --- (2)

“Baskets” = documents; “items” = words in those documents. Lets us find words that appear together

unusually frequently, i.e., linked concepts. “Baskets” = sentences, “items” =

documents containing those sentences. Items that appear together too often

could represent plagiarism.

Page 17: 1 CPS216: Advanced Database Systems Data Mining Slides created by Jeffrey Ullman, Stanford.

17

Applications --- (3)

“Baskets” = Web pages; “items” = linked pages. Pairs of pages with many common

references may be about the same topic.

“Baskets” = Web pages p ; “items” = pages that link to p . Pages with many of the same links may

be mirrors or about the same topic.

Page 18: 1 CPS216: Advanced Database Systems Data Mining Slides created by Jeffrey Ullman, Stanford.

18

Important Point

“Market Baskets” is an abstraction that models any many-many relationship between two concepts: “items” and “baskets.” Items need not be “contained” in

baskets. The only difference is that we count

co-occurrences of items related to a basket, not vice-versa.

Page 19: 1 CPS216: Advanced Database Systems Data Mining Slides created by Jeffrey Ullman, Stanford.

19

Scale of Problem

WalMart sells 100,000 items and can store billions of baskets.

The Web has over 100,000,000 words and billions of pages.

Page 20: 1 CPS216: Advanced Database Systems Data Mining Slides created by Jeffrey Ullman, Stanford.

20

Association Rules

If-then rules about the contents of baskets.

{i1, i2,…,ik} → j means: “if a basket contains all of i1,…,ik then it is likely to contain j.

Confidence of this association rule is the probability of j given i1,…,ik.

Page 21: 1 CPS216: Advanced Database Systems Data Mining Slides created by Jeffrey Ullman, Stanford.

21

Example

B1 = {m, c, b} B2 = {m, p, j}B3 = {m, b} B4 = {c, j}B5 = {m, p, b} B6 = {m, c, b, j}B7 = {c, b, j} B8 = {b, c}

An association rule: {m, b} → c. Confidence = 2/4 = 50%.

+__ +

Page 22: 1 CPS216: Advanced Database Systems Data Mining Slides created by Jeffrey Ullman, Stanford.

22

Interest

The interest of an association rule is the absolute value of the amount by which the confidence differs from what you would expect, were items selected independently of one another.

Page 23: 1 CPS216: Advanced Database Systems Data Mining Slides created by Jeffrey Ullman, Stanford.

23

Example

B1 = {m, c, b} B2 = {m, p, j}B3 = {m, b} B4 = {c, j}B5 = {m, p, b} B6 = {m, c, b, j}B7 = {c, b, j} B8 = {b, c}

For association rule {m, b} → c, item c appears in 5/8 of the baskets.

Interest = | 2/4 - 5/8 | = 1/8 --- not very interesting.

Page 24: 1 CPS216: Advanced Database Systems Data Mining Slides created by Jeffrey Ullman, Stanford.

24

Relationships Among Measures

Rules with high support and confidence may be useful even if they are not “interesting.” We don’t care if buying bread causes

people to buy milk, or whether simply a lot of people buy both bread and milk.

But high interest suggests a cause that might be worth investigating.

Page 25: 1 CPS216: Advanced Database Systems Data Mining Slides created by Jeffrey Ullman, Stanford.

25

Finding Association Rules

A typical question: “find all association rules with support ≥ s and confidence ≥ c.” Note: “support” of an association rule is the

support of the set of items it mentions. Hard part: finding the high-support

(frequent ) itemsets. Checking the confidence of association rules

involving those sets is relatively easy.

Page 26: 1 CPS216: Advanced Database Systems Data Mining Slides created by Jeffrey Ullman, Stanford.

26

Computation Model

Typically, data is kept in a “flat file” rather than a database system. Stored on disk. Stored basket-by-basket. Expand baskets into pairs, triples, etc.

as you read baskets.

Page 27: 1 CPS216: Advanced Database Systems Data Mining Slides created by Jeffrey Ullman, Stanford.

27

Computation Model --- (2)

The true cost of mining disk-resident data is usually the number of disk I/O’s.

In practice, association-rule algorithms read the data in passes --- all baskets read in turn.

Thus, we measure the cost by the number of passes an algorithm takes.

Page 28: 1 CPS216: Advanced Database Systems Data Mining Slides created by Jeffrey Ullman, Stanford.

28

Main-Memory Bottleneck

In many algorithms to find frequent itemsets we need to worry about how main memory is used. As we read baskets, we need to count

something, e.g., occurrences of pairs. The number of different things we can

count is limited by main memory. Swapping counts in/out is a disaster.

Page 29: 1 CPS216: Advanced Database Systems Data Mining Slides created by Jeffrey Ullman, Stanford.

29

Finding Frequent Pairs

The hardest problem often turns out to be finding the frequent pairs.

We’ll concentrate on how to do that, then discuss extensions to finding frequent triples, etc.

Page 30: 1 CPS216: Advanced Database Systems Data Mining Slides created by Jeffrey Ullman, Stanford.

30

Naïve Algorithm

A simple way to find frequent pairs is: Read file once, counting in main

memory the occurrences of each pair.• Expand each basket of n items into its

n (n -1)/2 pairs.

Fails if #items-squared exceeds main memory.

Page 31: 1 CPS216: Advanced Database Systems Data Mining Slides created by Jeffrey Ullman, Stanford.

31

Details of Main-Memory Counting

There are two basic approaches:1. Count all item pairs, using a triangular

matrix.2. Keep a table of triples [i, j, c] = the

count of the pair of items {i,j } is c. (1) requires only (say) 4 bytes/pair;

(2) requires 12 bytes, but only for those pairs with >0 counts.

Page 32: 1 CPS216: Advanced Database Systems Data Mining Slides created by Jeffrey Ullman, Stanford.

32

4 per pair

Method (1) Method (2)

12 peroccurring pair

Page 33: 1 CPS216: Advanced Database Systems Data Mining Slides created by Jeffrey Ullman, Stanford.

33

Details of Approach (1)

Number items 1,2,… Keep pairs in the order {1,2},

{1,3},…, {1,n }, {2,3}, {2,4},…,{2,n }, {3,4},…, {3,n },…{n -1,n }.

Find pair {i, j } at the position (i –1)(n –i /2) + j – i.

Total number of pairs n (n –1)/2; total bytes about 2n 2.

Page 34: 1 CPS216: Advanced Database Systems Data Mining Slides created by Jeffrey Ullman, Stanford.

34

Details of Approach (2)

You need a hash table, with i and j as the key, to locate (i, j, c) triples efficiently. Typically, the cost of the hash structure can be

neglected. Total bytes used is about 12p, where p is

the number of pairs that actually occur. Beats triangular matrix if at most 1/3 of

possible pairs actually occur.

Page 35: 1 CPS216: Advanced Database Systems Data Mining Slides created by Jeffrey Ullman, Stanford.

35

A-Priori Algorithm --- (1)

A two-pass approach called a-priori limits the need for main memory.

Key idea: monotonicity : if a set of items appears at least s times, so does every subset. Contrapositive for pairs: if item i does

not appear in s baskets, then no pair including i can appear in s baskets.

Page 36: 1 CPS216: Advanced Database Systems Data Mining Slides created by Jeffrey Ullman, Stanford.

36

A-Priori Algorithm --- (2) Pass 1: Read baskets and count in main

memory the occurrences of each item. Requires only memory proportional to #items.

Pass 2: Read baskets again and count in main memory only those pairs both of which were found in Pass 1 to be frequent. Requires memory proportional to square of

frequent items only.

Page 37: 1 CPS216: Advanced Database Systems Data Mining Slides created by Jeffrey Ullman, Stanford.

37

Picture of A-Priori

Item counts

Pass 1 Pass 2

Frequent items

Counts ofcandidate pairs

Page 38: 1 CPS216: Advanced Database Systems Data Mining Slides created by Jeffrey Ullman, Stanford.

38

Detail for A-Priori

You can use the triangular matrix method with n = number of frequent items. Saves space compared with storing

triples. Trick: number frequent items 1,2,

… and keep a table relating new numbers to original item numbers.

Page 39: 1 CPS216: Advanced Database Systems Data Mining Slides created by Jeffrey Ullman, Stanford.

39

Frequent Triples, Etc.

For each k, we construct two sets of k –tuples: Ck = candidate k – tuples = those

that might be frequent sets (support > s ) based on information from the pass for k –1.

Lk = the set of truly frequent k –tuples.

Page 40: 1 CPS216: Advanced Database Systems Data Mining Slides created by Jeffrey Ullman, Stanford.

40

C1 L1 C2 L2 C3Filter Filter ConstructConstruct

Firstpass

Secondpass

Page 41: 1 CPS216: Advanced Database Systems Data Mining Slides created by Jeffrey Ullman, Stanford.

41

A-Priori for All Frequent Itemsets

One pass for each k. Needs room in main memory to

count each candidate k –tuple. For typical market-basket data and

reasonable support (e.g., 1%), k = 2 requires the most memory.

Page 42: 1 CPS216: Advanced Database Systems Data Mining Slides created by Jeffrey Ullman, Stanford.

42

Frequent Itemsets --- (2)

C1 = all items

L1 = those counted on first pass to be frequent.

C2 = pairs, both chosen from L1.

In general, Ck = k –tuples each k –1 of which is in Lk-1.

Lk = those candidates with support ≥ s.