Xác thực chéo và điều chỉnh tham số


17

Bất cứ ai có thể cho tôi biết chính xác những gì một phân tích xác nhận chéo cho kết quả? Đây chỉ là độ chính xác trung bình hay nó cung cấp cho bất kỳ mô hình nào với các tham số được điều chỉnh?

Bởi vì, tôi đã nghe ở đâu đó rằng xác thực chéo được sử dụng để điều chỉnh tham số.

Câu trả lời:


26

Xác thực chéo đưa ra thước đo độ chính xác ngoài mẫu bằng cách lấy trung bình trên một số phân vùng ngẫu nhiên của dữ liệu vào các mẫu thử nghiệm và huấn luyện. Nó thường được sử dụng để điều chỉnh tham số bằng cách thực hiện xác thực chéo cho một số (hoặc nhiều) giá trị có thể có của một tham số và chọn giá trị tham số đưa ra lỗi trung bình xác thực chéo thấp nhất.

Vì vậy, quá trình tự nó không cung cấp cho bạn một ước tính mô hình hoặc tham số, nhưng bạn có thể sử dụng nó để giúp lựa chọn giữa các lựa chọn thay thế.


12

Để thêm vào câu trả lời của Jonathan.

Tuy nhiên, nếu bạn sử dụng xác thực chéo để điều chỉnh tham số, thì các mẫu ngoài thực tế sẽ trở thành một phần của mô hình của bạn. Vì vậy, bạn cần một mẫu độc lập khác để đo chính xác hiệu suất của mô hình cuối cùng.

Được sử dụng để đo hiệu suất mô hình, xác thực chéo có thể đo lường nhiều hơn độ chính xác trung bình:
Điều thứ hai bạn có thể đo lường với xác thực chéo là tính ổn định của mô hình đối với việc thay đổi dữ liệu đào tạo: xác thực chéo xây dựng rất nhiều mô hình "thay thế" được đào tạo bộ đào tạo hơi khác nhau. Nếu các mô hình ổn định, tất cả các mô hình thay thế này là tương đương, nếu đào tạo không ổn định, các mô hình thay thế thay đổi rất nhiều. Bạn có thể định lượng "thay đổi rất nhiều" này, ví dụ như phương sai dự đoán của các mô hình thay thế khác nhau cho cùng một mẫu (trong xác thực chéo lặp lại / lặp lại) hoặc ví dụ như phương sai của các tham số của mô hình thay thế.


3

Để thêm vào câu trả lời trước, chúng tôi sẽ bắt đầu lại từ đầu:

Có một số cách bạn có thể phù hợp với mô hình của bạn với dữ liệu đào tạo, một số cách rõ ràng, một số ít như vậy. Đầu tiên, và điều quan trọng nhất là quá mức các tham số đào tạo (trọng số) cho dữ liệu (tham số khớp đường cong trong hồi quy logistic, trọng số mạng trong mạng nơ ron, v.v.). Sau đó, bạn sẽ mô hình hóa nhiễu trong dữ liệu - nếu bạn quá phù hợp, bạn không chỉ nắm bắt được chức năng tạo cơ bản, mà còn là sự ngẫu nhiên do kích thước mẫu và thực tế là mẫu không phải là đại diện hoàn hảo cho dân số. Quá mức này có thể được giảm thiểu đến một mức độ nhất định bằng cách xử phạt các thuộc tính nhất định (nói chung là phức tạp) của mô hình. Điều này có thể được thực hiện bằng cách dừng đào tạo một khi hiệu suất trên mẫu tàu không còn được cải thiện đáng kể, bằng cách loại bỏ một số tế bào thần kinh khỏi mạng lưới thần kinh (được gọi là bỏ học),https://ieeexplore.ieee.org/document/614177/ ) v.v.). Tuy nhiên, các chiến lược chính quy hóa này tự chúng được tham số hóa (khi nào bạn dừng lại?, Cần loại bỏ bao nhiêu tế bào thần kinh? V.v.). Ngoài ra, hầu hết các mô hình học máy đều có một số siêu tham số cần được đặt trước khi bắt đầu đào tạo. Và các siêu tham số này được điều chỉnh trong giai đoạn điều chỉnh tham số.

