Apriori เป็นอัลกอริทึมที่ได้รับการแก้ไขอย่างแข็งขันต่อการระเบิดแบบคอมบิเนทอเรียล (Combinatorial Explosion) ของการสร้าง frequent itemset มันทำได้โดยการใช้หลักการ Apriori (Apriori Principle) เพื่อลดพื้นที่ค้นหาแบบเอ็กซ์โพเนนเชียล (Exponential Search Space) 儘管การปรับปรุงประสิทธิภาพที่สำคัญ อัลกอริทึมได้รับ overhead (ภาระ) I/O ที่มาก เนื่องจากต้องการทำหลายการผ่าน (Passes) ผ่านชุดระเบียนธุรกรรม (Transaction Recordset)
การกระทำของอัลกอริทึม Apriori สามารถลดประสิทธิภาพได้อย่างมีนัยสำคัญสำหรับชุดข้อมูลหนาแน่น (Dense Data Sets) เนื่องจากความกว้างของธุรกรรมที่เพิ่มขึ้น (Increasing Transaction Width) หลายวิธีได้รับการพัฒนาขึ้นเพื่อเอาชนะข้อบกพร่องเหล่านี้และปรับปรุงประสิทธิภาพของอัลกอริทึม Apriori
ต่อไปนี้คือคำอธิบายระดับสูง (High-level Description) ของวิธีเหล่านี้:
การเดินทางบน lattice ของ itemset (Traversal of Itemset Lattice)
การค้นหา frequent itemsets สามารถพิจารณาเป็นการเดินทางบน lattice ของ itemset วิธีการค้นหาที่อัลกอริทึมใช้ วิธีที่ lattice architecture ถูกเดินทางในช่วงการสร้าง frequent itemset บางวิธีการค้นหาเหพกว่าเหยน วิธีอื่น ขึ้นอยู่กับองค์ประกอบของ frequent itemsets ใน lattice
ทั่วไปไปสู่เฉพาะเจาะจง เทียบกับ เฉพาะเจาะจงไปสู่ทั่วไป (General-to-Specific vs Specific-to-General)
อัลกอริทึม Apriori ใช้แนวทางค้นหา general-to-specific โดยคู่ของ frequent (k-1)-itemsets ถูกรวมกันเพื่อได้ candidate k-itemsets แนวทางค้นหา general-to-specific นี้มีประสิทธิภาพ ถ้าความยาวสูงสุดของ frequent itemset ไม่ยาวเกินไป
แนวทางค้นหา specific-to-general มองหา frequent itemsets ที่เฉพาะเจาะจงก่อน ก่อนจะค้นพบ frequent itemsets ที่ทั่วไปมากขึ้น วิธีนี้มีประโยชน์ในการค้นหา maximal frequent itemsets ในธุรกรรมหนาแน่น ที่ขอบเขต frequent itemset ตั้งอยู่ใกล้ด้านล่างของ lattice
หลักการ Apriori สามารถใช้เพื่อตัดแต่ง (Prune) เซตย่อยบางส่วนของ maximal frequent itemsets โดยเฉพาะ หาก candidate k-itemset เป็น maximal frequent มันไม่ต้องกำหนดเซตย่อยขนาด k-1 ใดๆ แต่ถ้า candidate k-itemset เป็น infrequent จำเป็นต้องตรวจสอบเซตย่อย k-1 ทั้งหมดในรอบทำซ้ำถัดไป
อีกวิธีหนึ่งคือเชื่อมต่อทั้ง general-to-specific และ specific-to-general แนวทางค้นหา แนวทางสองทิศทาง (Bidirectional Approach) นี้ต้องการพื้นที่มากกว่าเพื่อจัดเก็บ candidate itemsets แต่สามารถช่วยระบุขอบเขต frequent itemset ได้อย่างรวดเร็ว
คลาสเทียบเท่า (Equivalence Classes)
มีอีกวิธีหนึ่งในการมองการเดินทาง คือการ partition (แบ่ง) lattice ออกเป็นกลุ่มโหนดที่ไม่ทับซ้อน (Disjoint Groups) (หรือ equivalence classes) อัลกอริทึมการสร้าง frequent itemset ค้นหา frequent itemsets ภายใน equivalence class เฉพาะก่อน แล้วค่อยเปลี่ยนไปยัง equivalence class อื่น
วิธีระดับ (Level-wise Approach) ที่ใช้ในอัลกอริทึม Apriori สามารถถือว่าเป็นการ partition lattice บนพื้นฐานขนาด itemset คือ อัลกอริทึมค้นหา frequent 1-itemsets บางส่วนก่อน แล้วค่อยดำเนินการไปยัง itemsets ขนาดใหญ่กว่า Equivalence classes สามารถแสดงได้ตามป้ายคำนำหน้าหรือคำต่อท้าย (Prefix or Suffix Labels) ของ itemset
วิเคราะห์วิธีสร้าง Frequent Itemsets: Apriori Principle (ลด Search Space), General-to-Specific vs Specific-to-General, Bidirectional Search, Equivalence Classes (Prefix/Suffix/Level-wise Partitioning)