โมเดล Markov ที่ซ่อนอยู่สำหรับการทำนายเหตุการณ์


9

คำถาม : การตั้งค่าด้านล่างนี้ใช้งานได้ดีกับโมเดลซ่อนมาร์คอฟหรือไม่?

ฉันมีชุดข้อมูลการ108,000สังเกต (ใช้เวลากว่า 100 วัน) และประมาณ2000เหตุการณ์ตลอดช่วงเวลาการสังเกตทั้งหมด ข้อมูลดูเหมือนว่ารูปด้านล่างที่ตัวแปรที่สังเกตสามารถใช้ค่าไม่ต่อเนื่อง 3 ค่าและคอลัมน์สีแดงเน้นเวลาเหตุการณ์เช่น 's:[1,2,3]เสื้อE

ป้อนคำอธิบายรูปภาพที่นี่

ดังที่แสดงด้วยสี่เหลี่ยมสีแดงในรูปฉันได้ตัด {ถึง } สำหรับแต่ละเหตุการณ์โดยปฏิบัติต่อสิ่งเหล่านี้อย่าง "หน้าต่างก่อนเหตุการณ์" ได้อย่างมีประสิทธิภาพเสื้อEเสื้อE-5

การฝึกอบรม HMM:ฉันวางแผนที่จะฝึกอบรมโมเดล Markov ที่ซ่อนอยู่ (HMM) โดยอ้างอิงจาก "หน้าต่างก่อนเหตุการณ์ทั้งหมด" โดยใช้วิธีการสังเกตหลายฉากตามที่แนะนำในหน้า Pg 273 ของ Rabiner ของกระดาษ หวังว่านี่จะช่วยให้ฉันฝึก HMM ที่รวบรวมรูปแบบลำดับที่นำไปสู่เหตุการณ์

อืมทำนาย:แล้วฉันวางแผนที่จะใช้ HMM นี้เพื่อทำนาย ในวันที่ใหม่ที่จะเป็นเวกเตอร์หน้าต่างบานเลื่อนการปรับปรุงในเวลาจริงเพื่อให้มีการสังเกตระหว่างเวลาปัจจุบันและเป็นวันที่ไปล.โอก.[P(OsอีRโวลต์aเสื้อผมโอns|HMM)]OsอีRโวลต์aเสื้อผมโอnsเสื้อเสื้อ-5

ฉันคาดว่าจะเห็นเพิ่มขึ้นสำหรับการที่มีลักษณะคล้ายกับ "หน้าต่างก่อนเหตุการณ์" สิ่งนี้ควรมีผลบังคับใช้ให้ฉันคาดการณ์เหตุการณ์ก่อนที่จะเกิดขึ้นล.โอก.[P(OsอีRโวลต์aเสื้อผมโอns|HMM)]OsอีRโวลต์aเสื้อผมโอns


คุณสามารถแบ่งข้อมูลของคุณเพื่อสร้างแบบจำลอง (พูด 0.7) จากนั้นทดสอบแบบจำลองของคุณกับข้อมูลที่เหลือ แค่คิดฉันไม่ใช่ผู้เชี่ยวชาญในเรื่องนี้
เฟอร์นันโด

ใช่ขอบคุณ. มันเหมาะสมกว่าของ HMM สำหรับงานที่ฉันไม่แน่ใจ
Zhubarb

@Zhubarb ฉันกำลังเผชิญกับปัญหาที่คล้ายกันและต้องการที่จะปฏิบัติตามแนวทาง HMM ของคุณ คุณประสบความสำเร็จในการทำสิ่งนี้? หรือในที่สุดคุณก็เกิดการถดถอยโลจิสติก / SVM เป็นต้น
Javierfdr

@Javierfdr ฉันลงเอยด้วยการไม่ใช้งานเนื่องจากความยากลำบากในการใช้งานและความกังวลที่จะเน้นในคำตอบของเขา โดยพื้นฐานแล้ว HMM มาพร้อมกับภาระในการสร้างแบบจำลองที่ครอบคลุมในขณะที่ความรู้สึกของฉันในตอนนี้คือปัญหาที่เกิดขึ้นในมือเราสามารถหลบหนีได้อย่างง่ายดายด้วยรูปแบบการเลือกปฏิบัติ (SVM, Neural Net ฯลฯ ) ตามที่คุณแนะนำ .
Zhubarb

คำตอบ:


3

ปัญหาอย่างหนึ่งของแนวทางที่คุณอธิบายคือคุณจะต้องกำหนดว่าจะเพิ่มประเภทใด P(O) มีความหมายซึ่งอาจเป็นเรื่องยาก P(O)โดยทั่วไปจะมีขนาดเล็กมาก มันอาจจะดีกว่าถ้าฝึก HMM สองตัวให้พูด HMM1 สำหรับลำดับการสังเกตที่เกิดเหตุการณ์ที่น่าสนใจและ HMM2 สำหรับลำดับการสังเกตที่เหตุการณ์ไม่เกิดขึ้น จากนั้นให้ลำดับการสังเกตO คุณมี

