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


9

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

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

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

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

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


1
คุณทำอะไรลงเอยด้วย - คุณช่วยแต่งรูปสักสองรูปได้มั้ย นอกจากนี้ "การตั้งค่าทั้งหมดให้เป็นศูนย์ยกเว้นสำหรับตัวทำนายหนึ่ง" - คุณไม่ต้องการให้การไล่ระดับสีรอบค่าที่ดีที่สุดในปัจจุบันไม่ใช่ค่า 0 ทั้งหมดใช่ไหม
เดนิส

คำตอบ:


4

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

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

ดู " วิธีการอธิบายการตัดสินใจประเภทบุคคล " โดย David Baehrens et. อัล ใน JMLR สำหรับข้อมูลเพิ่มเติมเกี่ยวกับความคิดนี้ กระดาษเกี่ยวข้องกับการจำแนก แต่ง่ายต่อการถดถอยเช่นกัน


มันอัศจรรย์มาก! การอ้างอิงที่มีประโยชน์มากซึ่งจะเป็นประโยชน์สำหรับปัญหานี้ที่ฉันมีและที่อื่น ๆ
Bogdanovist

2

คุณได้ลองโมดูลscikit-Learnใน python แล้วหรือยัง

คุณสามารถ "computer_importance" สำหรับคุณสมบัติของ randomForestClassifier


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

นอกเหนือ, OP ถามหารูปแบบวิธีการที่เป็นอิสระ ...
Steffen

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

ที่จริงฉันคิดว่านี่เป็นวิธีการแบบอิสระคุณอาจนำไปใช้กับตัวแยกประเภทอื่นนอกเหนือจากป่าสุ่ม ในเว็บไซต์ของ Breiman มีคำพูดที่ละเอียดอ่อนเกี่ยวกับวิธีที่คุณสามารถคำนวณความสำคัญของตัวแปรสำหรับกรณีเดียว stat.berkeley.edu/~breiman/RandomForests/cc_home.htm#varimp (ประโยคสุดท้าย) ฉันคิดว่านี่ยังไม่ได้รับการศึกษาอย่างกว้างขวางหรืออย่างน้อยก็มีการทดสอบอย่างกว้างขวาง ความสำคัญของตัวแปรหมายถึงไม่ใช่สิ่งที่คุณต้องการ ตัวอย่างเช่นไม่ใช่เมื่อคุณต้องการช่วยผู้ประกอบการในการตัดสินใจในกรณีหนึ่ง นี่เป็นหัวข้อที่น่าสนใจจริงๆ
Simone

มีบทความที่น่าสนใจที่ Breiman กล่าวถึงวิธีการนี้เกี่ยวกับการถดถอยโลจิสติกเช่นกัน: "การสร้างแบบจำลองทางสถิติ: สองวัฒนธรรม" อ่านดี ประโยคที่ฉันชอบมากที่สุดคือ: "คำจำกัดความของความสำคัญของตัวแปรของฉันขึ้นอยู่กับการทำนายตัวแปรอาจพิจารณาว่าสำคัญหากการลบมันมีผลกระทบต่อความแม่นยำในการทำนายอย่างจริงจัง" คำสั่งนี้ใช้กับตัวจําแนกใด ๆ ที่คุณอาจใช้
Simone
โดยการใช้ไซต์ของเรา หมายความว่าคุณได้อ่านและทำความเข้าใจนโยบายคุกกี้และนโยบายความเป็นส่วนตัวของเราแล้ว
Licensed under cc by-sa 3.0 with attribution required.