Câu hỏi là theo một giả định sai. Nhiều người làm những gì bạn nói họ "không thể" làm.
Trong thực tế, việc thực hiện tìm kiếm lưới trong gói sklearn được triển khai rộng rãi thực hiện điều đó. Trừ khi refit=False
, nó sẽ đào tạo lại mô hình cuối cùng bằng cách sử dụng toàn bộ dữ liệu.
Tôi nghĩ đối với một số siêu âm, điều này có thể không được mong muốn lắm, vì chúng liên quan đến khối lượng dữ liệu. Ví dụ, hãy xem xét min_samples_leaf
chiến thuật cắt tỉa trước cho cây quyết định . Nếu bạn có nhiều dữ liệu hơn, việc cắt tỉa trước có thể không thực hiện như bạn muốn.
Nhưng một lần nữa, hầu hết mọi người thực tế đào tạo lại bằng cách sử dụng toàn bộ dữ liệu sau khi xác thực chéo, để họ kết thúc với mô hình tốt nhất có thể.
Phụ lục: @NeilSlater nói bên dưới rằng một số người thực hiện giữ trên đầu CV. Nói cách khác, họ có sự phân tách kiểm tra tàu và sau đó thực hiện lựa chọn mô hình trong khóa đào tạo. Theo ông, họ đào tạo lại bằng cách sử dụng bộ huấn luyện ban đầu tách ra, nhưng không phải là bộ thử nghiệm. Bộ thử nghiệm sau đó được sử dụng để thực hiện ước lượng mô hình cuối cùng. Cá nhân, tôi thấy ba lỗ hổng về điều này: (a) nó không giải quyết được vấn đề mà tôi đã đề cập với một số siêu âm phụ thuộc vào khối lượng đào tạo vì dù sao bạn đang đào tạo lại, (b) khi thử nghiệm nhiều mô hình, tôi thích tinh vi hơn các phương thức như xác thực chéo lồng nhau để không có dữ liệu nào bị lãng phí và (c) giữ lại là một phương pháp khủng khiếp để suy ra cách một mô hình sẽ khái quát hóa khi bạn có ít dữ liệu.