อัลกอริทึมใดที่ฉันสามารถใช้เพื่อค้นหาความสัมพันธ์ระหว่างเหตุการณ์


12

ฉันยังใหม่กับการเรียนรู้ของเครื่องดังนั้นฉันจึงพยายามค้นหาวรรณกรรมบางอย่าง แต่ฉันไม่แน่ใจด้วยซ้ำว่าจะให้ Google ทำอะไร ข้อมูลของฉันอยู่ในรูปแบบต่อไปนี้:

User A performs Action P
User B performs Action Q
User C performs Action R
...
User C performs Action X
User A performs Action Y
User B performs Action Z
...

ที่การดำเนินการแต่ละรายการมีลักษณะบางอย่าง (วันที่เวลาลูกค้า ฯลฯ ) มีผู้ใช้ประมาณ 300 คนและเรามีการดำเนินการประมาณ 20,000 รายการ

คำถาม :

ฉันต้องการตรวจสอบว่ามีสาเหตุ / ความสัมพันธ์ระหว่างการกระทำของผู้ใช้ ตัวอย่างเช่น "ทุกครั้งที่ผู้ใช้ E ดำเนินการ T, 2 วันต่อมาผู้ใช้ G ทำการดำเนินการ V" แต่ในระหว่างนั้นอาจมีผู้ใช้หลายรายที่ดำเนินการอื่น ๆ อีกมากมายและเป็นไปได้ที่จะไม่มีความสัมพันธ์ที่จะพบ อาจเป็นไปได้ว่าผู้ใช้บางคนมีความสัมพันธ์กัน นี่คือสิ่งที่การเรียนรู้ของเครื่องจะสามารถค้นหาให้ฉันได้หรือไม่? มีอัลกอริทึมเฉพาะหรือชุดอัลกอริทึมที่สามารถช่วยฉันได้ไหม

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


1
คุณพยายามใส่เหตุการณ์ลงบนกราฟกำกับจุดสุดยอดแสดงถึงประเภทการกระทำหรือไม่ มีขอบ IFF ผู้ใช้บางคนก็กระทำก่อนที่เจมันสามารถถ่วงน้ำหนักได้อย่างง่ายดายด้วยจำนวนผู้ใช้ที่ได้ทำลำดับดังกล่าว คุณยังสามารถทำกราฟต่อผู้ใช้ G=(V,E)P(i,j)ij
0x90

คำตอบ:


1

ฉันคิดว่าคุณต้องเตรียมข้อมูลก่อนที่จะใช้อัลกอริทึมใด ๆ เพื่อค้นหาชุดรายการและกฎการเชื่อมโยงที่พบบ่อย

ดูตารางธุรกรรมในบทความนี้: market analysys

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

UserA,transactionP |UserB,transaction Z| UserB, transaction F | [...]

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

โดยทำตามวิธีการของฉันคุณสามารถทดสอบ "รูปแบบ" ที่เริ่มต้นโดยผู้ใช้คู่ + Sition tra ผู้ใช้และการกระทำใดที่จะเลือกขึ้นอยู่กับความรู้ของคุณเกี่ยวกับความสัมพันธ์ที่เป็นไปได้
cesko80

สามข้อเสนอแนะ 1. จำกัด คำถามของคุณให้แคบลง ที่จะไม่ดูหมิ่น แต่ไม่มีขั้นตอนทางสถิติที่ครอบคลุมอย่างน่าพิศวงที่สามารถบอกคุณทุกสมาคมที่มีความหมายออกมาจากหลาย ๆ ที่เป็นไปได้จำนวนมากที่เป็นไปได้ในข้อมูลของคุณ 2. อ่านการวิเคราะห์อนุกรมเวลา 3. อ่านวิธีการแยกแยะสาเหตุจากความสัมพันธ์เพียงอย่างเดียว น่าเสียดายที่ฉันไม่มีการแก้ไขด่วนที่จะเสนอ!
rolando2

1

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

จากนั้นคุณสามารถสำรวจได้ว่าการกระทำก่อนหน้ามีผลต่อกิจกรรมต่อไปหรือไม่ หากไม่แสดงว่าผู้ใช้ของคุณเป็น "ไร้รัฐ"

การลดความซับซ้อนที่เป็นไปได้อีกอย่างหนึ่งคือการเพิกเฉยต่อ userids และถามว่าความถี่ของการกระทำแต่ละอย่างนั้นเหมือนกันเมื่อเวลาผ่านไปหรือเปลี่ยนแปลงไป และหากมีการเปลี่ยนแปลงไม่ว่าจะเป็นรอบหรือแสดงแนวโน้ม

คำตอบสำหรับคำถามเหล่านี้อาจแสดงว่าข้อมูลของคุณมีโครงสร้างเพียงเล็กน้อย หรืออาจเพิ่มสมมติฐานใหม่เพื่อทดสอบ


1

นี่เป็นคำถามที่น่าสนใจ วิธีที่ดีที่สุดคือดูชุดข้อมูลทั้งหมดและสร้างตารางความถี่ ตัวอย่างเช่น: ผู้ใช้ A กำลังดำเนินการ Action P และ Y ผู้ใช้ B กำลังดำเนินการ Action Q และ Z, ผู้ใช้ C ดำเนินการ Action R และ X ดังนั้นในทำนองเดียวกันมีผู้ใช้จำนวนมากที่ดำเนินการมากกว่า ดังนั้นจึงมีหลายวิธีในการจัดการกับชุดข้อมูลนี้ 1) อัลกอริทึมของคลัสเตอร์เพื่อจัดกลุ่มรายการที่คล้ายกันในที่เก็บข้อมูลที่ต่างกัน 2) การวิเคราะห์ตะกร้าตลาดเพื่อระบุผู้ใช้กับการจับคู่การกระทำและความถี่

หากไม่ผ่านชุดข้อมูลทั้งหมดจะไม่แนะนำให้กำหนดอัลกอริทึมเฉพาะสำหรับคำถามประเภทนี้

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