P(HHM1|O)=P(O|HMM1)P(HMM1)P(O)αP(O|HMM1)P(HMM1)
และเช่นเดียวกันสำหรับ HMM2 จากนั้นคุณสามารถคาดการณ์เหตุการณ์ที่จะเกิดขึ้นถ้า
P(HMM1|O)>P(HMM2|O)P(HMM1)P(O|HMM1)P(O)>P(HMM2)P(O|HMM2)P(O)P(HMM1)P(O|HMM1)>P(HMM2)P(O|HMM2).

ข้อจำกัดความรับผิดชอบ : สิ่งต่อไปนี้ขึ้นอยู่กับประสบการณ์ส่วนตัวของฉันเอง หนึ่งในสิ่งที่ดีเกี่ยวกับ HMM คือพวกมันช่วยให้คุณสามารถจัดการกับลำดับความยาวผันแปรและเอฟเฟกต์ลำดับตัวแปร (ขอบคุณสถานะที่ซ่อนอยู่) บางครั้งสิ่งนี้จำเป็น (เช่นในแอปพลิเคชัน NLP จำนวนมาก) อย่างไรก็ตามดูเหมือนว่าคุณมีข้อสันนิษฐานเบื้องต้นว่ามีเพียงการสังเกต 5 ครั้งล่าสุดเท่านั้นที่เกี่ยวข้องกับการคาดการณ์เหตุการณ์ที่น่าสนใจ หากสมมติฐานนี้เป็นจริงคุณอาจมีโชคมากขึ้นโดยใช้เทคนิคแบบดั้งเดิม (การถดถอยแบบโลจิสติกเบย์ไร้เดียงสา SVM และอื่น ๆ ) และใช้การสังเกต 5 ครั้งล่าสุดเป็นคุณลักษณะ / ตัวแปรอิสระ โดยทั่วไปแล้วประเภทของโมเดลเหล่านี้จะง่ายต่อการฝึกอบรมและ (จากประสบการณ์ของฉัน) ให้ผลลัพธ์ที่ดีกว่า


@ อัลโตขอบคุณ อย่างที่คุณพูดฉันจะดูp=log(P(O|hmm))และค่านิยมเช่น พี1=-2504,พี2=-2403,พี3=-2450ฯลฯ ดังนั้นการเพิ่มขึ้นอย่างมีนัยสำคัญ พีอาจเป็นปัญหา ในระหว่างนี้ฉันคิดว่าการฝึกอบรม HMM2 จะยาก จำนวนคะแนนที่ฉันมีสำหรับ HMM2 (ไม่มีเหตุการณ์) จะสูงกว่านี้มากและอาจไม่มีเสียงดังรบกวน แต่เสียงรบกวนเท่านั้น คุณคิดอย่างไร? PS : ฉันเลือก 5 ในเนื่องจากขนาดหน้าต่างของฉันโดยพลการมันมีแนวโน้มที่จะยาวกว่าในการใช้งานจริง
Zhubarb

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

@Berkan สำหรับขนาดหน้าต่างตามประสบการณ์ส่วนตัวของฉันฉันคาดหวังว่าสิ่งที่ฉันพูดในเรื่องนี้จะถือสำหรับขนาดหน้าต่างคงที่ใด ๆ เห็นได้ชัดว่าทุกสิ่งที่ฉันพูดจะต้องมีการทดสอบเชิงประจักษ์สำหรับปัญหาเฉพาะของคุณ
อัลโต

ขอบคุณสำหรับการอัปเดตคำตอบของคุณตอนนี้มันชัดเจนมากขึ้น เนื่องจากฉันจะทำงานกับลอการิทึมฉันจะทำการเปรียบเทียบ:ล.โอก.(P(HMM1))+ล.โอก.(P(O|HMM1))>?ล.โอก.(P(HMM2))+ล.โอก.(P(O|HMM2)). ตอนนี้ล.โอก.(P(HMM1)) มีการคำนวณโดยใช้อัลกอริทึมไปข้างหน้าฉันจะคำนวณได้อย่างไร ล.โอก.(P(HMM1))? เป็นเพียงก่อนที่ฉันจะแต่งตั้งหรือไม่
Zhubarb

ขอบคุณสำหรับการอัปเดตคำตอบของคุณตอนนี้มันชัดเจนมากขึ้น เนื่องจากฉันจะทำงานกับลอการิทึมฉันจะทำการเปรียบเทียบ:ล.โอก.(P(HMM1))+ล.โอก.(P(O|HMM1))>?ล.โอก.(P(HMM2))+ล.โอก.(P(O|HMM2)). ตอนนี้ล.โอก.(P(HMM1))คำนวณโดยใช้อัลกอริธึมการส่งต่อ ฉันคำนวณ log (P (HMM1)) โดยใช้ MLE แบบง่ายตามความถี่หรือไม่ เช่นสำหรับกรณีที่ได้รับHMM1=(5* * * *2,000)/108,000โดยที่ตัวเศษคือจำนวนคะแนนที่อยู่ภายใต้ HMM1 และตัวส่วนคือขนาดของชุดข้อมูล
Zhubarb
โดยการใช้ไซต์ของเรา หมายความว่าคุณได้อ่านและทำความเข้าใจนโยบายคุกกี้และนโยบายความเป็นส่วนตัวของเราแล้ว
Licensed under cc by-sa 3.0 with attribution required.