Khai Phá dữ liệu - Phát hiện luật kết hợp

download Khai Phá dữ liệu - Phát hiện luật kết hợp

of 47

Transcript of Khai Phá dữ liệu - Phát hiện luật kết hợp

  • 8/17/2019 Khai Phá dữ liệu - Phát hiện luật kết hợp

    1/47

    Khai Phá Dữ  Liệu

    Nguyễn Nhật Quang

    [email protected]

    Tr ườ ng Đại học Bách Khoa Hà Nội

    Viện Công nghệ Thông tin và Truyền thông

    Năm học 2011-2012

  • 8/17/2019 Khai Phá dữ liệu - Phát hiện luật kết hợp

    2/47

    Nội dung môn học:

    Giới thiệu về Khai phá dữ liệu

    Giới thiệu v công cụ WEKA

    Tiền xử lý dữ liệu

    Phát hiện các luật kết hợp

     

    Các kỹ thuật phân nhóm

    2Khai Phá Dữ  Li ệu

  • 8/17/2019 Khai Phá dữ liệu - Phát hiện luật kết hợp

    3/47

    Phát hiện các lu

    ật k 

    ết h

    ợ p – Gi

    ớ i thi

    ệu

    Bài toán phát hiện luật kết hợp (Association rule mining) Với m t t các iao d ch transactions cho tr ước cần tìm các

    luật dự đoán khả năng xuất hiện trong một giao dịch của các mục(items) này dựa trên việc xuất hiện của các mục khác

    TID Items

    1 Bread, Milk  

    Các ví dụ của luật kết hợp:

    Dia er    → Beer 2  Bread, Diaper, Beer, Eggs 

    3  Milk, Diaper, Beer, Coke{Milk, Bread} → {Eggs, Coke}

    {Beer, Bread} → {Milk} 

    , , ,

    5  Bread, Milk, Diaper, Coke

    3Khai Phá Dữ  Li ệu

  • 8/17/2019 Khai Phá dữ liệu - Phát hiện luật kết hợp

    4/47

    Cácđ ị

    nh ngh ĩ a c

    ơ b

    ản (1)

    Tập mục (Itemset) Một tập hợp gồm một hoặc nhiều mục

    Ví dụ: {Milk, Bread, Diaper}

    Tập mục mức k  (k -itemset) Một tập mục gồm k mục

    TID Items

    1 Bread, Milk  

    T ng s h tr  ợ (Support count) Số lần xuất hiện của một tập mục

    Ví dụ: σ({Milk, Bread, Diaper}) = 2

    , , ,

    3  Milk, Diaper, Beer, Coke

    4  Bread, Milk, Diaper, Beer 

      Độ hỗ tr ợ (Support) s Tỷ lệ các giao dịch chứa một tập mục

    Ví dụ: s({Milk, Bread, Diaper}) = 2/5

      , , ,

    Tập mục thường xuyên(Frequent/large itemset)

    Một tập mục mà độ hỗ tr ợ lớn hơnhoặc bằng một giá tr ị ngưỡng minsup

    4Khai Phá Dữ  Li ệu

  • 8/17/2019 Khai Phá dữ liệu - Phát hiện luật kết hợp

    5/47

    Cácđ ị

    nh ngh ĩ a c

    ơ b

    ản (2)

    Luật kết hợp (Associationrule)

    TID Items

    1 Bread, Milk  

    Một bi u thức kéo theo códạng: X → Y, trong đó X và Ylà các tập mục

    2  Bread, Diaper, Beer, Eggs 

    3  Milk, Diaper, Beer, Coke

    4  Bread, Milk, Diaper, Beer ,

    Các độ đo đánh giá luật   Đ  hỗ tr Su ort s

    5  Bread, Milk, Diaper, Coke

    Tỷ lệ các giao dịch chứa cả X và Y đối với tất cả cácgiao dịch

    ,

    4.02)Beer Diaper,,Milk (===

    σ  

    s

      Độ tin cậy (Confidence) c Tỷ lệ các giao dịch chứa cả 

    X và Y đối với các giao dịch 67.03

    2

    )Diaper ,Milk (

    )Beer Diaper,Milk,(===

    σ  

    σ  

    c

     

    5Khai Phá Dữ  Li ệu

  • 8/17/2019 Khai Phá dữ liệu - Phát hiện luật kết hợp

    6/47

    Phát hiện các lu

    ật k 

    ết h

    ợ p

    Với một tập các giao dịch T , mục đích của bài toán phát

      độ hỗ tr ợ ≥ giá tr ị ngưỡng minsup, và   độ tin cậy ≥ giá tr ị ngưỡng minconf 

    Cách tiếp cận vét cạn (Brute-force)

    Liệt kê tất cả các luật kết hợp có thể n o n r  ợ v n c y c o m u

    Loại bỏ đi các luật có độ hỗ tr ợ nhỏ hơn minsup hoặc có độ tincậy nhỏ hơn minconf 

    ⇒ Phương pháp vét cạn này có chi phí tính toán quálớn, không áp dụng được trong thực tế!

    6Khai Phá Dữ  Li ệu

  • 8/17/2019 Khai Phá dữ liệu - Phát hiện luật kết hợp

    7/47

    Phát hiện lu

    ật k 

    ết h

    ợ p

    Các luật kết hợp:

    {Milk, Diaper} → {Beer} (s=0.4, c=0.67)

    TID Items

    1 Bread, Milk  

    {Milk, Beer} → {Diaper} (s=0.4, c=1.0)

    {Diaper, Beer} → {Milk} (s=0.4, c=0.67){Beer} → {Milk, Diaper} (s=0.4, c=0.67)

    = =

      rea , aper, eer, ggs 

    3  Milk, Diaper, Beer, Coke

    4  Bread, Milk, Diaper, Beer 

    Tất cả các luật trên đều là sự phân tách (thành 2 tập con) của

    , . , .

    {Milk} → {Diaper, Beer} (s=0.4, c=0.5)5  Bread, Milk, Diaper, Coke

    cùng tập mục : {Milk, Diaper, Beer}

    Các luật sinh ra từ cùng một tập mục sẽ có cùng độ hỗ tr ợ,

    Do đó, trong quá trình phát hiện luật kết hợp, chúng ta có thể tách riêng 2 yêu cầu về độ hỗ tr ợ và độ tin cậy

    7Khai Phá Dữ  Li ệu

  • 8/17/2019 Khai Phá dữ liệu - Phát hiện luật kết hợp

    8/47

    Phát hiện lu

    ật k 

    ết h

    ợ p

    Quá trình phát hiện luật kết hợp sẽ gồm 2 bước (2 giai

    Sinh ra các tập mục thường xuyên (frequent/large itemsets)

    Sinh ra tất cả các tập mục có độ hỗ tr ợ ≥ minsup

    Sinh ra các luật kết hợp

    Từ mỗi tập mục thường xuyên (thu được ở bước trên), sinh ra

    Mỗi luật là một phân tách nhị phân (phân tách thành 2 phần)của một tập mục thường xuyên

    Bước sinh ra các tập mục thường xuyên (bước thứ 1)vẫn có chi phí tính toán quá cao!

    8Khai Phá Dữ  Li ệu

  • 8/17/2019 Khai Phá dữ liệu - Phát hiện luật kết hợp

    9/47

    Lattice biểu di

    ễn các t

    ập m

    ục c

    ần xét

    Với d 

    null

    mục, thìphải xét

     A B C D E

     

    các tập

    mục có

     AB AC AD AE BC BD BE CD CE DE

     ABC ABD ABE ACD ACE ADE BCD BCE BDE CDE

     ABCD ABCE ABDE ACDE BCDE

    9Khai Phá Dữ  Li ệu

     ABCDE

  • 8/17/2019 Khai Phá dữ liệu - Phát hiện luật kết hợp

    10/47

    Sinh ra các tập m

    ục th

    ườ ng xuyên

    TID  Items

    rea ,

    2 Bread, Diaper, Beer, Eggs 

    3 Milk, Diaper, Beer, Coke 

    4 Bread Milk Dia er Beer 

    5 Bread, Milk, Diaper, Coke 

      -

    Mỗi tập mục trong lattice đều được xét

    Tính độ hỗ tr ợ của mỗi tập mục, bằng cách duyệt qua tất cả các

    g ao c Với mỗi giao dịch, so sánh nó với mỗi tập mục được xét

      Độ phức tạp ~ O(N.M.w)

    Với M = 2d, thì độ phức tạp này là quá lớn!

    10Khai Phá Dữ  Li ệu

  • 8/17/2019 Khai Phá dữ liệu - Phát hiện luật kết hợp

    11/47

    Các chiến lượ c sinh tập mục thườ ng xuyên

    Giảm bớt số lượng các tập mục cần xét (M) Tìm kiếm xét đầ  đủ: M=2d

    Sử dụng các kỹ thuật cắt tỉ a (pruning) để giảm giá tr ị M Giảm bớt số lư n các iao d ch cần xét N

    Giảm giá tr ị N, khi kích thước (số lượng các mục) của

    tập mục tăng lên Giảm bớt s lượng các so sánh

    (matchings/comparisons) giữa các tập mục và cácgiao dịch (N.M) Sử dụng các cấu trúc dữ liệu phù hợp (hiệu quả) để 

    lưu các tập mục cần xét hoặc các giao dịch 

    11Khai Phá Dữ  Li ệu

  • 8/17/2019 Khai Phá dữ liệu - Phát hiện luật kết hợp

    12/47

    Giảm b

    ớ t s

    ốlượ 

    ng các tập m

    ục c

    ần xét

    Nguyên tắc của giải thuật Apriori – Loại bỏ (prunning)

    Nếu một tập mục là thường xuyên, thì tất cả các tập con(subsets) của nó đều là các tập mục thường xuyên

      ,

    các tập cha (supersets) của nó đều là các tập mục không thường

    xuyên

    Nguyên tắc của giải thuật Apriori dựa trên đặc tínhkhông đơn điệu (anti-monotone) của độ hỗ tr ợ

      Độ hỗ tr ợ của một tập mục nhỏ hơn độ hỗ tr ợ của các tập con

    )()()(:,   Y s X sY  X Y  X    ≥⇒⊆∀

    của nó

    12Khai Phá Dữ  Li ệu

  • 8/17/2019 Khai Phá dữ liệu - Phát hiện luật kết hợp

    13/47

     Apriori: Loại b

    ỏd

    ựa trên

    đ ộh

    ỗtr

    ợ 

    Tập mục

    thườngxuyên

    Các tập cha của tập

    13Khai Phá Dữ  Li ệu

    mục oạ  

  • 8/17/2019 Khai Phá dữ liệu - Phát hiện luật kết hợp

    14/47

     Apriori: Loại b

    ỏd

    ựa trên

    đ ộh

    ỗtr

    ợ 

    Item Count

    Bread 4

    Các tập mục mứ c 1 (1-itemsets)

    o e

    Milk 4Beer 3Diaper 4

    Itemset Count{Bread,Milk} 3{Bread,Beer} 2

    Các tập mục mứ c 2 (2-itemsets)

    {Bread,Diaper} 3{Milk,Beer} 2{Milk,Diaper} 3{Beer,Diaper} 3

     mục có chứ a mục Coke 

    hoặc Eggs )

    Các tập mục mứ c 3

    (3-itemsets)

    minsup = 3

    •Nế u xét tấ t cả các tập mục có thể : 

    { B r e a d , M i l k , D i a p e r } 3C1 + C2 + C3 = 41• Với cơ chế  loại bỏ dự a trên độ hỗ trợ:

    6 + 6 + 1 = 13

    14Khai Phá Dữ  Li ệu

  • 8/17/2019 Khai Phá dữ liệu - Phát hiện luật kết hợp

    15/47

    Giải thu

    ật Apriori

    Sinh ra tất cả các tập mục thường xuyên mức 1 (frequent-

    Gán k = 1 Lặp lại, cho đến khi không có thêm bất kỳ tập mục

    thường xuyên nào mới Từ các tập mục thường xuyên mức k (chứa k mục), sinh ra các

    Loại bỏ các tập mục mức (k+1) chứa các tập con là các tập mụckhông thường xuyên mức k

      ,

    tất cả các giao dịch

    Loại bỏ các tập mục không thường xuyên mức (k+1)

    u ược c c p mục ư ng xuy n m c

    15Khai Phá Dữ  Li ệu

  • 8/17/2019 Khai Phá dữ liệu - Phát hiện luật kết hợp

    16/47

    Giảm b

    ớ t s

    ốlượ 

    ng các so sánh Các so sánh (matchings/comparisons) giữa các tập mục cần xét và

    các giao dịch C n phải duyệt qua t t cả các giao dịch, đ  tính độ h tr ợ của m i tập

    mục cần xét

      Để giảm bớt số lượng các so sánh, cần sử  d ụng c ấu trúc băm (hashstructure) để l ư u các t ậ p mục c ần xét  Thay vì phải so sánh mỗi giao dịch với mỗi tập mục cần xét, thì chỉ  cần

    so sánh giao dịch đó với các tập mục chứa trong các ô (hashed buckets)

    TID  Items

    1 Bread Milk 

    2 Bread, Diaper, Beer, Eggs 

    3 Milk, Diaper, Beer, Coke 

    4 Bread, Milk, Diaper, Beer 

    5 Bread, Milk, Diaper, Coke 

    16Khai Phá Dữ  Li ệu

     

  • 8/17/2019 Khai Phá dữ liệu - Phát hiện luật kết hợp

    17/47

    Sinh ra cây băm (hash tree)

    Giả sử chúng ta có 15 tập mục mức 3 cần xét:{1 4 5}, {1 2 4}, {4 5 7}, {1 2 5}, {4 5 8}, {1 5 9}, {1 3 6}, {2 3 4}, {5 6 7}, {3

    , , , , ,

    Sinh ra cây băm (Hash tree): Hàm băm (Hash function) – Ví dụ: h(p) = p mod 3 Kích thước tối đa của nút lá (Max leaf size): Số lượng tối đã các tập

    mục được lưu ở một nút lá (Nếu số lượng các tập mục vượt quá giá tr  ị

    này, nút đó sẽ tiếp tục bị phân chia) – Ví dụ: Max leaf size = 3

    2 3 4

    5 6 73,6,9

    (Hàm băm)

      1 3 6

    1 2 4

    3 4 5  3 5 7

    6 8 9

     

    3 6 8

    , ,

    2,5,8

    17Khai Phá Dữ  Li ệu

     4 5 8

     

  • 8/17/2019 Khai Phá dữ liệu - Phát hiện luật kết hợp

    18/47

    Phát hiện luật k ết hợ p bằng cây băm (1)

    (Hàm băm)Cây băm lưu các tậ p mục cần xét

    1,4,7 3,6,9

    2 3 4

    5 6 7

    , ,

    1 4 5 1 3 6

    3 4 5 3 6 73 5 6Băm

    (hash)

    1 5 9

     

    6 8 91 2 4

    4 5 7

    1 2 5

    4 5 8

     1, 4,

    hoặc 7

    18Khai Phá Dữ  Li ệu

  • 8/17/2019 Khai Phá dữ liệu - Phát hiện luật kết hợp

    19/47

    Phát hiện luật k ết hợ p bằng cây băm (2)

    (Hàm băm)Cây băm lưu các tậ p mục cần xét

    1,4,7 3,6,9

    2 3 4

    5 6 7

    , ,

    1 4 5 1 3 6

    3 4 5 3 6 73 5 6Băm

    1 5 9

     

    6 8 91 2 4

    4 5 7

    1 2 5

    4 5 8

    asđối với2, 5,

    19Khai Phá Dữ  Li ệu

     

  • 8/17/2019 Khai Phá dữ liệu - Phát hiện luật kết hợp

    20/47

    Phát hiện luật k ết hợ p bằng cây băm (3)

    (Hàm băm)Cây băm lưu các tậ p mục cần xét

    1,4,7 3,6,9

    2 3 4

    5 6 7

    , ,

    1 4 5 1 3 6

    3 4 5 3 6 73 5 6Băm

    1 5 9

     

    6 8 91 2 4

    4 5 7

    1 2 5

    4 5 8

     

    đối với3, 6,

    ho c 9

    20Khai Phá Dữ  Li ệu

  • 8/17/2019 Khai Phá dữ liệu - Phát hiện luật kết hợp

    21/47

    Các tập mục mức k trong một giao dịch

     Đối với giaod ch t  hã xác 

    định các tậpmục mức 3?

    Giả sử tronmỗi tập mục,các mục

    được liệt kê

    từ điển

    21Khai Phá Dữ  Li ệu

  • 8/17/2019 Khai Phá dữ liệu - Phát hiện luật kết hợp

    22/47

    Xác đ ịnh các tập mục bằng cây băm (1)

    1 2 3 5 6(Hàm băm)Giao dịch t 

    1 + 2 3 5 6 3 5 62 + 1,4,7

    2,5,8

    3,6,9

    2 3 4

     

    1 4 5 1 3 6

    3 4 5 3 6 73 5 6

    5 6 7

    1 5 9

    3 6 83 5 76 8 91 2 4 1 2 5

    22Khai Phá Dữ  Li ệu

     

  • 8/17/2019 Khai Phá dữ liệu - Phát hiện luật kết hợp

    23/47

    Xác đ ịnh các tập mục bằng cây băm (2)(Hàm băm)

    1 2 3 5 6 Giao dịch t 

    1,4,72,5,8

    3,6,93 5 61 2 +

    3 5 62 +

    +

    1 + 2 3 5 6

    2 3 4

    5 61 3 +

    61 5 +

     

    1 4 5 1 3 6

    3 4 5 3 6 73 5 6

     

    1 5 93 6 83 5 7

    6 8 91 2 4

    4 5 7

    1 2 5

    4 5 8 Chỉ cần so sánh giao dịch t vớ i 11

    23Khai Phá Dữ  Li ệu

     (trong tổng số 15) tậ p mục cần xét!

  • 8/17/2019 Khai Phá dữ liệu - Phát hiện luật kết hợp

    24/47

     Apriori: Các y ếu tố ảnh hưở ng đ ộ phức tạp

    Lựa chọn giá tr ị ngưỡng minsup Giá tr ị minsup quá thấp sẽ sinh ra nhiều tập mục thường xuyên   Điều này có th làm tăng số lượng các tập mục phải xét và độ 

    dài (kích thước) tối đa của các tập mục thường xuyên Số lượng các mục trong cơ sở dữ liệu (các giao dịch)

    Cần thêm bộ nhớ để lưu giá tr ị độ hỗ tr ợ đối với mỗi mục Nếu số lượng các mục (tập mục mức 1) thường xuyên tăng lên,

    thì chi phí tính toán và chi phí I/O (duyệt các giao dịch) cũng tăng Kích thước của cơ sở dữ liệu (các giao dịch)

    Giải thuật Apriori duyệt cơ sở dữ liệu nhiều lần. Do đó, chi phítính toán của Apriori tăng lên khi số lượng các giao dịch tăng lên

    Kích thước trung bình của các giao dịch Khi kích thước (số lượng các mục) trung bình của các giao dịch

    tăng lên, thì độ dài tối đa của các tập mục thường xuyên cũng,

    24Khai Phá Dữ  Li ệu

  • 8/17/2019 Khai Phá dữ liệu - Phát hiện luật kết hợp

    25/47

    Biểu diễn các tập mục thườ ng xuyên

    Trong thực tế, số lượng các tập mục thường xuyên được

    Cần một cách biểu diễn ngắn gọn (compact

    Bằng một tập (nhỏ) các tập mục thường xuyên đại diện – mà cóthể dùng để suy ra (sinh ra) tất cả các tập mục thường xuyên

    Có 2 cách biểu diễn như vậy 

    Các tập mục thường xuyên đóng (Closed frequent itemsets)

    25Khai Phá Dữ  Li ệu

  • 8/17/2019 Khai Phá dữ liệu - Phát hiện luật kết hợp

    26/47

    Các tập mục thườ ng xuyên lớ n nhất Một tập mục thường xuyên là lớn nhất (Maximal frequent itemset), nếu

    mọi tập cha (superset) của nó đều là tập mục không thường xuyên

    Các tập mục

    thường xuyênlớn nhất

    Các tập mục

    26Khai Phá Dữ  Li ệu

    Ranh giớing

    thường xuyên

  • 8/17/2019 Khai Phá dữ liệu - Phát hiện luật kết hợp

    27/47

    Các tập mục thườ ng xuyên đ óng 

    Một tập mục thường xuyên là đóng (Closed frequent itemset),nếu khôn có t cha nào của nó có cùn đ  hỗ tr với nó

    Itemset Support

    TID Items

    1 {A,B}

    2 {B,C,D}

    {B} 5

    {C} 3

    D 4

    Itemset Support

    {A,B,C} 2

    {A,B,D} 3, , ,

    4 {A,B,D}

    5 {A,B,C,D}

    {A,B} 4

    {A,C} 2

    {A,D} 3

    {A,C,D} 2

    {B,C,D} 3

    {A,B,C,D} 2

    {B,C} 3{B,D} 4

    {C,D} 3

    27Khai Phá Dữ  Li ệu

  • 8/17/2019 Khai Phá dữ liệu - Phát hiện luật kết hợp

    28/47

     Tập mục thườ ng xuyên: lớ n nhất vs. đ óng (1)

    TID Items

    null

    124 123 1234 245 345

    TIDs

    1 ABC

    2 ABCD

    3 BCE 12 124 24 4 123 2 3

    4 ACDE

    5 DE

    AB AC AD AE BC BD BE CD CE DE

    ABC ABD ABE ACD ACE ADE BCD BCE BDE CDE

    12 2 24 4 4 2 3 4

    ABCD ABCE ABDE ACDE BCDE2 4

    Không được hỗ tr ợ bởi

    28Khai Phá Dữ  Li ệu

    ABCDEbất kỳ giao dịch nào

  • 8/17/2019 Khai Phá dữ liệu - Phát hiện luật kết hợp

    29/47

     Tập mục thườ ng xuyên: lớ n nhất vs. đ óng (2)

    Minsup = 2 null

    124 123 1234 245 345

     Đóng, nhưng khôngphải là lớn nhất

    A B C D E

    12 124 24 4 123 2

     Đóng và

    lớn nhất

    AB AC AD AE BC BD BE CD CE DE

    ABC ABD ABE ACD ACE ADE BCD BCE BDE CDE3 4

    ABCD ABCE ABDE ACDE BCDE2 4 # Đóng = 9# Lớn nhất = 4

    29Khai Phá Dữ  Li ệu

    ABCDE

  • 8/17/2019 Khai Phá dữ liệu - Phát hiện luật kết hợp

    30/47

     Tập mục thườ ng xuyên: lớ n nhất vs. đ óng (3)

    Bất kỳ tập mụcthường xuyên lớnnhất nào cũng là

    tập mục thườngxuyên đóng

    Cách biểu diễn sử dụng tập mụcthường xuyên lớnnhất không giữ thông tin về độ hỗ tr ợ của các tập

    con (của m i tậpmục thườngxuyên lớn nhất)

    30Khai Phá Dữ  Li ệu

  • 8/17/2019 Khai Phá dữ liệu - Phát hiện luật kết hợp

    31/47

    Giải thuật FP-Growth

    Một phương pháp khác cho việc xác định các tập mục

    Nhớ lại: Apriori sử dụng cơ chế sinh-kiểm tra (sinh ra các tậpmục cần xét, và kiểm tra xem mỗi tập mục có phải là thường

    FP-Growth biểu diễn dữ liệu của các giao dịch bằng một- 

    FP-Growth sử dụng cấu trúc FP-tree để xác định tr ựctiế các t m c thườn xu ên 

    31Khai Phá Dữ  Li ệu

  • 8/17/2019 Khai Phá dữ liệu - Phát hiện luật kết hợp

    32/47

    Biểu diễn bằng FP-tree

    Với mỗi giao dịch, FP-tree xây dựng một đường đi (path)

    Hai giao dịch có chứa cùng một số các mục, thì đường đi

    Càng nhiều các đường đi có các phần chung, thì việc biểu diễnbằng FP-tree sẽ càng gọn (compressed/compacted)

    Nếu kích thước của FP-tree đủ nhỏ để có thể lưu tr ữ trong bộ nhớ làm việc, thì giải thuật FP-Growth có thể 

    lưu trong bộ nhớ Không cần phải lặp lại việc duyệt dữ liệu lưu trên ổ cứng

    32Khai Phá Dữ  Li ệu

  • 8/17/2019 Khai Phá dữ liệu - Phát hiện luật kết hợp

    33/47

    Xây dựng FP-tree (1)

    Ban đầu, FP-tree chỉ  chứa duy nhất nút gốc (được biểudiễn bởi k hiệu null 

    Cơ sở dữ liệu các giao dịch được duyệt lần thứ 1, để xácđịnh tính độ hỗ tr ợ của mỗi mục

    Các mục không thường xuyên (infrequent items) bị loại bỏ

    c mục ư ng xuy n requen ems ược s p x ptheo thứ tự giảm dần về độ hỗ tr ợ Trong ví dụ (ở các slides tiếp theo), thứ tự giảm dần về độ hỗ tr ợ:

     A, B, C, D, E

    Cơ sở dữ liệu các giao dịch được duyệt lần thứ 2, để xâyựng - ree

    33Khai Phá Dữ  Li ệu

  • 8/17/2019 Khai Phá dữ liệu - Phát hiện luật kết hợp

    34/47

    Xây dựng FP-tree (2)

    null(Sau khi xétgiao dịch thứ 1)

    (Sau khi xét

    giao dịch thứ 2)

    null

    TID Items

    1   A,B

    A:1 A:1 B:1

    2 {B,C,D}

    3 {A,C,D,E}

    4 {A,D,E} D:1null5 {A,B,C}

    6 {A,B,C,D}

    7 {A}

    A:2 B:1

    , ,

    9 {A,B,D}

    10 {B,C,E}

    B:1 C:1:

    D:1

    (Sau khi xétgiao dịch thứ 3)

    34Khai Phá Dữ  Li ệu

    :E:1

  • 8/17/2019 Khai Phá dữ liệu - Phát hiện luật kết hợp

    35/47

    Xây dựng FP-tree (3)

    null

    TID Items

    1 {A,B}

    2 {B,C,D}

    Cơ sở dữ liệu các giao

    (Sau khi xét giao

    dịch thứ 10)

    A:8 B:2

    3 {A,C,D,E}

    4 {A,D,E}5 {A,B,C}

    6 {A,B,C,D}

    B:5 C:2C:1 D:1

    7 {A}

    8 {A,B,C}

    9 {A,B,D}

    10 B C E

    D:1

    D:1C:3

    E:1Item Pointer  

    Bảng con tr ỏE:1

    D:1Các con tr ỏ được sử dụng trong

    uá trình sinh các t m c

    E:1BC

    D

    35Khai Phá Dữ  Li ệu

    thường xuyên của FP-GrowthE

  • 8/17/2019 Khai Phá dữ liệu - Phát hiện luật kết hợp

    36/47

    FP-Growth: Sinh các tập mục thườ ng xuyên

    FP-Growth sinh các tập mục thường xuyên tr ực tiếp- -,

    Trong ví dụ trên, FP-Growth tr ước hết tìm các tập mục thườngxuyên kết thúc bởi E… sau đó mới tìm các tập mục thường xuyên… … …

    Vì mỗi giao dịch được biểu diễn bằng một đường đi- ,

    thường xuyên kết thúc bởi một mục (vd: E), bằng cáchduyệt các đường đi chứa mục đó (E) ng ư ng n y ược x c n ng ng c c con r

    gắn với nút đó (vd: E)

    36Khai Phá Dữ  Li ệu

  • 8/17/2019 Khai Phá dữ liệu - Phát hiện luật kết hợp

    37/47

    Các đ ườ ng đ i k ết thúc bở i một mục

    (Các

    đường(Các

    đườngđi kết

    thúcbởi e)

    đi kết

    thúcbởi d)

    (Các đường đi (Các đường đi (Các đường đi

    37Khai Phá Dữ  Li ệu

    kết thúc bởi c) kết thúc bởi b) kết thúc bởi a)

  • 8/17/2019 Khai Phá dữ liệu - Phát hiện luật kết hợp

    38/47

    Xác đ ịnh các tập mục thườ ng xuyên

    FP-Growth tìm tất cả các tập mục thường xuyên kết thúc – - 

    and-conquer) Ví dụ, cần tìm tất cả các tập mục thường xuyên kết thúc bởi e

    Tr ước h t, ki m tra tập mục mức 1 ({e}) có ph i là tập mụcthường xuyên

    Nếu nó là tập mục thường xuyên, xét các bài toán con: tìm tất cả c c t p mục t   ư ng xuy n t t c e… ce… e…vbởi ae

    Mỗi bài toán con nêu trên lại được phân tách thành các bài toáncon n ơn…

    Kết hợp các lời giải của các bài toán con, chúng ta sẽ thu đượccác tập mục thường xuyên kết thúc bởi e

    38Khai Phá Dữ  Li ệu

  • 8/17/2019 Khai Phá dữ liệu - Phát hiện luật kết hợp

    39/47

     Vd: Các tập mục thườ ng xuyên k ết thúc bở i e 

    Xác định tất cả các đường đi-

    Các đường đi tiền tố (prefix paths) đốivới e

    Dựa vào các đường đi tiền tố đốivới e, xác định độ hỗ tr ợ của e,

    gắn với nút e

    =

    Các đường đitiền tố đối với e

      ,

    là tập mục thường xuyên (vì nócó độ hỗ tr ợ =3 > minsup)

    39Khai Phá Dữ  Li ệu

  • 8/17/2019 Khai Phá dữ liệu - Phát hiện luật kết hợp

    40/47

     Vd: Các tập mục thườ ng xuyên k ết thúc bở i e 

    Vì {e} là tập mục thường xuyên, nên FP-Growth phải giải

    kết thúc bởi de…bởi ce…bởi be…và bởi ae   ,

    biểu diễn FP-tree có điều kiện (conditional FP-tree) Có cấu trúc tương tự như FP-tree

      ược ng m c c p mục ư ng xuy n c mmục

    40Khai Phá Dữ  Li ệu

  • 8/17/2019 Khai Phá dữ liệu - Phát hiện luật kết hợp

    41/47

    Xây dựng FP-tree có đ iều kiện

    Cập nhật các giá tr ị hỗ tr ợ đối với cácđường đi tiền tố Vì một số giá tr ị hỗ tr ợ đã tính đến cả các

    giao dịch không chứa mục e Ví d :  Đườn đi null → b:2 → c:2 → e:1 đã

    tính đến cả giao dịch {b,c} không chứa mụce. Do đó, giá tr ị hỗ tr ợ phải gán bằng 1, để 

    thể hiện số lượng các giao dịch chứa {b,c ,e} Loại bỏ nút e khỏi các đường đi tiền tố

    Sau khi cập nhật các giá tr ị hỗ tr ợ đối vớiFP-tree có điềukiện đối với e

      ,

    nên không thường xuyên → Bị loại bỏ Vd: Nút b bây giờ có giá tr ị hỗ tr ợ =1

    →  oạ  

    41Khai Phá Dữ  Li ệu

  • 8/17/2019 Khai Phá dữ liệu - Phát hiện luật kết hợp

    42/47

     Vd: Các tập mục thườ ng xuyên k ết thúc bở i e 

    FP-Growth sử dụng cấu trúc biểu diễn FP-tree có điều kiện đối với e, để giải quyết cácbài toán con: tìm các tập mục thường xuyên

    kết thúc bởi de…bởi ce…bởi be…và bởi ae

    : m c c p mục ư ng xuy nthúc bởi de, các đường đi tiền tố đối với d 

    được xây dựng từ biểu diễn FP-tree có điềukiện đ i với e

    Bằng cách cộng với giá tr ị hỗ tr ợ gắn với nútCác đường đi

    tiền tố đối với de

    ,

    {d ,e}

      Độ hỗ tr ợ của {d ,e}=2: nó là một tập mụcư ng xuy n

    42Khai Phá Dữ  Li ệu

  • 8/17/2019 Khai Phá dữ liệu - Phát hiện luật kết hợp

    43/47

    Sinh ra các luật k ết hợ p (1)

    Với mỗi tập mục thường xuyên L, cần tìm tất cả các tập

    kiện về độ tin cậy tối thiểu Vd: Với tập mục thường xuyên {A,B,C,D}, các luật

    c n xét g m có:

     ABC → D, ABD → C, ACD → B, BCD → A,

    , , , AB → CD, AC → BD, AD → BC, BC → AD,

    BD → AC, CD → AB,

    Nếu |L| = k, thì sẽ phải xét (2k – 2) các luật kết hợp cóthể bỏ ua 2 lu t: L →∅ và   ∅ → L 

    43Khai Phá Dữ  Li ệu

  • 8/17/2019 Khai Phá dữ liệu - Phát hiện luật kết hợp

    44/47

    Sinh ra các luật k ết hợ p (2)

    Làm thế nào để sinh ra các luật từ các tập mục thườngxu ên m t cách có hi u uả?

    Xét tổng quát, độ tin cậy không có đặc tính khôngđơn điệu (anti-monotone)

    c(ABC → D) có thể lớn hơn hoặc nhỏ hơn c(AB → D)

    Nhưng, độ tin cậy của các luật được sinh ra từ cùngm t t p mục thư ng xuy n th lại c đ c t nh kh ngđơn điệu

    Ví d : Với L = A B C D : 

    c(ABC → D) ≥ c(AB → CD) ≥ c(A → BCD)   Độ tin cậy có đặc tính không đơn điệu đối với số lượng các mục

    ở vế  hải của lu t

    44Khai Phá Dữ  Li ệu

  • 8/17/2019 Khai Phá dữ liệu - Phát hiện luật kết hợp

    45/47

     Apriori: Sinh ra các luật (1)Lattice của các luật

    Luật có độ tin cậy th p

    Các luật

    45Khai Phá Dữ  Li ệu

    bị loại bỏ

  • 8/17/2019 Khai Phá dữ liệu - Phát hiện luật kết hợp

    46/47

     Apriori: Sinh ra các luật (2)

    Các luật cần xét được sinh ra bằng cách kết hợp 2 luật 

    (rule consequent)

    Ví dụ: Kết hợp 2 luật

    (CD → AB, BD → AC)

    D → ABC

    Loại bỏ luật D → ABC nếu bất kỳ mộtluật con của nó (AD → BC, BCD → A, …) không có độn c y cao m ncon

    46Khai Phá Dữ  Li ệu

  • 8/17/2019 Khai Phá dữ liệu - Phát hiện luật kết hợp

    47/47

     Tài liệu tham khảo

    • P.-N. Tan, M. Steinbach, and V. Kumar. Introduction to Data Mining

    cha ter 6  . Addison-Wesle 2005. 

    47Khai Phá Dữ  Li ệu