Điều đó đưa chúng ta đến loại thứ hai, và loại quá mức tinh tế: siêu tham số quá mức. Xác thực chéo có thể được sử dụng để tìm siêu tham số "tốt nhất", bằng cách liên tục huấn luyện mô hình của bạn từ đầu trên các nếp gấp k-1 của mẫu và thử nghiệm ở lần cuối cùng.

Vậy nó được thực hiện chính xác như thế nào? Tùy thuộc vào chiến lược tìm kiếm (được đưa ra bởi hàng chục), bạn đặt siêu tham số của mô hình và huấn luyện mô hình của bạn k lần, mỗi lần sử dụng lần kiểm tra khác nhau. Bạn "nhớ" hiệu suất trung bình của mô hình trong tất cả các lần thử nghiệm và lặp lại toàn bộ quy trình cho một bộ siêu tham số khác. Sau đó, bạn chọn bộ siêu tham số tương ứng với hiệu suất tốt nhất trong quá trình xác thực chéo. Như bạn có thể thấy, chi phí tính toán của thủ tục này phụ thuộc rất nhiều vào số lượng bộ siêu tham số cần được xem xét. Đó là lý do tại sao một số chiến lược để chọn bộ này đã được phát triển (ở đây tôi sẽ khái quát những gì tenhi nói):

  1. Tìm kiếm dạng lưới: với mỗi siêu tham số, bạn liệt kê một số hữu hạn các giá trị có thể. Sau đó, thủ tục được thực hiện triệt để cho tất cả các kết hợp của các tham số siêu liệt kê. Rõ ràng, nếu bạn có các tham số siêu liên tục, bạn không thể thử tất cả chúng.
  2. Tìm kiếm lưới ngẫu nhiên: tương tự như tìm kiếm lưới thông thường, nhưng lần này bạn không thử tất cả các kết hợp một cách triệt để, mà thay vào đó hãy lấy mẫu một số lần cố định cho tất cả các giá trị có thể. Lưu ý rằng ở đây có thể không chỉ liệt kê các giá trị có thể cho siêu tham số, mà bạn còn có thể cung cấp phân phối cho mẫu từ đó.
  3. BayesianSearch - sự kết hợp của các giá trị siêu tham số được chọn để tối đa hóa sự cải thiện điểm số dự kiến. Để biết thêm: http://epage.nips.cc/apers/4522-pratics-bayesian-optimization-of-machine-learning-alerskyms.pdf . Và một thư viện chỉ liên quan đến điều đó: https://github.com/hyperopt/hyperopt . Vì không dễ để kết hợp với sklearn như những gì tenhi khuyên dùng, chỉ sử dụng nó nếu bạn không làm việc với sklearn.
  4. Các cách khác để tìm kiếm hướng dẫn trong không gian siêu tham số. Theo kinh nghiệm của tôi, chúng hiếm khi được sử dụng, vì vậy tôi sẽ không bao gồm chúng ở đây.

