(Năm sau) các hàm piecewise-linear là các spline bậc 1, mà hầu hết các hàm spline có thể được yêu cầu làm.
ví dụ scipy.interpolate.UnivariateSpline có thể được chạy với k=1
và một tham số làm mịn s
, mà bạn sẽ phải chơi với - xem
scipy-interpolation-with-univariate-splines .
Trong Matlab, xem
cách chọn nút thắt .
Đã thêm: tìm kiếm các nút thắt tối ưu là không dễ dàng, bởi vì có thể có nhiều tối ưu cục bộ. Thay vào đó, bạn cung cấp cho UnivariateSpline một mục tiêu s
, tổng lỗi ^ 2 và để nó xác định số lượng nút thắt. Sau khi lắp, get_residual()
sẽ nhận được tổng số lỗi thực tế ^ 2 và get_knots()
các nút thắt. Một thay đổi nhỏ trong s
có thể thay đổi các nút thắt rất nhiều, đặc biệt là trong tiếng ồn cao - ymmv.
Cốt truyện cho thấy phù hợp với chức năng tuyến tính ngẫu nhiên ngẫu nhiên + nhiễu cho nhiều loại khác nhau s
.
Để biết các hằng số piecewise phù hợp, xem
Bước phát hiện . Điều đó có thể được sử dụng cho tuyến tính pw? Đừng biết; bắt đầu bằng cách phân biệt dữ liệu nhiễu sẽ làm tăng tiếng ồn, sai.
Các chức năng kiểm tra khác, và / hoặc liên kết đến giấy tờ hoặc mã, sẽ được hoan nghênh. Một vài liên kết:
piecewise-linear-regression-with-knots-as -ameter
Các spline tuyến tính rất nhạy cảm với các nút được đặt
nút chọn-cho-khối-hồi quy-splines
Đây là một vấn đề khó khăn và hầu hết mọi người chỉ chọn các nút thắt bằng cách dùng thử và lỗi.
Thay vào đó, một cách tiếp cận đang ngày càng phổ biến là sử dụng các spline hồi quy bị phạt thay thế.
Đã thêm vào tháng 3 năm 2014:
Lập trình động
là một phương pháp chung cho các vấn đề với các bài toán con lồng nhau như thế này:
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)
Lập trình động rất thông minh, nhưng liệu nó có thể đánh bại lực lượng vũ phu + heuristic cho nhiệm vụ này không?
Xem các ghi chú khóa học tuyệt vời của Erik Demaine trong
MIT 6,006 Giới thiệu về thuật toán
cũng là hồi quy tuyến tính phân đoạn google
cũng hội chứng John Henry.