Kết hợp mô hình học máy


20

Tôi là người mới đối với datamining / machine learning / v.v. và đã đọc về một vài cách để kết hợp nhiều mô hình và chạy cùng một mô hình để cải thiện dự đoán.

Ấn tượng của tôi khi đọc một vài bài báo (thường rất thú vị và tuyệt vời về lý thuyết và các chữ cái Hy Lạp nhưng ngắn về mã và các ví dụ thực tế) là nó được cho là như thế này:

Tôi lấy một mô hình ( knn, RFv.v.) và nhận danh sách các phân loại trong khoảng từ 0 đến 1. Câu hỏi của tôi là làm thế nào để kết hợp từng danh sách phân loại này? Tôi có chạy các mô hình tương tự trên tập huấn luyện của mình để số lượng cột đi vào mô hình cuối cùng giống nhau không hoặc có một số mẹo khác không?

Sẽ thật tuyệt nếu có bất kỳ đề xuất / ví dụ nào bao gồm mã R.

LƯU Ý: Phần này dành cho tập dữ liệu w / 100k dòng trong tập huấn luyện và 70k trong tập kiểm tra và 10 cột.

Câu trả lời:


21

Nó thực sự nắm bắt được một trong những kỹ thuật "3B": đóng bao, tăng cường hoặc pha trộn.

Trong việc đóng bao, bạn huấn luyện rất nhiều phân loại trên các tập hợp con khác nhau của đối tượng và kết hợp trung bình các câu trả lời để hồi quy và bỏ phiếu để phân loại (có một số tùy chọn khác cho các tình huống phức tạp hơn, nhưng tôi sẽ bỏ qua nó). Tỷ lệ / phương sai bình chọn có thể được hiểu là xấp xỉ lỗi do các phân loại riêng lẻ thường được coi là độc lập. RF trong thực tế là một đoàn đóng bao.

Boosting là một nhóm các phương thức rộng hơn, tuy nhiên điểm chính của chúng là bạn xây dựng trình phân loại tiếp theo dựa trên phần dư trước đây, theo cách này (về lý thuyết) tăng dần độ chính xác bằng cách làm nổi bật các tương tác ngày càng tinh tế hơn. Do đó, các dự đoán thường được kết hợp bằng cách tính tổng chúng, giống như tính giá trị của hàm theo x bằng cách tính tổng các giá trị của các phần tử chuỗi Taylor của nó cho x.
Hầu hết các phiên bản phổ biến là (Stochastic) Gradient Boosting (với nền tảng toán học tốt đẹp) và AdaBoost (nổi tiếng, trên thực tế là một trường hợp cụ thể của GB). Từ góc độ tổng thể, cây quyết định là một sự thúc đẩy của các phân loại trục chính tầm thường.

Trộn là một ý tưởng của các trình phân loại lồng nhau, tức là chạy một trình phân loại trên một hệ thống thông tin được tạo từ các dự đoán của các trình phân loại khác. Như vậy, nó là một phương thức rất thay đổi và chắc chắn không phải là một thuật toán xác định; có thể yêu cầu rất nhiều đối tượng (trong hầu hết các trường hợp, trình phân loại "máy xay" phải được đào tạo trên một tập hợp các đối tượng không được sử dụng để xây dựng các trình phân loại một phần để tránh lúng túng quá mức).
Các dự đoán của phân loại một phần rõ ràng được kết hợp bằng cách trộn chúng vào một hệ thống thông tin được dự đoán bởi máy xay.


7

Biểu thức "kết hợp các mô hình" là mơ hồ, nhưng tôi đoán là bạn đang hỏi về phương pháp học tập đồng bộ. Tài liệu tham khảo tốt nhất để tìm hiểu về chúng có lẽ là các bài viết của Rich Caruana:

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

Không có mã thực tế trong bài viết này, nhưng thuật toán được mô tả rõ ràng, vì vậy bạn không nên có bất kỳ vấn đề nào khi mã hóa nó bằng bất kỳ ngôn ngữ nào bạn thích.


2

Sau khi nhìn xung quanh một chút với sự giúp đỡ của các câu trả lời trên, tôi nhận ra vấn đề của mình là gì. Tôi đã cố gắng sử dụng các dự đoán của các mô hình khác trong cùng một mô hình như được sử dụng để dự đoán chúng. Nói cách khác, nếu tôi có 5 biến khi tôi chạy kNNmô hình, tôi sẽ thêm một biến mới với các dự đoán của kNNmô hình và tạo một mô hình với 6 biến khi tôi chạy mô hình Forest ngẫu nhiên. Tôi thấy rằng thay vì các kết quả từ các mô hình nên được phân đoạn và chạy như một mô hình riêng biệt. Vì vậy, tôi muốn tạo ra những dự đoán từ các mô hình khác nhau ( knn, RF, svd, vv) sau đó chạy một kết hợp / trộn / xếp mô hình riêng biệt chỉ sử dụng những dự đoán như biến và phân loại như những gì dự đoán.

Tôi nghĩ rằng một số vấn đề của tôi là trong việc kết hợp các dự đoán với các biến khác, có thể có một số trường hợp quá mức hoặc đa hình nhưng tôi không chắc chắn. Một số người khác có thể cân nhắc tốt hơn về những gì tôi đã làm sai. Dù sao cũng cảm ơn mọi người vì sự giúp đỡ của họ.

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.