Khi chúng ta xác thực chéo k-Fold, chúng ta có nên sử dụng trình phân loại có độ chính xác kiểm tra cao nhất không? Nói chung cách tiếp cận tốt nhất để có được một bộ phân loại từ xác nhận chéo là gì?
Khi chúng ta xác thực chéo k-Fold, chúng ta có nên sử dụng trình phân loại có độ chính xác kiểm tra cao nhất không? Nói chung cách tiếp cận tốt nhất để có được một bộ phân loại từ xác nhận chéo là gì?
Câu trả lời:
Bạn xác thực chéo khi bạn muốn thực hiện bất kỳ điều nào trong hai điều sau:
Lựa chọn mô hình có thể đến trong các kịch bản khác nhau:
(xin lưu ý rằng nếu bạn vừa chọn một thuật toán - tốt hơn là gọi nó là mô hình - vừa thực hiện tìm kiếm siêu tham số, bạn cần thực hiện Xác thực chéo lồng nhau. Nested-CV có thực sự cần thiết không? )
Xác thực chéo đảm bảo đến một mức độ nào đó rằng ước tính lỗi là gần nhất có thể là lỗi tổng quát hóa cho mô hình đó (mặc dù điều này rất khó để ước tính). Khi quan sát lỗi trung bình giữa các nếp gấp, bạn có thể dự đoán tốt về lỗi dự kiến cho một mô hình được xây dựng trên bộ dữ liệu đầy đủ. Cũng rất quan trọng để quan sát phương sai của dự đoán, đây là, lỗi thay đổi từ lần này sang lần khác. Nếu biến thể quá cao (giá trị khác nhau đáng kể) thì mô hình sẽ có xu hướng không ổn định. Bootstrapping là phương pháp khác cung cấp xấp xỉ tốt theo nghĩa này. Tôi đề nghị đọc kỹ phần 7 trong cuốn sách "Các yếu tố của học thống kê", có sẵn miễn phí tại: ELS-Standford
Như nó đã được đề cập trước khi bạn không được lấy mô hình được xây dựng trong bất kỳ nếp gấp nào. Thay vào đó, bạn phải xây dựng lại mô hình với bộ dữ liệu đầy đủ (mô hình được chia thành các nếp gấp). Nếu bạn có một bộ thử nghiệm riêng biệt, bạn có thể sử dụng nó để thử mô hình cuối cùng này, nhận được một lỗi tương tự (và chắc chắn cao hơn) so với thử nghiệm thu được từ CV. Tuy nhiên, bạn nên dựa vào lỗi ước tính do quy trình CV đưa ra.
Sau khi thực hiện CV với các mô hình khác nhau (kết hợp thuật toán, v.v.), đã chọn một mô hình hoạt động tốt hơn liên quan đến lỗi và phương sai của nó trong các nếp gấp. Bạn sẽ cần xây dựng lại mô hình với toàn bộ dữ liệu. Ở đây có một sự nhầm lẫn phổ biến về các thuật ngữ: chúng tôi thường đề cập đến việc lựa chọn mô hình, nghĩ rằng mô hình là mô hình sẵn sàng dự đoán được xây dựng trên dữ liệu, nhưng trong trường hợp này, nó đề cập đến sự kết hợp của các thủ tục thuật toán + tiền xử lý mà bạn áp dụng. Vì vậy, để có được mô hình thực tế bạn cần để đưa ra dự đoán / phân loại, bạn cần xây dựng mô hình bằng cách sử dụng kết hợp người chiến thắng trên toàn bộ dữ liệu.
Điều cuối cùng cần lưu ý là nếu bạn đang áp dụng bất kỳ loại tiền xử lý nào thì việc sử dụng thông tin lớp (lựa chọn tính năng, giảm kích thước LDA, v.v.), điều này phải được thực hiện trong mỗi lần và không phải trước đó trên dữ liệu. Đây là một khía cạnh quan trọng. Nên làm điều tương tự nếu bạn đang áp dụng các phương pháp tiền xử lý liên quan đến thông tin trực tiếp của dữ liệu (PCA, chuẩn hóa, tiêu chuẩn hóa, v.v.). Tuy nhiên, bạn có thể áp dụng tiền xử lý không phụ thuộc vào dữ liệu (xóa một biến theo ý kiến chuyên gia, nhưng điều này khá rõ ràng). Video này có thể giúp bạn theo hướng đó: CV đúng và sai
Ở đây, một lời giải thích tốt đẹp cuối cùng về chủ đề: CV và lựa chọn mô hình
Không. Bạn không chọn bất kỳ trình phân loại k nào được tạo trong quá trình xác thực chéo k-Fold. Trước hết, mục đích của xác nhận chéo không phải là đưa ra một mô hình dự đoán, mà là để đánh giá chính xác một mô hình dự đoán sẽ thực hiện như thế nào trong thực tế. Thứ hai, để tranh luận, giả sử bạn đã sử dụng xác thực chéo k-gấp với k = 10 để tìm ra một trong ba thuật toán phân loại khác nhau sẽ phù hợp nhất để giải quyết vấn đề phân loại nhất định. Trong trường hợp đó, dữ liệu được chia ngẫu nhiên thành k phần có kích thước bằng nhau. Một trong những phần được dành riêng để thử nghiệm và phần còn lại k-1 sẽ được sử dụng để đào tạo. Quá trình xác nhận chéo được lặp lại k (lần) để mỗi lần lặp lại, phần khác nhau được sử dụng để kiểm tra. Sau khi chạy xác thực chéo, bạn nhìn vào kết quả từ mỗi lần và tự hỏi thuật toán phân loại nào (không phải bất kỳ mô hình được đào tạo nào!) Là phù hợp nhất. Bạn không muốn chọn thuật toán có độ chính xác kiểm tra cao nhất trên một trong 10 lần lặp, bởi vì có thể nó chỉ xảy ra ngẫu nhiên rằng dữ liệu kiểm tra trên lần lặp cụ thể đó chứa các ví dụ rất dễ, dẫn đến độ chính xác kiểm tra cao. Những gì bạn muốn làm là chọn thuật toán tạo ra độ chính xác tốt nhất từ đó dẫn đến độ chính xác kiểm tra cao. Những gì bạn muốn làm là chọn thuật toán tạo ra độ chính xác tốt nhất từ đó dẫn đến độ chính xác kiểm tra cao. Những gì bạn muốn làm là chọn thuật toán tạo ra độ chính xác tốt nhấttính trung bình trên tất cả các nếp gấp k . Bây giờ bạn đã chọn thuật toán, bạn có thể đào tạo nó bằng cách sử dụng toàn bộ dữ liệu đào tạo của mình và bắt đầu đưa ra dự đoán trong tự nhiên.
Điều này nằm ngoài phạm vi của câu hỏi này, nhưng bạn cũng nên tối ưu hóa siêu đường kính của mô hình (nếu có) để tận dụng tối đa thuật toán đã chọn. Mọi người thường thực hiện tối ưu hóa siêu tham số bằng cách sử dụng xác nhận chéo.
Vì vậy, hãy giả sử bạn đã đào tạo trong đó bạn đang sử dụng 80% là đào tạo và 20% là dữ liệu xác nhận. Chúng tôi có thể đào tạo trên 80% và kiểm tra 20% còn lại nhưng có thể 20% chúng tôi đã thực hiện không giống với dữ liệu thử nghiệm thực tế và có thể thực hiện sai sau này. Vì vậy, để ngăn chặn điều này, chúng ta có thể sử dụng xác nhận chéo k-Fold.
Vì vậy, hãy để chúng tôi nói rằng bạn có các mô hình khác nhau và muốn biết cái nào hoạt động tốt hơn với tập dữ liệu của bạn, xác thực chéo k-Fold hoạt động rất tốt. Bạn có thể biết các lỗi xác thực trên các hiệu suất xác thực k và chọn mô hình tốt hơn dựa trên đó. Đây thường là mục đích để xác nhận chéo k-Fold.
Đến với chỉ một mô hình và nếu bạn đang kiểm tra xác thực chéo k-Fold, bạn có thể nhận được xấp xỉ các lỗi của dữ liệu thử nghiệm (nhưng when you are actually training it finally, you can use the complete training data
vì ở đây giả định rằng toàn bộ dữ liệu sẽ cùng hoạt động tốt hơn một phần của nó Đôi khi nó có thể không phải là trường hợp, nhưng đây là giả định chung.)