Tuy nhiên đây không phải là kết thúc của câu chuyện, vì các tham số siêu có thể (và sẽ) cũng phù hợp với dữ liệu. Đối với hầu hết các trường hợp, bạn chỉ có thể sống với nó, nhưng nếu bạn muốn tối đa hóa sức mạnh khái quát của mô hình của mình, bạn cũng có thể muốn thử và thường xuyên hóa các tham số siêu. Trước tiên, bạn có thể đánh giá hiệu suất trên dữ liệu ngoài mẫu tốt hơn một chút bằng cách sử dụng tìm kiếm lưới lồng nhau (chi tiết: http://scikit-learn.org/ sóng / auto_examples / model_selection / plot_nested_cross_validation_iris.html , thảo luận: Xác thực chéo để lựa chọn mô hình) hoặc chỉ sử dụng một bộ xác thực không được sử dụng để điều chỉnh siêu tham số. Đối với việc thường xuyên hóa trong không gian siêu tham số, đó ít nhiều là một câu hỏi mở. Một số ý tưởng bao gồm chọn không phải là tập hợp các giá trị siêu tham số tốt nhất, nhưng một cái gì đó gần hơn ở giữa; lý do diễn ra như sau: các giá trị siêu tham số tốt nhất rất có thể phù hợp với dữ liệu chỉ vì hiệu suất tốt hơn các dữ liệu khác, các tham số xấu chỉ là xấu, nhưng các giá trị ở giữa có thể có thể khái quát hóa tốt hơn so với các giá trị tốt nhất . Andrew Ng đã viết một bài báo về nó. Một tùy chọn khác là giới hạn không gian tìm kiếm của bạn (bạn đang thường xuyên bằng cách đưa ra sự thiên vị mạnh mẽ ở đây - các giá trị bên ngoài không gian tìm kiếm sẽ không bao giờ được chọn rõ ràng).

Nhận xét bên lề: sử dụng độ chính xác làm chỉ số hiệu suất trong hầu hết các trường hợp là một ý tưởng rất tồi , hãy nhìn vào điểm số F1 và f_beta - trong hầu hết các trường hợp này sẽ phản ánh tốt hơn những gì bạn thực sự đang cố gắng tối ưu hóa trong các vấn đề phân loại nhị phân.

Tóm lại: chính xác thực chéo được sử dụng để khẳng định hiệu suất của mô hình trên dữ liệu ngoài mẫu, nhưng cũng có thể được sử dụng để điều chỉnh siêu tham số kết hợp với một trong các chiến lược tìm kiếm trong không gian siêu tham số. Tìm siêu tham số tốt cho phép tránh hoặc ít nhất là giảm quá mức, nhưng hãy nhớ rằng siêu tham số cũng có thể vượt quá dữ liệu.


2

Nếu bạn đến từ nền tảng tìm hiểu scikit, câu trả lời này có thể hữu ích.

Xác thực chéo k-Fold được sử dụng để phân chia dữ liệu thành các kphân vùng, sau đó trình ước tính được đào tạo về các k-1phân vùng và sau đó được kiểm tra trên kthphân vùng. Như thế này, chọn phân vùng nào sẽ là kthphân vùng, có kkhả năng. Do đó, bạn nhận được kkết quả của tất cả các kkhả năng của công cụ ước tính của bạn.

đây là những phương pháp tính toán đắt tiền, nhưng nếu bạn định thử các công cụ ước tính khác nhau, bạn có thể thử ba phương pháp này để thực hiện điều chỉnh siêu tham số cùng với CV:

Tôi. GridSearchCV - một danh sách đầy đủ tất cả các P và C có thể cho các siêu đường kính cho tất cả các công cụ ước tính. Cuối cùng, đưa ra các siêu đường kính tốt nhất bằng cách sử dụng giá trị trung bình của CV ước tính cụ thể đó.

ii. RandomizedSearchCV - Không thực hiện tất cả P ​​và C của siêu đường kính, nhưng theo cách tiếp cận ngẫu nhiên, sẽ cho phép ước lượng chính xác gần nhất có thể tiết kiệm nhiều hơn cho tính toán.

iii. BayesSearchCV - Không phải là một phần của scikit-learnnhưng tối ưu hóa Bayes để thực hiện tìm kiếm ngẫu nhiên và phù hợp với kết quả.

tl: dr : CV chỉ được sử dụng để tránh sai lệch cao và phương sai cao cho công cụ ước tính của bạn vì dữ liệu bạn đang truyền. Hy vọng nó hữu ích.

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.