FPGrowth ยังถือว่าเป็น“ สถานะของศิลปะ” ในการขุดแบบบ่อยๆหรือไม่?


12

เท่าที่ฉันรู้การพัฒนาอัลกอริทึมเพื่อแก้ปัญหาการทำเหมืองบ่อยรูปแบบ (FPM) ถนนของการปรับปรุงมีจุดตรวจหลักบางอย่าง ประการแรกอัลกอริทึมAprioriถูกเสนอในปี 1993 โดยAgrawal และคณะ พร้อมกับการทำให้เป็นทางการของปัญหา อัลกอริทึมก็สามารถที่จะดึงบางชุดออกมาจาก2^n - 1ชุด (powerset) โดยใช้ตาข่ายเพื่อรักษาข้อมูล ข้อเสียเปรียบของวิธีการคือต้องอ่านฐานข้อมูลใหม่เพื่อคำนวณความถี่ของแต่ละชุดที่ขยาย

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

ในปี 2000 ฮันและคณะ เสนออัลกอริทึมที่ชื่อว่าFPGrowthพร้อมกับโครงสร้างข้อมูลแบบต้นไม้คำนำหน้าชื่อ FPTree อัลกอริทึมสามารถให้การบีบอัดข้อมูลที่สำคัญในขณะเดียวกันก็อนุญาตว่าจะให้เฉพาะชุดไอเท็มที่ใช้บ่อยเท่านั้น (โดยไม่มีการสร้างชุดไอเท็มผู้สมัคร) สิ่งนี้ทำได้โดยการจัดเรียงรายการของแต่ละธุรกรรมในลำดับที่ลดลงเพื่อให้รายการที่พบบ่อยที่สุดคือรายการที่มีการซ้ำซ้อนน้อยที่สุดในโครงสร้างข้อมูลทรี เนื่องจากความถี่ลดลงเท่านั้นขณะที่สำรวจต้นไม้ในเชิงลึกอัลกอริทึมจึงสามารถตัดชุดรายการที่ไม่ได้ใช้บ่อย

แก้ไข :

เท่าที่ฉันรู้นี่อาจถือได้ว่าเป็นอัลกอริทึมที่ล้ำสมัย แต่ฉันอยากรู้เกี่ยวกับวิธีแก้ปัญหาอื่น ๆ มีอัลกอริธึมอื่นสำหรับ FPM ที่ถูกพิจารณาว่าเป็น "state-of-the-art" หรือไม่? อะไรคือสิ่งที่สัญชาตญาณ / หลักผลงานของอัลกอริทึมดังกล่าวหรือไม่

อัลกอริทึม FPGrowth ยังถือว่าเป็น "สถานะของศิลปะ" ในการขุดแบบบ่อยๆหรือไม่? ถ้าไม่เช่นนั้นอัลกอริทึมใดที่สามารถแยกไอเท็มบ่อยออกจากชุดข้อมูลขนาดใหญ่ได้อย่างมีประสิทธิภาพมากขึ้น?


โพสต์นี้ได้รับการวิจัยและนำเสนอได้ดี มันเป็นคำถามที่ไม่ดีสำหรับไซต์เครือข่าย SE แต่มันจะเป็นหัวข้อที่ยอดเยี่ยมในการเริ่มต้นในฟอรัม
อากาศ

@AirThomas ขอบคุณสำหรับคำเตือน ฉันพยายามบันทึกโพสต์ด้วยการตั้งคำถามที่เหมาะสม
รูเบนส์

คำตอบ:


9

รัฐของศิลปะเช่นเดียวกับใน: ใช้ในการปฏิบัติหรือทำงานในทางทฤษฎี?

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

FPgrowth นั้นใช้งานได้ยากกว่า แต่ก็น่าสนใจกว่ามาก ดังนั้นจากมุมมองทางวิชาการทุกคนพยายามปรับปรุง FPgrowth - การทำงานบนพื้นฐานของ APRIORI ที่ได้รับการยอมรับจะยากมากในตอนนี้

หากคุณมีการนำไปใช้ที่ดีอัลกอริทึมทุกตัวจะดีและเป็นสถานการณ์ที่แย่ในความคิดของฉัน การดำเนินงานที่ดี Apriori จะเพียง แต่ต้องสแกนฐานข้อมูลkครั้งเพื่อหา itemsets บ่อยทั้งหมดของความยาวk โดยเฉพาะอย่างยิ่งถ้าข้อมูลของคุณเหมาะกับหน่วยความจำหลักนี่ราคาถูก สิ่งที่สามารถฆ่า APRIORI นั้นเป็น 2-itemsets บ่อยเกินไป (โดยเฉพาะเมื่อคุณไม่ใช้ Trie และเทคนิคการเร่งความเร็วที่คล้ายกันเป็นต้น) มันทำงานได้ดีที่สุดกับข้อมูลขนาดใหญ่ที่มีจำนวนไอเท็มบ่อยน้อย

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

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

สำหรับผลการปฏิบัติงานและการวัดประสิทธิภาพ - อย่าไว้ใจพวกเขา มีหลายสิ่งที่จะใช้อย่างไม่ถูกต้อง ลองใช้งาน 10 แบบที่แตกต่างกันและคุณจะได้รับ 10 ผลการปฏิบัติงานที่แตกต่างกันมาก โดยเฉพาะอย่างยิ่งสำหรับ APRIORI ฉันมีความรู้สึกว่าการใช้งานส่วนใหญ่แตกในแง่ของการขาดการสนับสนุนหลักของ APRIORI ... และผู้ที่มีส่วนเหล่านี้ถูกต้องคุณภาพการเพิ่มประสิทธิภาพแตกต่างกันมาก

มีเอกสารจริงเกี่ยวกับวิธีการใช้อัลกอริทึมเหล่านี้อย่างมีประสิทธิภาพ:

การติดตั้ง Apriori และ Eclat อย่างมีประสิทธิภาพ
การ
ประชุมเชิงปฏิบัติการChristian Borgelt ของการดำเนินการขุดชุดรายการที่ใช้บ่อย (FIMI 2003, Melbourne, FL, USA)

คุณอาจต้องการอ่านแบบสำรวจเหล่านี้ในโดเมนนี้:

  • Goethals, Bart "สำรวจการขุดหาลวดลายบ่อยครั้ง" ม. ของเฮลซิงกิ (2003)

  • Ferenc Bodon, การสำรวจการทำเหมืองแร่ประจำรายการ, รายงานทางเทคนิค, มหาวิทยาลัยเทคโนโลยีและเศรษฐกิจบูดาเปสต์, 2006,

  • รายการชุดบ่อยการขุด
    Christian Borgelt
    Wiley สหวิทยาการคำวิจารณ์: การขุดข้อมูลและการค้นหาความรู้ 2 (6): 437-456. 2012


2

วิธีการบ่อยรูปแบบล่าสุดที่ฉันได้เห็นในวรรณกรรมส่วนใหญ่มาจากการปรับ FPGrowth ให้เหมาะสม ฉันต้องยอมรับว่าฉันไม่ได้เห็นพัฒนาการหลายอย่างในวรรณคดีของ FPM ในหลายปีที่ผ่านมา

wikibook นี้แสดงให้เห็นถึงความหลากหลายของ FPGrowth ที่อยู่ข้างนอก

โดยการใช้ไซต์ของเรา หมายความว่าคุณได้อ่านและทำความเข้าใจนโยบายคุกกี้และนโยบายความเป็นส่วนตัวของเราแล้ว
Licensed under cc by-sa 3.0 with attribution required.