Successfully reported this slideshow.
We use your LinkedIn profile and activity data to personalize ads and to show you more relevant ads. You can change your ad preferences anytime.

Practical Data Mining: FP-Growth

2,933 views

Published on

This slide presents FP-Growth technique.

Published in: Data & Analytics

Practical Data Mining: FP-Growth

  1. 1. Practical Data Mining: FP-Growth (data)3
 base|warehouse|mining http://www.dataminingtrend.com
 http://facebook.com/datacube.th ! Eakasit Pacharawongsakda, Ph.D. Data Cube: http://facebook.com/datacube.th
  2. 2. (data)3
 base|warehouse|mining http://dataminingtrend.com http://facebook.com/datacube.th Market Basket Analysis • เทคนิคการหากฏความสัมพันธ์ (Association Rules) • Apriori (Agrawal and Srikant, 1994) • สร้างรูปแบบของสินค้า (itemset) ที่มีจำนวนเพิ่มขึ้นทีละ 1 • คำนวณค่า support จากในฐานข้อมูล • ข้อเสียคือต้องดึงข้อมูลจากฐานข้อมูลหลายรอบทำให้ทำงานช้า • FP-Growth (Han, Pei and Yin, 2000) • อ่านข้อมูลในฐานข้อมูลและสร้าง FP-tree • คำนวณค่า support จาก FP-tree • ทำงานได้เร็วกว่าวิธี Apriori 2 • J. Han, H. Pei, and Y. Yin. Mining Frequent Patterns without Candidate Generation. In: Proc. Conf. on the Management of Data (SIGMOD’00, Dallas, TX). ACM Press, New York, NY, USA 2000 • R. Agrawal and R. Srikant, Fast algorithms for mining association rules in large databases, Proceedings of the 20th International Conference on Very Large Data Bases, VLDB, pages 487-499, Santiago, Chile, September 1994
  3. 3. (data)3
 base|warehouse|mining http://dataminingtrend.com http://facebook.com/datacube.th FP-Growth • หลักการของเทคนิค FP-Growth • ขั้นตอนที่ 1 สร้าง compact data structure ที่เรียกว่า FP-tree • การสร้าง FP-Tree อ่านข้อมูลจากฐานข้อมูลเพียงแค่ 2 ครั้งเท่านั้น • หาค่า support ของรูปแบบการซื้อสินค้า (item) ที่มีความยาว 1 • ในแต่ละ transaction เรียงลำดับ (sort) ตามค่า support • สร้าง FP-Tree จากการอ่านข้อมูลในฐานข้อมูลเพียงหนึ่งรอบ • ขั้นตอนที่ 2 สร้างรูปแบบของสินค้าที่ซื้อบ่อยๆ (frequent itemset) จาก FP-tree 3
  4. 4. (data)3
 base|warehouse|mining http://dataminingtrend.com http://facebook.com/datacube.th FP-Growth • ขั้นตอนที่ 1 สร้าง compact data structure ที่เรียกว่า FP-tree • การสร้าง FP-Tree อ่านข้อมูลจากฐานข้อมูลเพียงแค่ 2 ครั้งเท่านั้น • หาค่า support ของรูปแบบการซื้อสินค้า (item) ที่มีความยาว 1 4 Items Transaction ID Support 1 2 3 4 Apple 1 0 1 0 2/4 = 50% Beer 0 1 1 1 3/4 = 75% Cereal 1 1 1 0 3/4 = 75% Diapers 1 0 0 0 1/4 = 25% Eggs 0 1 1 1 3/4 = 75% Items Transaction ID Support 1 2 3 4 Apple 1 0 1 0 2/4 = 50% Beer 0 1 1 1 3/4 = 75% Cereal 1 1 1 0 3/4 = 75% Diapers 1 0 0 0 1/4 = 25% Eggs 0 1 1 1 3/4 = 75%
  5. 5. (data)3
 base|warehouse|mining http://dataminingtrend.com http://facebook.com/datacube.th FP-Growth • ขั้นตอนที่ 1 สร้าง compact data structure ที่เรียกว่า FP-tree • การสร้าง FP-Tree อ่านข้อมูลจากฐานข้อมูลเพียงแค่ 2 ครั้งเท่านั้น • หาค่า support ของรูปแบบการซื้อสินค้า (item) ที่มีความยาว 1 • เรียงลำดับตามค่า support ที่คำนวณได้ 5 Items Transaction ID Support 1 2 3 4 Beer 0 1 1 1 3/4 = 75% Cereal 1 1 1 0 3/4 = 75% Eggs 0 1 1 1 3/4 = 75% Apple 1 0 1 0 2/4 = 50% Diapers 1 0 0 0 1/4 = 25% Transaction ID Items 1 Cereal, Apple, Diapers 2 Beer, Cereal, Eggs 3 Beer, Cereal, Eggs, Apple 4 Beer, Eggs เรียงลำดับตามค่า support จากมากไปน้อย
  6. 6. (data)3
 base|warehouse|mining http://dataminingtrend.com http://facebook.com/datacube.th FP-Growth • ขั้นตอนที่ 1 สร้าง compact data structure ที่เรียกว่า FP-tree • การสร้าง FP-Tree อ่านข้อมูลจากฐานข้อมูลเพียงแค่ 2 ครั้งเท่านั้น • หาค่า support ของรูปแบบการซื้อสินค้า (item) ที่มีความยาว 1 • เรียงลำดับตามค่า support ที่คำนวณได้ • สร้าง FP-Tree จากการอ่านข้อมูลในฐานข้อมูลเพียงหนึ่งรอบ 6 Transaction ID Items 1 Cereal, Apple, Diapers 2 Beer, Cereal, Eggs 3 Beer, Cereal, Eggs, Apple 4 Beer, Eggs Cereal:1 NULL Item support 
 count
  7. 7. (data)3
 base|warehouse|mining http://dataminingtrend.com http://facebook.com/datacube.th FP-Growth • ขั้นตอนที่ 1 สร้าง compact data structure ที่เรียกว่า FP-tree • การสร้าง FP-Tree อ่านข้อมูลจากฐานข้อมูลเพียงแค่ 2 ครั้งเท่านั้น • หาค่า support ของรูปแบบการซื้อสินค้า (item) ที่มีความยาว 1 • เรียงลำดับตามค่า support ที่คำนวณได้ • สร้าง FP-Tree จากการอ่านข้อมูลในฐานข้อมูลเพียงหนึ่งรอบ 7 Transaction ID Items 1 Cereal, Apple, Diapers 2 Beer, Cereal, Eggs 3 Beer, Cereal, Eggs, Apple 4 Beer, Eggs Cereal:1 NULL Apple:1
  8. 8. (data)3
 base|warehouse|mining http://dataminingtrend.com http://facebook.com/datacube.th FP-Growth • ขั้นตอนที่ 1 สร้าง compact data structure ที่เรียกว่า FP-tree • การสร้าง FP-Tree อ่านข้อมูลจากฐานข้อมูลเพียงแค่ 2 ครั้งเท่านั้น • หาค่า support ของรูปแบบการซื้อสินค้า (item) ที่มีความยาว 1 • เรียงลำดับตามค่า support ที่คำนวณได้ • สร้าง FP-Tree จากการอ่านข้อมูลในฐานข้อมูลเพียงหนึ่งรอบ 8 Transaction ID Items 1 Cereal, Apple, Diapers 2 Beer, Cereal, Eggs 3 Beer, Cereal, Eggs, Apple 4 Beer, Eggs Diapers:1 Cereal:1 NULL Apple:1
  9. 9. (data)3
 base|warehouse|mining http://dataminingtrend.com http://facebook.com/datacube.th FP-Growth • ขั้นตอนที่ 1 สร้าง compact data structure ที่เรียกว่า FP-tree 9 TID Items 1 Cereal, Apple, Diapers 2 Beer, Cereal, Eggs 3 Beer, Cereal, Eggs, Apple 4 Beer, Eggs Diapers:1 Cereal:1 Apple:1 NULL Beer:1
  10. 10. (data)3
 base|warehouse|mining http://dataminingtrend.com http://facebook.com/datacube.th FP-Growth • ขั้นตอนที่ 1 สร้าง compact data structure ที่เรียกว่า FP-tree 10 TID Items 1 Cereal, Apple, Diapers 2 Beer, Cereal, Eggs 3 Beer, Cereal, Eggs, Apple 4 Beer, Eggs Diapers:1 Cereal:1 Apple:1 NULL Cereal:1 Beer:1
  11. 11. (data)3
 base|warehouse|mining http://dataminingtrend.com http://facebook.com/datacube.th FP-Growth • ขั้นตอนที่ 1 สร้าง compact data structure ที่เรียกว่า FP-tree 11 TID Items 1 Cereal, Apple, Diapers 2 Beer, Cereal, Eggs 3 Beer, Cereal, Eggs, Apple 4 Beer, Eggs Diapers:1 Cereal:1 Apple:1 NULL Cereal:1 Beer:1 สร้าง link กลับมา
  12. 12. (data)3
 base|warehouse|mining http://dataminingtrend.com http://facebook.com/datacube.th FP-Growth • ขั้นตอนที่ 1 สร้าง compact data structure ที่เรียกว่า FP-tree 12 TID Items 1 Cereal, Apple, Diapers 2 Beer, Cereal, Eggs 3 Beer, Cereal, Eggs, Apple 4 Beer, Eggs Diapers:1 Cereal:1 Apple:1 NULL Eggs:1 Cereal:1 Beer:1
  13. 13. (data)3
 base|warehouse|mining http://dataminingtrend.com http://facebook.com/datacube.th FP-Growth • ขั้นตอนที่ 1 สร้าง compact data structure ที่เรียกว่า FP-tree 13 TID Items 1 Cereal, Apple, Diapers 2 Beer, Cereal, Eggs 3 Beer, Cereal, Eggs, Apple 4 Beer, Eggs Diapers:1 Cereal:1 Apple:1 NULL Eggs:1 Cereal:1 Beer:2
  14. 14. (data)3
 base|warehouse|mining http://dataminingtrend.com http://facebook.com/datacube.th FP-Growth • ขั้นตอนที่ 1 สร้าง compact data structure ที่เรียกว่า FP-tree 14 TID Items 1 Cereal, Apple, Diapers 2 Beer, Cereal, Eggs 3 Beer, Cereal, Eggs, Apple 4 Beer, Eggs Diapers:1 Cereal:1 Apple:1 NULL Eggs:1 Cereal:2 Beer:2
  15. 15. (data)3
 base|warehouse|mining http://dataminingtrend.com http://facebook.com/datacube.th FP-Growth • ขั้นตอนที่ 1 สร้าง compact data structure ที่เรียกว่า FP-tree 15 TID Items 1 Cereal, Apple, Diapers 2 Beer, Cereal, Eggs 3 Beer, Cereal, Eggs, Apple 4 Beer, Eggs Diapers:1 Cereal:1 Apple:1 NULL Eggs:2 Cereal:2 Beer:2
  16. 16. (data)3
 base|warehouse|mining http://dataminingtrend.com http://facebook.com/datacube.th FP-Growth • ขั้นตอนที่ 1 สร้าง compact data structure ที่เรียกว่า FP-tree 16 TID Items 1 Cereal, Apple, Diapers 2 Beer, Cereal, Eggs 3 Beer, Cereal, Eggs, Apple 4 Beer, Eggs Diapers:1 Cereal:1 Apple:1 NULL Apple:1 Eggs:2 Cereal:2 Beer:2
  17. 17. (data)3
 base|warehouse|mining http://dataminingtrend.com http://facebook.com/datacube.th FP-Growth • ขั้นตอนที่ 1 สร้าง compact data structure ที่เรียกว่า FP-tree 17 TID Items 1 Cereal, Apple, Diapers 2 Beer, Cereal, Eggs 3 Beer, Cereal, Eggs, Apple 4 Beer, Eggs Diapers:1 Cereal:1 Apple:1 NULL Apple:1 Eggs:2 Cereal:2 Beer:2 สร้าง link กลับมา
  18. 18. (data)3
 base|warehouse|mining http://dataminingtrend.com http://facebook.com/datacube.th FP-Growth • ขั้นตอนที่ 1 สร้าง compact data structure ที่เรียกว่า FP-tree 18 TID Items 1 Cereal, Apple, Diapers 2 Beer, Cereal, Eggs 3 Beer, Cereal, Eggs, Apple 4 Beer, Eggs Diapers:1 Cereal:1 Apple:1 NULL Apple:1 Eggs:2 Cereal:2 Beer:3
  19. 19. (data)3
 base|warehouse|mining http://dataminingtrend.com http://facebook.com/datacube.th FP-Growth • ขั้นตอนที่ 1 สร้าง compact data structure ที่เรียกว่า FP-tree 19 TID Items 1 Cereal, Apple, Diapers 2 Beer, Cereal, Eggs 3 Beer, Cereal, Eggs, Apple 4 Beer, Eggs Diapers:1 Cereal:1 Apple:1 NULL Apple:1 Eggs:2 Cereal:2 Eggs:1Beer:3
  20. 20. (data)3
 base|warehouse|mining http://dataminingtrend.com http://facebook.com/datacube.th FP-Growth • ขั้นตอนที่ 1 สร้าง compact data structure ที่เรียกว่า FP-tree 20 TID Items 1 Cereal, Apple, Diapers 2 Beer, Cereal, Eggs 3 Beer, Cereal, Eggs, Apple 4 Beer, Eggs Diapers:1 Cereal:1 Apple:1 NULL Apple:1 Eggs:2 Cereal:2 Eggs:1Beer:3 สร้าง link กลับมา
  21. 21. (data)3
 base|warehouse|mining http://dataminingtrend.com http://facebook.com/datacube.th FP-Growth • ขั้นตอนที่ 2 สร้างรูปแบบของสินค้าที่ซื้อบ่อยๆ (frequent itemset) จาก FP-tree • กำหนด min_support = 50% 21 Diapers:1 Cereal:1 Apple:1 NULL Eggs:2 Cereal:2 Eggs:1Beer:3 ถูกตัดทิ้งเนื่องจาก support < min_sup Apple:1
  22. 22. (data)3
 base|warehouse|mining http://dataminingtrend.com http://facebook.com/datacube.th FP-Growth • ขั้นตอนที่ 2 สร้างรูปแบบของสินค้าที่ซื้อบ่อยๆ (frequent itemset) จาก FP-tree • กำหนด min_support = 50% 22 Cereal:1 Apple:1 NULL Apple:1 Eggs:2 Cereal:2 Beer:3 Frequent itemset Support {Apple} 2/4 = 50%
  23. 23. (data)3
 base|warehouse|mining http://dataminingtrend.com http://facebook.com/datacube.th FP-Growth • ขั้นตอนที่ 2 สร้างรูปแบบของสินค้าที่ซื้อบ่อยๆ (frequent itemset) จาก FP-tree • กำหนด min_support = 50% 23 Cereal:1 Apple:1 NULL Apple:1 Eggs:2 Cereal:2 Beer:3 Frequent itemset Support {Apple} 2/4 = 50% {Apple, Cereal} 2/4 = 50%
  24. 24. (data)3
 base|warehouse|mining http://dataminingtrend.com http://facebook.com/datacube.th FP-Growth • ขั้นตอนที่ 2 สร้างรูปแบบของสินค้าที่ซื้อบ่อยๆ (frequent itemset) จาก FP-tree • กำหนด min_support = 50% 24 Cereal:1 NULL Eggs:2 Cereal:2 Eggs:1Beer:3 Frequent itemset Support {Apple} 2/4 = 50% {Apple, Cereal} 2/4 = 50% {Eggs} 3/4 = 75%
  25. 25. (data)3
 base|warehouse|mining http://dataminingtrend.com http://facebook.com/datacube.th FP-Growth • ขั้นตอนที่ 2 สร้างรูปแบบของสินค้าที่ซื้อบ่อยๆ (frequent itemset) จาก FP-tree • กำหนด min_support = 50% 25 Cereal:1 NULL Eggs:2 Cereal:2 Eggs:1Beer:3 Frequent itemset Support {Apple} 2/4 = 50% {Apple, Cereal} 2/4 = 50% {Eggs} 3/4 = 75% {Cereal, Eggs} 2/4 = 50%
  26. 26. (data)3
 base|warehouse|mining http://dataminingtrend.com http://facebook.com/datacube.th FP-Growth • ขั้นตอนที่ 2 สร้างรูปแบบของสินค้าที่ซื้อบ่อยๆ (frequent itemset) จาก FP-tree • กำหนด min_support = 50% 26 Cereal:1 NULL Eggs:2 Cereal:2 Eggs:1Beer:3 Frequent itemset Support {Apple} 2/4 = 50% {Apple, Cereal} 2/4 = 50% {Eggs} 3/4 = 75% {Cereal, Eggs} 2/4 = 50% {Beer, Eggs} 3/4 = 75%
  27. 27. (data)3
 base|warehouse|mining http://dataminingtrend.com http://facebook.com/datacube.th FP-Growth • ขั้นตอนที่ 2 สร้างรูปแบบของสินค้าที่ซื้อบ่อยๆ (frequent itemset) จาก FP-tree • กำหนด min_support = 50% 27 Cereal:1 NULL Eggs:2 Cereal:2 Eggs:1Beer:3 Frequent itemset Support {Apple} 2/4 = 50% {Apple, Cereal} 2/4 = 50% {Eggs} 3/4 = 75% {Cereal, Eggs} 2/4 = 50% {Beer, Eggs} 3/4 = 75% {Beer, Cereal, Eggs} 2/4 = 50%
  28. 28. (data)3
 base|warehouse|mining http://dataminingtrend.com http://facebook.com/datacube.th FP-Growth • ขั้นตอนที่ 2 สร้างรูปแบบของสินค้าที่ซื้อบ่อยๆ (frequent itemset) จาก FP-tree • กำหนด min_support = 50% 28 Cereal:1 NULL Cereal:2 Beer:3 Frequent itemset Support {Apple} 2/4 = 50% {Apple, Cereal} 2/4 = 50% {Eggs} 3/4 = 75% {Cereal, Eggs} 2/4 = 50% {Beer, Eggs} 3/4 = 75% {Beer, Cereal, Eggs} 2/4 = 50% {Cereal} 3/4 = 75%
  29. 29. (data)3
 base|warehouse|mining http://dataminingtrend.com http://facebook.com/datacube.th FP-Growth • ขั้นตอนที่ 2 สร้างรูปแบบของสินค้าที่ซื้อบ่อยๆ (frequent itemset) จาก FP-tree • กำหนด min_support = 50% 29 Cereal:1 NULL Cereal:2 Beer:3 Frequent itemset Support {Apple} 2/4 = 50% {Apple, Cereal} 2/4 = 50% {Eggs} 3/4 = 75% {Cereal, Eggs} 2/4 = 50% {Beer, Eggs} 3/4 = 75% {Beer, Cereal, Eggs} 2/4 = 50% {Cereal} 3/4 = 75% {Beer, Cereal} 2/4 = 50%
  30. 30. (data)3
 base|warehouse|mining http://dataminingtrend.com http://facebook.com/datacube.th FP-Growth • ขั้นตอนที่ 2 สร้างรูปแบบของสินค้าที่ซื้อบ่อยๆ (frequent itemset) จาก FP-tree • กำหนด min_support = 50% 30 NULL Beer:3 Frequent itemset Support {Apple} 2/4 = 50% {Apple, Cereal} 2/4 = 50% {Eggs} 3/4 = 75% {Cereal, Eggs} 2/4 = 50% {Beer, Eggs} 3/4 = 75% {Beer, Cereal, Eggs} 2/4 = 50% {Cereal} 3/4 = 75% {Beer, Cereal} 2/4 = 50% {Beer} 3/4 = 75%
  31. 31. (data)3
 base|warehouse|mining http://dataminingtrend.com http://facebook.com/datacube.th Apriori & FP-Growth 31 Frequent itemset Support {Apple} 2/4 = 50% {Apple, Cereal} 2/4 = 50% {Eggs} 3/4 = 75% {Cereal, Eggs} 2/4 = 50% {Beer, Eggs} 3/4 = 75% {Beer, Cereal, Eggs} 2/4 = 50% {Cereal} 3/4 = 75% {Beer, Cereal} 2/4 = 50% {Beer} 3/4 = 75% Frequent itemset Support {Apple} 2/4 = 50% {Beer} 3/4 = 75% {Cereal} 3/4 = 75% {Eggs} 3/4 = 75% {Apple, Cereal} 2/4 = 50% {Beer, Cereal} 2/4 = 50% {Beer, Eggs} 3/4 = 75% {Cereal, Eggs} 2/4 = 50% {Beer, Cereal, Eggs} 2/4 = 50% ผลลัพธ์จาก Apriori ผลลัพธ์จาก FP-Growth

×