(ปีต่อมา) ฟังก์ชั่นเชิงเส้นเป็นเส้นแบ่งของระดับ 1 ซึ่งส่วนใหญ่สามารถบอกได้ว่าจะทำอย่างไร
scipy.interpolate.UnivariateSpline
ตัวอย่างเช่นสามารถทำงานด้วยk=1
และพารามิเตอร์เรียบs
ซึ่งคุณจะต้องเล่นกับ - ดู
SciPy-การแก้ไขที่มี univariate-เส้นโค้ง
ใน Matlab ดู
วิธีที่จะเลือก-นอต
เพิ่ม: การหานอตที่ดีที่สุดไม่ใช่เรื่องง่ายเพราะอาจมีออพติม่าในท้องถิ่นมากมาย คุณให้ UnivariateSpline แทนเป้าหมายเป็นs
ผลรวมของข้อผิดพลาด ^ 2 และให้มันกำหนดจำนวนนอต หลังจากการฟิตget_residual()
จะได้รับผลรวมของข้อผิดพลาดจริง ^ 2 และget_knots()
ปม การเปลี่ยนแปลงเล็กน้อยในs
อาจมีการเปลี่ยนแปลงนอตมากโดยเฉพาะอย่างยิ่งในเสียงรบกวนสูง - ymmv
พล็อตแสดงให้เห็นถึงความเหมาะสมกับฟังก์ชั่นเชิงเส้นแบบสุ่ม + เสียงรบกวนสำหรับต่างๆs
เสียงต่างๆ
สำหรับค่าคงที่แบบทีละส่วนให้ดู
การตรวจจับขั้นตอนการตรวจสอบขั้นตอนสามารถใช้สำหรับ pw เชิงเส้นได้หรือไม่? ไม่ทราบ เริ่มต้นด้วยการแยกความแตกต่างของข้อมูลที่มีเสียงดังจะเพิ่มเสียงรบกวนผิด
ยินดีต้อนรับการทดสอบอื่น ๆ และ / หรือลิงก์ไปยังเอกสารหรือรหัสจะได้รับการต้อนรับ การเชื่อมโยงสองสามอย่าง: การเชื่อมโยง
เชิงเส้น - ชิ้น - การถดถอย - ด้วย - นอต - พารามิเตอร์
เส้นโค้งเชิงเส้นมีความอ่อนไหวมากต่อการที่ปมจะถูกวาง
ปมเลือกสำหรับสำหรับลูกบาศก์ถดถอย
นี่เป็นปัญหาที่ยุ่งยากและคนส่วนใหญ่เพียงเลือกปมจากการลองผิดลองถูก
วิธีการหนึ่งที่กำลังได้รับความนิยมมากขึ้นคือการใช้เส้นโค้งการถดถอยที่ถูกลงโทษแทน
เพิ่มมีนาคม 2014:
การเขียนโปรแกรมแบบไดนามิก
เป็นวิธีการทั่วไปสำหรับปัญหาเกี่ยวกับปัญหาย่อยที่ซ้อนกันเช่นนี้:
optimal k lines
= optimal k - 1 lines up to some x
+ cost of the last line x to the end
over x (all x in theory, nearby x in practice)
การเขียนโปรแกรมแบบไดนามิกนั้นฉลาดมาก แต่มันสามารถเอาชนะแรงเดรัจฉาน + การวิเคราะห์พฤติกรรมสำหรับงานนี้ได้หรือไม่?
ดูบันทึกย่อของหลักสูตรที่ยอดเยี่ยมโดย Erik Demaine ภายใต้
MIT 6.006 แนะนำขั้นตอนวิธี
และการถดถอยเชิงเส้นแบบแบ่งส่วนของ Google รวมถึงกลุ่ม
อาการของ John Henry