Computer >> บทช่วยสอนคอมพิวเตอร์ >  >> การเขียนโปรแกรม >> การเขียนโปรแกรม

การทำเหมือง Closed Frequent Itemsets ทำอย่างไร?


แนวทาง Naïve และการปรับปรุง

ในแนวทาง naïve (天真) สามารถทำเหมืองเซต frequent itemsets ทั้งหมด แล้วลบ frequent itemset แต่ละตัวที่เป็นเซตย่อยที่เหมาะสม (proper subset) และให้ support เหมือนกับ frequent itemset ที่มีอยู่แล้ว

วิธีนี้สามารถสร้าง 2100−1 frequent itemsets เพื่อให้ได้ frequent itemset ความยาว 100 ก่อนที่จะเริ่มลบ itemsets ซ้ำซ้อน เทคนิคที่แนะนำคือ ค้นหา closed frequent itemsets อย่างแม่นยำระหว่างขั้นตอนการทำเหมือง ซึ่งต้องการให้เราตัด枝 (prune) พื้นที่ค้นหา aussitôt ที่สามารถระบุลักษณะของ closed itemsets ระหว่างการทำเหมือง มีกลยุทธ์การตัด枝หลายอย่าง รวมถึง:

1. Item Merging (การรวมไอเทม)

หากทุกธุรกรรมที่มี frequent itemset X ยังมี itemset Y แต่ไม่มี superset ที่เหมาะสมของ Y ดังนั้น X ∪ Y จึงเป็น frequent closed itemset และไม่จำเป็นต้องค้นหา itemset ใดๆ ที่มี X แต่ไม่มี Y

2. Sub-itemset Pruning (การตัด枝เซตย่อย)

หาก frequent itemset X เป็นเซตย่อยที่เหมาะสมของ frequent closed itemset Y ที่ค้นพบก่อนหน้านี้ และ support_count(X) = support_count(Y) ดังนั้น X และทุก descendants ของ X ในต้นไม้นับเซต (set enumeration tree) ไม่สามารถเป็น frequent closed itemsets ได้ และจึงสามารถตัด枝ได้

3. Item Skipping (การข้ามไอเทม)

ในการทำเหมือง closed itemsets แบบ depth-first ที่แต่ละระดับ อาจมี prefix itemset X ที่เกี่ยวข้องกับตารางหัว (header table) และ projected database หาก frequent item ท้องถิ่น p มี support เหมือนกันในหลาย header tables หลายระดับ สามารถตัด枝 p ออกจาก header tables ระดับสูงได้อย่างปลอดภัย

การตรวจสอบความปิด (Closure Checking)

เมื่อ frequent itemset ใหม่ถูกสร้าง จำเป็นต้องดำเนินการตรวจสอบความปิด 2 ประเภท:

  • Superset Checking (การตรวจสอบเซตเหนือ) – ทดสอบว่า frequent itemset ใหม่นี้เป็นเซตเหนือของ closed itemsets ที่ค้นพบก่อนหน้านี้บางตัวที่มี support เหมือนกันหรือไม่

  • Subset Checking (การตรวจสอบเซตย่อย) – ทดสอบว่า itemset ที่ค้นพบใหม่เป็นเซตย่อยของ closed itemset ที่ค้นพบก่อนหน้านี้ที่มี support เหมือนกันหรือไม่

หากนำเทคนิค item merging pruning มาใช้ภายใต้โครงสร้าง divide-and-conquer การทดสอบ superset จริงๆ แล้ว built-in และไม่จำเป็นต้องดำเนินการ superset checking อย่างชัดเจน เพราะหาก frequent itemset X∪Y ถูกค้นพบหลัง itemset X และมี support เหมือน X มันควรอยู่ใน projected database ของ X และควรถูกสร้างระหว่าง itemset merging

ช่วยใน subset checking สามารถสร้าง compressed pattern-tree เพื่อรองรับเซตของ closed itemsets ที่ทำเหมืองได้ Pattern-tree คล้ายกับ FP-tree ในกลไก แต่ทุก closed itemsets ที่ค้นพบถูกจัดเก็บอย่างชัดเจนในกิ่งไม้ที่สอดคล้อง