10 วิธีในการปรับปรุงเครื่องของคุณโมเดลการเรียนรู้

10 วิธีในการปรับปรุงเครื่องของคุณโมเดลการเรียนรู้ - Dummies

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

การศึกษาเส้นโค้งการเรียนรู้

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

Python ช่วยให้คุณสามารถวาดเส้นโค้งการเรียนรู้โดยใช้ฟังก์ชัน Scikit-learn () นอกจากนี้คุณยังสามารถบรรลุผลเช่นเดียวกันโดยใช้ R ด้วยฟังก์ชันที่กำหนดเองตามที่บล็อกการวิเคราะห์การปฏิวัติอธิบายไว้

การใช้การตรวจสอบข้ามอย่างถูกต้อง

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

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

  • การสอดแนม
  • การสุ่มตัวอย่างอย่างไม่ถูกต้อง

Python มีตัวอย่าง CV แบบแบ่งชั้น R สามารถจัดกลุ่มตัวอย่างโดยใช้วิธี createFolds ของไลบรารีแคทเมื่อคุณระบุพารามิเตอร์ y เป็นตัวประกอบ

การเลือกข้อผิดพลาดหรือคะแนนที่เหมาะสม

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

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

การค้นหาพารามิเตอร์ไฮเปอร์ที่ดีที่สุด

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

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

การทดสอบโมเดลหลายรูปแบบ

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

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

เนื่องจากคุณอาจสนใจเฉพาะผู้บริโภคที่มีแนวโน้มที่จะตอบสนองต่อข้อเสนอพิเศษของคุณมากที่สุดเท่านั้นการสั่งซื้อการคาดการณ์จากมากไปน้อยที่สุดจะเน้นว่ารูปแบบของคุณเป็นอย่างไรในการคาดการณ์ลูกค้าที่มีแนวโน้มมากที่สุด คำตอบ Quora เหล่านี้ช่วยให้คุณทราบว่ากราฟการเพิ่มและการยกใช้เป็นอย่างไร: What's ROC Curve? Lift Curve คืออะไร? .

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

โมเดลเฉลี่ย

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

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

แบบกองซ้อน

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

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

การแข่งขัน Netflix แสดงหลักฐานและภาพประกอบโดยละเอียดเกี่ยวกับรูปแบบที่แตกต่างกันสามารถใช้ร่วมกันเพื่อสร้างรูปแบบที่มีประสิทธิภาพมากขึ้น อย่างไรก็ตามการใช้โซลูชันนี้เป็นแอปพลิเคชันที่ใช้งานได้ค่อนข้างยุ่งยาก

การใช้วิศวกรรมคุณลักษณะ

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

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

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

การเลือกคุณสมบัติและตัวอย่าง

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

เมื่อทำงานร่วมกับโมเดลเชิงเส้นเครื่องเวสเตอร์เวอร์เชียลเชิงเส้นหรือเครือข่ายประสาทการกำหนดกฎให้เป็นตัวเลือกเสมอ ทั้ง L1 และ L2 สามารถลดอิทธิพลของตัวแปรซ้ำซ้อนหรือแม้แต่ลบออกจากแบบจำลองได้ การเลือกความเสถียรช่วยยกระดับความสามารถของ L1 ในการยกเว้นตัวแปรที่มีประโยชน์น้อยลง เทคนิคนี้จะปรับเปลี่ยนข้อมูลการฝึกอบรมเพื่อยืนยันการยกเว้น

คุณสามารถเรียนรู้เพิ่มเติมเกี่ยวกับการเลือกเสถียรภาพโดยการดูตัวอย่างในเว็บไซต์ Scikit-learn นอกจากนี้คุณสามารถฝึกใช้ RandomizedLogisticRegression และ RandomizedLasso Scikit-learn functions ในโมดูล linear_model

กำลังมองหาข้อมูลเพิ่มเติม

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

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