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

ความซับซ้อนของอัลกอริทึม Apriori คืออะไร?


ความซับซ้อนในการคำนวณของอัลกอริทึม Apriori สามารถได้รับอิทธิพลจากปัจจัยดังต่อไปนี้ -

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

ขนาดสูงสุดของชุดรายการที่ใช้บ่อยยังส่งผลต่อการปรับปรุงด้วยเกณฑ์การสนับสนุนที่ต่ำกว่า เนื่องจากขนาดสูงสุดของชุดรายการที่ใช้บ่อยมีการปรับปรุง อัลกอริทึมจะต้องสร้างการส่งผ่านชุดข้อมูลมากขึ้น

จำนวนรายการ (มิติ) − เมื่อจำนวนของไอเท็มเพิ่มขึ้น จะต้องใช้พื้นที่มากขึ้นเพื่อบันทึกการนับการสนับสนุนของไอเท็ม หากรายการที่ใช้บ่อยหลายรายการเพิ่มขึ้นตามมิติข้อมูล ค่าการคำนวณและ I/O จะเพิ่มขึ้นเนื่องจากจำนวนชุดรายการตัวเลือกที่สูงกว่าที่สร้างโดยอัลกอริทึม

จำนวนธุรกรรม − เนื่องจาก Apriori อัลกอริทึมจึงสร้างการส่งต่อชุดข้อมูลซ้ำๆ เวลาทำงานของมันจะดีขึ้นด้วยจำนวนธุรกรรมที่สูงขึ้น

ความกว้างของธุรกรรมเฉลี่ย − สำหรับชุดข้อมูลที่หนาแน่น ความกว้างของธุรกรรมเฉลี่ยอาจสูงได้ สิ่งนี้มีอิทธิพลต่อความซับซ้อนของอัลกอริธึม Apriori ในสองวิธี เช่น ขนาดสูงสุดของชุดรายการที่ใช้บ่อยจะส่งผลต่อการเพิ่มความกว้างของธุรกรรมโดยเฉลี่ย ความกว้างของธุรกรรมเพิ่มขึ้น รายการที่สูงขึ้นจะรวมอยู่ในธุรกรรม สิ่งนี้จะเพิ่มการข้ามผ่านของ hash tree หลายรายการในระหว่างการนับการสนับสนุน

การสร้างชุดรายการ l บ่อยครั้ง - สำหรับแต่ละธุรกรรม จำเป็นต้องอัปเดตจำนวนการสนับสนุนสำหรับแต่ละรายการที่มีอยู่ในธุรกรรม เมื่อพิจารณาว่า w คือความกว้างของธุรกรรมโดยเฉลี่ย การดำเนินการนี้ต้องใช้เวลา O(Nw) โดยที่ N คือจำนวนธุรกรรมทั้งหมด

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

ในกรณีที่เลวร้ายที่สุด อัลกอริธึมควรรวมแต่ละคู่ของ frequent (k - 1)-itemsets ที่พบในการวนซ้ำก่อนหน้า ดังนั้น ต้นทุนรวมของการรวมชุดรายการที่ใช้บ่อยคือ

$$\mathrm{\displaystyle\sum\limits_{k=2}^w\:(k-2)|C_{k}|<\:Cost\:of\:merging\:<\displaystyle\sum\limits_ {k=2}^w\:(k-2)|F_{k}-1|^2}$$

แผนภูมิแฮชยังถูกสร้างระหว่างการสร้างผู้สมัครเพื่อบันทึกชุดไอเท็มของผู้สมัคร เนื่องจากความลึกสูงสุดของต้นไม้เป็น k ค่าใช้จ่ายในการเติมข้อมูลแผนภูมิต้นไม้ด้วยชุดรายการตัวเลือกคือ O($\mathrm{\displaystyle\sum\limits_{k=2}^w\:k|C_{k}| }$).

ในระหว่างการตัดแต่งกิ่ง จะต้องตรวจสอบว่าชุดย่อย k - 2 ของชุดย่อย k ของผู้สมัครแต่ละชุดนั้นถี่ เนื่องจากค่าใช้จ่ายในการดูผู้สมัครใน hash tree คือ O (k) ขั้นตอนการตัดแต่งกิ่งผู้สมัครจึงจำเป็น O($\mathrm{\displaystyle\sum\limits_{k=2}^w\:k|C_{k} |}$) เวลา.