Tìm mức độ đa thức trong phân tích hồi quy


8

Tôi đang làm việc trong một dự án máy học, nơi tôi đang cố gắng phù hợp với một đường cong trên dữ liệu. Thật không may ngày có một số tính năng vector cao. Vì vậy, tôi thực sự không thể vẽ chúng trên không gian 2D hoặc 3D để đoán hình dạng của dữ liệu trông như thế nào.

Vì vậy, ngoài hit và dùng thử, có tồn tại một cách toán học để tìm mức độ đa thức phù hợp nhất với dữ liệu của tôi.

Ý tôi là tôi biết rằng tôi có thể xem xét một lỗi bình phương nhỏ nhất cho mỗi độ và sau đó chọn một lỗi có tối thiểu, nhưng sau đó sẽ là một vấn đề tối ưu hóa kép vì vòng lặp tối ưu hóa đầu tiên sẽ bao gồm việc tìm một tập các trọng số cho đường cong phù hợp với dữ liệu, trong khi vòng lặp thứ hai sẽ được sử dụng để kiểm tra mức độ. Bất kỳ đề xuất?


Bạn có kế hoạch thực hiện bất kỳ suy luận thống kê (dải tin cậy, kiểm tra giả thuyết, vv)? Điều đó sẽ thay đổi cách tiếp cận.
Frank Mitchell

Câu trả lời:


9

Xin lỗi nếu điều này quá sơ đẳng, tôi chỉ muốn đưa ra câu trả lời này càng khép kín càng tốt. Trên thực tế, bạn không thể làm những gì bạn mô tả: đa thức bậc nhất sẽ luôn phù hợp ít nhất cũng như đa thức tốt nhất của độ , vì tập hợp đa thức độ bao gồm tất cả các độ đa thức (chỉ cần đặt ). Khi bạn tiếp tục tăng , tại một thời điểm nhất định, bạn sẽ có thể tìm thấy một đa thức phù hợp với dữ liệu một cách hoàn hảo (nghĩa là không có lỗi).k+1kk+1kmộtk+1= =0k

Đây thường không phải là một giải pháp rất hấp dẫn bởi vì thật khó để tưởng tượng một quá trình phải được mô tả bằng ví dụ đa thức triệu độ, và gần như chắc chắn rằng loại mô hình này sẽ phức tạp hơn mức cần thiết để mô tả đầy đủ dữ liệu . Hiện tượng này được gọi là quá mức , và một ví dụ điển hình là hình ảnh Wikipedia này. Dữ liệu rõ ràng gần với tuyến tính, nhưng có thể (nhưng không mong muốn) để có lỗi thấp hơn với một mô hình phức tạp hơn.

Quá mức

Nói chung, mục tiêu là để giảm thiểu lỗi sẽ xảy ra trên dữ liệu mới từ cùng một mô hình cơ bản, thay vì trên tập dữ liệu hiện tại. Thông thường, việc lấy thêm dữ liệu là không thể hoặc thực tế, vì vậy thông thường người ta sẽ sử dụng một số hình thức xác thực chéo để tìm ra mô hình tổng quát hóa dữ liệu tốt nhất để không nhìn thấy. Có rất nhiều hình thức xác thực chéo và bạn có thể đọc về chúng trong bài viết Wikipedia hoặc trong nhiều câu trả lời trên CrossValidated (ha!). Nhưng thực tế, tất cả chúng có thể được giảm xuống: phù hợp với một mô hình trên một số dữ liệu của bạn và sử dụng điều này để dự đoán các giá trị cho phần còn lại của dữ liệu của bạn. Làm điều này nhiều lần và chọn mô hình (trong trường hợp này, mức độ đa thức) mang lại cho bạn hiệu suất trung bình tốt nhất.


0

Một trong những cách để giải quyết vấn đề "tìm kiếm" này là trước tiên hãy bắt đầu với một số thuật toán siêu kinh nghiệm như Lập trình di truyền và một khi chương trình có thể tạo ra một hàm "gần" (có thể lực tốt), hãy bắt đầu với các thuật toán hồi quy học máy truyền thống bằng cấp được xác định bởi GP. Bạn vẫn sẽ cần phải thực hiện xác nhận chéo để phù hợp với mô hình đa thức bậc n của bạn. Một vài điều bạn cần chắc chắn trong khi chạy GP là không cung cấp các hàm không nên sử dụng, GP khác có xu hướng tạo các mô hình phức tạp bắt chước cây quyết định + tuyến tính + bậc hai, v.v.

Khi sử dụng trang web của chúng tôi, bạn xác nhận rằng bạn đã đọc và hiểu Chính sách cookieChính sách bảo mật của chúng tôi.
Licensed under cc by-sa 3.0 with attribution required.