การรวมโมเดลการเรียนรู้ของเครื่อง


20

ฉันยังใหม่กับการเรียนรู้ข้อมูล / การเรียนรู้ของเครื่อง / ฯลฯ และได้อ่านเกี่ยวกับวิธีการรวมแบบจำลองหลายแบบและแบบจำลองเดียวกันเพื่อปรับปรุงการทำนาย

ความประทับใจของฉันจากการอ่านบทความสองเล่ม (ซึ่งมักจะน่าสนใจและยอดเยี่ยมเกี่ยวกับทฤษฎีและตัวอักษรกรีก แต่สั้น ๆ เกี่ยวกับรหัสและตัวอย่างจริง) คือมันควรจะเป็นเช่นนี้:

ฉันใช้แบบจำลอง ( knn, RFและอื่น ๆ ) และรับรายการตัวแยกประเภทระหว่าง 0 และ 1 คำถามของฉันคือวิธีรวมรายการตัวแยกประเภทแต่ละรายการเหล่านี้หรือไม่ ฉันใช้โมเดลเดียวกันกับชุดการฝึกอบรมของฉันหรือไม่เพื่อให้จำนวนคอลัมน์ที่เข้าสู่โมเดลสุดท้ายเหมือนกันหรือมีเคล็ดลับอื่น ๆ อีกหรือไม่

มันจะดีถ้าคำแนะนำ / ตัวอย่างรวมถึงรหัส R

หมายเหตุ: สำหรับชุดข้อมูลที่มีเส้น 100k ในชุดฝึกอบรมและ 70k ในชุดทดสอบและ 10 คอลัมน์

คำตอบ:


21

อันที่จริงมันเป็นการต้มลงไปหนึ่งในเทคนิค "3B": การห่อการเพิ่มหรือการผสม

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

Boosting เป็นวิธีการในตระกูลที่กว้างกว่าอย่างไรก็ตามประเด็นหลักของพวกเขาคือคุณสร้างลักษณนามต่อไปในส่วนที่เหลือของอดีตวิธีนี้ (ในทางทฤษฎี) ค่อยๆเพิ่มความแม่นยำโดยเน้นการโต้ตอบที่ลึกซึ้งยิ่งขึ้น การคาดคะเนมักจะรวมกันโดยรวมพวกมันเข้าด้วยกันเช่นการคำนวณค่าของฟังก์ชันใน x โดยการรวมค่าขององค์ประกอบชุด Taylor สำหรับ x
รุ่นที่ได้รับความนิยมมากที่สุดคือ (Stochastic) การไล่ระดับสีแบบค่อยเป็นค่อยไป (มีพื้นฐานทางคณิตศาสตร์ที่ดี) และ AdaBoost (ซึ่งเป็นที่รู้จักกันดีในความเป็นจริงแล้วเป็นกรณีเฉพาะของ GB) จากมุมมองแบบองค์รวมต้นไม้การตัดสินใจคือการเพิ่มตัวแยกประเภท pivot เล็กน้อย

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


7

นิพจน์ "การรวมโมเดล" นั้นคลุมเครือ แต่ฉันเดาว่าคุณกำลังถามเกี่ยวกับวิธีการเรียนรู้ทั้งมวล การอ้างอิงที่ดีที่สุดเพื่อเรียนรู้เกี่ยวกับพวกเขาอาจเป็นเอกสารของ Rich Caruana:

http://www.cs.cornell.edu/~caruana/ctp/ct.papers/caruana.icml04.icdm06long.pdf

ไม่มีรหัสจริงในบทความนี้ แต่มีการอธิบายขั้นตอนวิธีไว้อย่างชัดเจนดังนั้นคุณไม่ควรมีปัญหาในการเขียนโค้ดในภาษาใด ๆ ที่คุณต้องการ


2

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

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

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