เท่าที่ฉันรู้การพัฒนาอัลกอริทึมเพื่อแก้ปัญหาการทำเหมืองบ่อยรูปแบบ (FPM) ถนนของการปรับปรุงมีจุดตรวจหลักบางอย่าง ประการแรกอัลกอริทึมAprioriถูกเสนอในปี 1993 โดยAgrawal และคณะ พร้อมกับการทำให้เป็นทางการของปัญหา อัลกอริทึมก็สามารถที่จะดึงบางชุดออกมาจาก2^n - 1
ชุด (powerset) โดยใช้ตาข่ายเพื่อรักษาข้อมูล ข้อเสียเปรียบของวิธีการคือต้องอ่านฐานข้อมูลใหม่เพื่อคำนวณความถี่ของแต่ละชุดที่ขยาย
ต่อมาในปี 1997 Zaki และคณะ เสนออัลกอริทึมEclatซึ่งแทรกความถี่ผลลัพธ์ของแต่ละชุดไว้ในโครงตาข่าย สิ่งนี้กระทำโดยการเพิ่มที่แต่ละโหนดของโครงตาข่ายชุดของ transaction-id ที่มีไอเท็มจากรูทไปยังโหนดที่อ้างถึง การสนับสนุนหลักคือเราไม่จำเป็นต้องอ่านชุดข้อมูลทั้งหมดอีกครั้งเพื่อทราบความถี่ของแต่ละชุด แต่หน่วยความจำที่จำเป็นในการรักษาโครงสร้างข้อมูลดังกล่าวอาจมีขนาดเกินขนาดของชุดข้อมูลเอง
ในปี 2000 ฮันและคณะ เสนออัลกอริทึมที่ชื่อว่าFPGrowthพร้อมกับโครงสร้างข้อมูลแบบต้นไม้คำนำหน้าชื่อ FPTree อัลกอริทึมสามารถให้การบีบอัดข้อมูลที่สำคัญในขณะเดียวกันก็อนุญาตว่าจะให้เฉพาะชุดไอเท็มที่ใช้บ่อยเท่านั้น (โดยไม่มีการสร้างชุดไอเท็มผู้สมัคร) สิ่งนี้ทำได้โดยการจัดเรียงรายการของแต่ละธุรกรรมในลำดับที่ลดลงเพื่อให้รายการที่พบบ่อยที่สุดคือรายการที่มีการซ้ำซ้อนน้อยที่สุดในโครงสร้างข้อมูลทรี เนื่องจากความถี่ลดลงเท่านั้นขณะที่สำรวจต้นไม้ในเชิงลึกอัลกอริทึมจึงสามารถตัดชุดรายการที่ไม่ได้ใช้บ่อย
แก้ไข :
เท่าที่ฉันรู้นี่อาจถือได้ว่าเป็นอัลกอริทึมที่ล้ำสมัย แต่ฉันอยากรู้เกี่ยวกับวิธีแก้ปัญหาอื่น ๆ มีอัลกอริธึมอื่นสำหรับ FPM ที่ถูกพิจารณาว่าเป็น "state-of-the-art" หรือไม่? อะไรคือสิ่งที่สัญชาตญาณ / หลักผลงานของอัลกอริทึมดังกล่าวหรือไม่
อัลกอริทึม FPGrowth ยังถือว่าเป็น "สถานะของศิลปะ" ในการขุดแบบบ่อยๆหรือไม่? ถ้าไม่เช่นนั้นอัลกอริทึมใดที่สามารถแยกไอเท็มบ่อยออกจากชุดข้อมูลขนาดใหญ่ได้อย่างมีประสิทธิภาพมากขึ้น?