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

มีวิธีใดบ้างในการสร้างชุดรายการที่ใช้บ่อย?


Apriori เป็นอัลกอริธึมที่เน้นย้ำถึงปัญหาของการสร้างชุดไอเท็มบ่อยครั้ง ดำเนินการนี้โดยใช้หลักการ Apriori เพื่อย่อพื้นที่การค้นหาแบบเอ็กซ์โปเนนเชียลให้สั้นลง แม้จะมีการปรับปรุงประสิทธิภาพที่สำคัญ แต่อัลกอริธึมก็ได้รับโอเวอร์เฮด I/O จำนวนมาก เนื่องจากจำเป็นต้องผ่านชุดบันทึกธุรกรรมต่างๆ

การกระทำของอัลกอริทึม Apriori สามารถลดระดับโดยพื้นฐานสำหรับชุดข้อมูลที่หนาแน่นเนื่องจากความกว้างที่เพิ่มขึ้นของธุรกรรม มีการผลิตวิธีการหลายวิธีเพื่อเอาชนะข้อเสียเหล่านี้และเพิ่มประสิทธิภาพของอัลกอริทึม Apriori

ต่อไปนี้เป็นคำอธิบายระดับสูงของวิธีการเหล่านี้ซึ่งมีดังต่อไปนี้ −

การข้ามผ่านของ Itemset Lattice − การค้นหาชุดไอเท็มที่ใช้บ่อยถือได้ว่าเป็นการข้ามผ่านชุดไอเท็มเซ็ต วิธีค้นหาโดยใช้วิธีอัลกอริธึมว่าสถาปัตยกรรมแบบแลตทิซถูกสำรวจอย่างไรในระหว่างขั้นตอนการสร้างชุดไอเท็มบ่อยครั้ง วิธีค้นหาบางวิธีเหนือกว่าวิธีอื่นๆ โดยพิจารณาจากองค์ประกอบของชุดรายการที่ใช้บ่อยในตาข่าย

แบบทั่วไปถึงแบบเฉพาะกับแบบเฉพาะเจาะจง − อัลกอริธึม Apriori ต้องการวิธีการค้นหาทั่วไปถึงเฉพาะ โดยที่คู่ของชุดรายการที่ใช้บ่อย (k-l) จะถูกรวมเข้าด้วยกันเพื่อให้ได้ชุดรายการ k ที่เป็นตัวเลือก วิธีค้นหาแบบทั่วไปถึงแบบเฉพาะนี้มีประสิทธิภาพ โดยรองรับความยาวสูงสุดของชุดรายการที่ใช้บ่อยไม่นานเกินไป

วิธีค้นหาเฉพาะเจาะจงถึงทั่วไปจะดูชุดรายการที่มีความถี่ที่ชัดเจนมากขึ้นก่อน ก่อนค้นพบชุดรายการที่มีความถี่ทั่วไปมากกว่า วิธีนี้มีประโยชน์ในการค้นหาชุดรายการที่มีความถี่สูงสุดในธุรกรรมที่มีความหนาแน่นสูง โดยที่เส้นขอบชุดรายการที่ใช้บ่อยตั้งอยู่ใกล้ด้านล่างของโครงข่าย

หลักการ Apriori สามารถใช้เพื่อตัดชุดย่อยของชุดรายการที่บ่อยสูงสุดบางส่วน โดยเฉพาะอย่างยิ่ง หากผู้สมัคร k-itemset มีความถี่สูงสุด ก็ไม่จำเป็นต้องกำหนดชุดย่อยใดๆ ของขนาด k - 1 แต่ถ้าผู้สมัคร k-itemset ไม่บ่อย จะต้องตรวจสอบชุดย่อย k - 1 ทั้งหมด ในการทำซ้ำครั้งต่อไป

อีกวิธีหนึ่งคือการเชื่อมต่อทั้งวิธีการค้นหาแบบทั่วไปถึงแบบเฉพาะและแบบเฉพาะเจาะจงถึงแบบทั่วไป วิธีการแบบสองทิศทางนี้ต้องการพื้นที่มากขึ้นในการบันทึกชุดรายการตัวเลือก แต่สามารถรองรับการระบุเส้นขอบชุดรายการที่ใช้บ่อยได้ในทันที

คลาสความเท่าเทียม − มีอีกวิธีหนึ่งในการจินตนาการถึงการข้ามผ่านคือ ขั้นแรกให้แบ่งโครงตาข่ายออกเป็นกลุ่มโหนดที่ไม่ปะติดปะต่อกัน (หรือคลาสเดียวกัน) อัลกอริธึมการสร้างชุดไอเท็มที่ใช้บ่อยจะค้นหาชุดไอเท็มที่ใช้บ่อยภายในคลาสสมมูลที่เจาะจงก่อนที่จะเปลี่ยนเป็นคลาสสมมูลอื่น

วิธีระดับฉลาดที่ใช้ใน Apriori อัลกอริธึมสามารถแบ่งพาร์ติชันตาข่ายตามขนาดชุดรายการ กล่าวคือ อัลกอริธึมจะค้นหาชุดไอเท็ม 1 รายการบ่อยครั้งก่อนดำเนินการไปยังชุดไอเท็มขนาดใหญ่กว่า คลาสสมมูลยังสามารถแสดงตามป้ายคำนำหน้าหรือส่วนต่อท้ายของชุดไอเท็มได้