Làm thế nào để có được các tham số siêu trong xác nhận chéo lồng nhau?


16

Tôi đã đọc các bài viết sau để xác thực chéo lồng nhau và vẫn không chắc chắn 100% tôi sẽ làm gì với lựa chọn mô hình với xác thực chéo lồng nhau:

Để giải thích sự nhầm lẫn của tôi, hãy để tôi thử đi qua lựa chọn mô hình với phương pháp xác thực chéo được lồng từng bước.

  1. Tạo một vòng CV bên ngoài với K-Fold. Điều này sẽ được sử dụng để ước tính hiệu suất của các tham số siêu "thắng" mỗi vòng CV bên trong.
  2. Sử dụng GridSearchCV để tạo một vòng CV bên trong trong đó trong mỗi vòng lặp bên trong, GSCV đi qua tất cả các kết hợp có thể có của không gian tham số và đưa ra tập hợp các tham số tốt nhất.
  3. Sau khi GSCV tìm thấy các tham số tốt nhất trong vòng lặp bên trong, nó được kiểm tra với bộ kiểm tra ở vòng lặp bên ngoài để có được ước tính về hiệu suất.
  4. Vòng lặp bên ngoài sau đó cập nhật vào lần gấp tiếp theo là tập kiểm tra và phần còn lại là tập huấn luyện và lặp lại 1-3 lần. Tổng số tham số "chiến thắng" có thể là số lần được chỉ định trong vòng lặp bên ngoài. Vì vậy, nếu vòng lặp bên ngoài là 5 lần, thì bạn sẽ có ước tính hiệu suất của một thuật toán với 5 bộ tham số siêu khác nhau , KHÔNG phải là hiệu suất của một bộ siêu tham số cụ thể.

Cách tiếp cận này được minh họa trên trang ví dụ của SKLearn: http://scikit-learn.org/urdy/auto_examples/model_selection/plot_nested_cross_validation_iris.html

Câu hỏi: Sau 4. , làm thế nào để bạn xác định siêu tham số nào hoạt động tốt nhất? Tôi hiểu rằng bạn muốn đào tạo thuật toán của mình (ví dụ: Hồi quy logistic, Rừng ngẫu nhiên, v.v.) với bộ dữ liệu HOÀN THÀNH ở cuối. Nhưng làm thế nào để bạn xác định siêu tham số nào hoạt động tốt nhất trong xác thực chéo lồng nhau của bạn? Tôi hiểu rằng với mỗi vòng lặp bên trong, một tập hợp các tham số siêu khác nhau sẽ giành chiến thắng. Và đối với vòng lặp bên ngoài, bạn sẽ có được ước tính về hiệu suất GridSearchCV của mình, nhưng bạn không nhận được bất kỳ một tham số siêu cụ thể nào. Vì vậy, trong quá trình tạo mô hình cuối cùng, làm thế nào để bạn biết siêu tham số nào sẽ sử dụng? Đó là logic thiếu mà tôi gặp khó khăn trong việc hiểu từ các mặt khác.

Cảm ơn bạn trước bất kỳ lời khuyên nào, đặc biệt là nếu @Dikran Marsupial và @cbeleites có thể hòa nhập!

Chỉnh sửa: Nếu bạn có thể, xin vui lòng trong câu trả lời của bạn sử dụng các thuật ngữ như "thuật toán" và "siêu tham số". Tôi nghĩ một nguồn gây nhầm lẫn cho tôi là khi mọi người sử dụng thuật ngữ "mô hình" hoặc "lựa chọn mô hình". Tôi bối rối không biết họ đang nói về việc chọn thuật toán nào sẽ sử dụng hay siêu tham số nào sẽ sử dụng.

Chỉnh sửa 2: Tôi đã tạo một sổ ghi chép cho thấy hai cách thực hiện xác thực chéo lồng nhau. Cách đầu tiên là cách hiển thị trong ví dụ SKLearn và cách khác dài hơn là cách tôi đã viết. Cách hiển thị trong SKLearn không phơi bày các siêu đường kính "chiến thắng", nhưng cách dài hơn của tôi thì có. Nhưng câu hỏi vẫn như cũ. Sau khi tôi đã hoàn thành xác nhận chéo lồng nhau, ngay cả với các siêu đường kính được hiển thị, tôi phải làm gì bây giờ? Như bạn có thể thấy từ các siêu đường kính ở cuối sổ ghi chép, chúng thay đổi khá nhiều.


1
+1 cho sổ ghi chép. Câu hỏi này cũng được tôi quan tâm và sẽ theo dõi.
Arnold Klein

Câu trả lời:


6

(Tôi chắc chắn rằng tôi đã viết hầu hết những điều này trong một số câu trả lời - nhưng không thể tìm thấy nó ngay bây giờ. Nếu có ai tình cờ thấy câu trả lời đó, vui lòng liên kết nó). Tôi thấy 2 cách tiếp cận hơi khác nhau ở đây, mà tôi nghĩ là cả hai đều hợp lý.

Nhưng trước tiên một số thuật ngữ:

  • Đến từ một lĩnh vực ứng dụng, một mô hình (được trang bị / đào tạo) đối với tôi là một mô hình sẵn sàng để sử dụng. Tức là mô hình chứa tất cả thông tin cần thiết để tạo dự đoán cho dữ liệu mới. Do đó, mô hình cũng chứa các siêu đường kính . Như bạn sẽ thấy, quan điểm này có liên quan chặt chẽ với cách tiếp cận 2 dưới đây.
  • OTOH, thuật toán đào tạo theo kinh nghiệm của tôi không được xác định rõ theo nghĩa sau: để có được mô hình (được trang bị), không chỉ - hãy gọi nó là "khớp chính" - của các tham số mô hình "bình thường" cần phải được thực hiện, nhưng cũng cần phải cố định các siêu đường kính. Từ quan điểm ứng dụng của tôi, thực sự không có nhiều khác biệt giữa các tham số và siêu liên kết: cả hai đều là một phần của mô hình và cần được ước tính / quyết định trong quá trình đào tạo.
    Tôi đoán sự khác biệt giữa chúng có liên quan đến sự khác biệt giữa ai đó đang phát triển thuật toán đào tạo mới, người thường mô tả một lớp thuật toán đào tạo cùng với một số tham số chỉ đạo ( siêu âm) rất khó / không thể sửa chữa (hoặc ít nhất là khắc phục cách chúng được quyết định / ước tính) mà không có kiến ​​thức về ứng dụng / tên miền.

Cách tiếp cận 1: yêu cầu kết quả tối ưu hóa ổn định

Với phương pháp này, "đào tạo mô hình" là sự phù hợp của các tham số mô hình "bình thường" và siêu âm được đưa ra. Ví dụ bên trong, ví dụ xác thực chéo sẽ đảm nhận việc tối ưu hóa siêu tham số.

Bước / giả định quan trọng ở đây để giải quyết tình trạng tiến thoái lưỡng nan của tập hợp siêu tham số nên được chọn là yêu cầu tối ưu hóa để ổn định . Xác thực chéo cho các mục đích xác nhận giả định rằng tất cả các mô hình thay thế đều tương tự như mô hình cuối cùng (có được bằng thuật toán đào tạo tương tự áp dụng cho toàn bộ tập dữ liệu) để cho phép đối xử với chúng như nhau (giữa chúng cũng như với mô hình cuối cùng). Nếu giả định này bị phá vỡ và

  1. các mô hình thay thế vẫn tương đương (hoặc tương đương) với nhau nhưng không phải là mô hình cuối cùng, chúng ta đang nói về xu hướng bi quan nổi tiếng của xác nhận chéo.

  2. Nếu mô hình thay thế cũng không bằng / tương đương với nhau, chúng ta có vấn đề với sự không ổn định .

Đối với các kết quả tối ưu hóa của vòng lặp bên trong, điều này có nghĩa là nếu tối ưu hóa ổn định, không có xung đột trong việc chọn siêu đường kính . Và nếu sự thay đổi đáng kể được quan sát qua các kết quả xác nhận chéo bên trong, thì việc tối ưu hóa không ổn định . Các tình huống đào tạo không ổn định có vấn đề tồi tệ hơn nhiều so với quyết định lựa chọn tập hợp siêu tham số nào và tôi thực sự khuyên bạn nên lùi lại trong trường hợp đó và bắt đầu quá trình lập mô hình.

Tuy nhiên, có một ngoại lệ: có thể có một số cực tiểu cục bộ trong việc tối ưu hóa mang lại hiệu suất tương đương cho các mục đích thực tế. Yêu cầu cũng là sự lựa chọn trong số chúng để ổn định có thể là một yêu cầu mạnh mẽ không cần thiết - nhưng tôi không biết làm thế nào để thoát khỏi tình trạng khó xử này.

Lưu ý rằng nếu không phải tất cả các mô hình đều mang lại bộ tham số chiến thắng giống nhau, bạn không nên sử dụng ước tính vòng lặp bên ngoài như lỗi tổng quát hóa ở đây:

  • Nếu bạn yêu cầu lỗi tổng quát hóa cho các tham số , tất cả các mô hình thay thế nhập vào xác thực sẽ thực sự sử dụng chính xác các tham số này. (Hãy tưởng tượng ai đó nói với bạn rằng họ đã xác thực chéo trên mô hình với C = 1 và kernel tuyến tính và bạn phát hiện ra một số phần tách được đánh giá bằng kernel rbf!)p
  • Nhưng trừ khi không có quyết định nào liên quan vì tất cả các phân tách đều mang lại cùng một tham số, điều này sẽ phá vỡ tính độc lập ở vòng ngoài: dữ liệu thử nghiệm của mỗi phân tách đã đi vào quyết định mà tham số nào thắng khi nó được đào tạo dữ liệu trong tất cả các phân tách khác và do đó được sử dụng để tối ưu hóa các tham số.

Cách tiếp cận 2: coi điều chỉnh siêu tham số là một phần của đào tạo mô hình

Cách tiếp cận này kết nối các quan điểm của "nhà phát triển thuật toán đào tạo" và người sử dụng thuật toán đào tạo.

Nhà phát triển thuật toán đào tạo cung cấp một thuật toán đào tạo "trần trụi" model = train_naked (trainingdata, hyperparameters). Vì nhu cầu của người dùng được áp dụng tunedmodel = train_tuned (trainingdata)cũng cần phải sửa chữa các siêu đường kính.

train_tunedcó thể được thực hiện, ví dụ bằng cách gói một trình tối ưu hóa dựa trên xác thực chéo xung quanh thuật toán đào tạo trần trụi train_naked.

train_tunedsau đó có thể được sử dụng như bất kỳ thuật toán đào tạo nào khác không yêu cầu đầu vào siêu tham số, ví dụ đầu ra của nó tunedmodelcó thể được xác nhận chéo. Bây giờ các siêu đường kính được kiểm tra độ ổn định của chúng giống như các tham số "bình thường" cần được kiểm tra độ ổn định như là một phần của việc đánh giá xác nhận chéo.

Đây thực sự là những gì bạn làm và đánh giá trong xác thực chéo lồng nhau nếu bạn thực hiện trung bình tất cả các mô hình chiến thắng bất kể các bộ tham số riêng lẻ của chúng.


Có gì khác biệt?

Chúng tôi có thể kết thúc với các mô hình cuối cùng khác nhau theo 2 cách tiếp cận sau:

  • mô hình cuối cùng trong cách tiếp cận 1 sẽ là train_naked (all data, hyperparameters from optimization)
  • trong khi cách tiếp cận 2 sẽ sử dụng train_tuned (all data)và - vì nó chạy lại tối ưu hóa siêu tham số trên tập dữ liệu lớn hơn - điều này có thể kết thúc bằng một bộ siêu đường kính khác.

Nhưng một lần nữa logic tương tự được áp dụng: nếu chúng ta thấy rằng mô hình cuối cùng có các tham số khác nhau đáng kể so với các mô hình thay thế xác thực chéo, thì đó là một triệu chứng của giả định 1 bị vi phạm. Vì vậy, IMHO, một lần nữa chúng tôi không có xung đột mà chỉ kiểm tra xem các giả định (ngầm) của chúng tôi có hợp lý hay không. Và nếu họ không, dù sao chúng ta cũng không nên đặt cược quá nhiều vào việc ước tính tốt hiệu suất của mô hình cuối cùng đó.


Tôi có ấn tượng (cũng từ việc nhìn thấy số lượng câu hỏi / nhầm lẫn tương tự ở đây trên CV) mà nhiều người nghĩ về xác thực chéo lồng nhau khi thực hiện phương pháp 1. Nhưng lỗi tổng quát hóa thường được ước tính theo cách tiếp cận 2, vì vậy đó là cách để giải quyết mô hình cuối cùng là tốt.


Ví dụ Iris

Tóm tắt: Việc tối ưu hóa về cơ bản là vô nghĩa. Cỡ mẫu có sẵn không cho phép phân biệt giữa hiệu suất của bất kỳ bộ tham số nào ở đây.

Tuy nhiên, từ quan điểm ứng dụng, kết luận là không có vấn đề gì trong số 4 bộ tham số bạn chọn - đó không phải là tất cả những tin xấu: bạn đã tìm thấy một thông số tương đối ổn định. Ở đây có lợi thế của việc xác thực hợp lệ của mô hình được điều chỉnh: trong khi bạn không thể khẳng định rằng đó là mô hình tối ưu, bạn vẫn có thể khẳng định rằng mô hình được xây dựng trên toàn bộ dữ liệu bằng cách sử dụng phương pháp 2 sẽ có độ chính xác khoảng 97% (khoảng tin cậy 95% cho 145 chính xác trong số 150 trường hợp thử nghiệm: 92 - 99%)

Lưu ý rằng cách tiếp cận 1 cũng không quá xa - xem bên dưới: tối ưu hóa của bạn vô tình bỏ lỡ một "người chiến thắng" tương đối rõ ràng vì các mối quan hệ (đó thực sự là một triệu chứng rất rõ ràng khác của vấn đề kích thước mẫu).

Mặc dù tôi không đủ sâu vào các SVM để "thấy" rằng C = 1 nên là một lựa chọn tốt ở đây, tôi sẽ đi với hạt nhân tuyến tính hạn chế hơn. Ngoài ra, như bạn đã thực hiện tối ưu hóa, không có gì sai khi chọn bộ tham số chiến thắng ngay cả khi bạn biết rằng tất cả các bộ tham số đều dẫn đến hiệu suất thực tế bằng nhau.

Tuy nhiên, trong tương lai, hãy xem xét liệu trải nghiệm của bạn có mang lại những dự đoán sơ bộ về hiệu suất mà bạn có thể mong đợi hay không và mô hình nào sẽ là một lựa chọn tốt. Sau đó, xây dựng mô hình đó (với các siêu đường kính cố định thủ công) và tính toán khoảng tin cậy cho hiệu suất của nó. Sử dụng điều này để quyết định xem cố gắng tối ưu hóa có hợp lý hay không. (Tôi có thể thêm rằng tôi chủ yếu làm việc với dữ liệu trong đó việc có thêm 10 trường hợp độc lập là không dễ dàng - nếu bạn ở trong một lĩnh vực có kích thước mẫu độc lập lớn, mọi thứ sẽ tốt hơn cho bạn)

phiên bản dài:

Đối với các kết quả ví dụ trên tập irisdữ liệu. iriscó 150 trường hợp, SVM với lưới 2 x 2 tham số (2 hạt nhân, 2 bậc độ lớn cho hình phạt C) được xem xét.

Vòng lặp bên trong có các phần tách 129 (2x) và 132 (6x). Bộ tham số "tốt nhất" không được quyết định giữa hạt nhân tuyến tính hoặc rbf, cả hai đều có C = 1. Tuy nhiên, độ chính xác kiểm tra bên trong là tất cả (bao gồm luôn mất C = 10) trong độ chính xác quan sát 94 - 98,5%. Sự khác biệt lớn nhất mà chúng tôi có ở một trong các phần tách là 3 so với 8 lỗi đối với rbf với C = 1 so với 10.

Không có cách nào đây là một sự khác biệt đáng kể. Tôi không biết cách trích xuất dự đoán cho các trường hợp riêng lẻ trong CV, nhưng thậm chí giả sử rằng 3 lỗi đã được chia sẻ và mô hình C = 10 đã tạo thêm 5 lỗi:

> table (rbf1, rbf10)
         rbf10
rbf1      correct wrong
  correct     124     5
  wrong         0     3

> mcnemar.exact(rbf1, rbf10)

    Exact McNemar test (with central confidence intervals)

data:  rbf1 and rbf10
b = 5, c = 0, p-value = 0.0625
alternative hypothesis: true odds ratio is not equal to 1

Hãy nhớ rằng có 6 so sánh cặp trong lưới 2 x 2, vì vậy chúng tôi cũng cần sửa cho nhiều so sánh.


Cách tiếp cận 1

Trong 3 trong 4 lần phân tách bên ngoài trong đó rbf "won" so với kernel tuyến tính, chúng thực sự có cùng độ chính xác ước tính (tôi đoán min trong trường hợp các mối quan hệ trả về chỉ số phù hợp đầu tiên).

Thay đổi lưới thành params = {'kernel':['linear', 'rbf'],'C':[1,10]} năng suất

({'kernel': 'linear', 'C': 1}, 0.95238095238095233, 0.97674418604651159)
({'kernel': 'rbf', 'C': 1}, 0.95238095238095233, 0.98449612403100772)
({'kernel': 'linear', 'C': 1}, 1.0, 0.97727272727272729)
({'kernel': 'linear', 'C': 1}, 0.94444444444444442, 0.98484848484848486)
({'kernel': 'linear', 'C': 1}, 0.94444444444444442, 0.98484848484848486)
({'kernel': 'linear', 'C': 1}, 1.0, 0.98484848484848486)
({'kernel': 'linear', 'C': 1}, 1.0, 0.96212121212121215)

Cách tiếp cận 2:

Đây clflà mô hình cuối cùng của bạn. Với random_state = 2, rbf với C = 1 thắng:

In [310]: clf.grid_scores_
[...snip warning...]
Out[310]: 
[mean: 0.97333, std: 0.00897, params: {'kernel': 'linear', 'C': 1},
 mean: 0.98000, std: 0.02773, params: {'kernel': 'rbf', 'C': 1},
 mean: 0.96000, std: 0.03202, params: {'kernel': 'linear', 'C': 10},
 mean: 0.95333, std: 0.01791, params: {'kernel': 'rbf', 'C': 10}]

(xảy ra khoảng 1 trong 5 lần, 1 trong 6 lần linearrbfC = 1được gắn vào thứ hạng 1)


4
Cảm ơn @cbeleites! Tôi cũng đọc câu trả lời của bạn trong các chủ đề khác và tôi hy vọng bạn sẽ trả lời câu hỏi của tôi. Câu trả lời của bạn rất sâu sắc nhưng điều mà câu hỏi của tôi thực sự tập trung vào là làm thế nào để phân tích kết quả của một CV lồng nhau; Tôi vẫn chưa rõ một chút về "phải làm gì sau khi tôi làm CV". Bạn có thể xem cuốn sổ mà tôi đã tạo (gần cuối bài viết của tôi) và theo thuật ngữ của giáo dân giải thích phải làm gì vì hai bộ siêu đường kính khác nhau đã được xác định là tối ưu trong CV lồng nhau? Đó là một cuốn sổ rất ngắn, tôi hứa đấy!
Hít thở mạnh vào

@HeavyBreat Breath Tôi đã đọc câu trả lời, và tôi vẫn chưa rõ về 'phải làm gì sau khi tôi làm CV'. Bạn đã tìm ra rõ ràng?
stackunderflow

0

Tôi đã đọc câu hỏi của bạn và câu trả lời trên 2 lần (lần đầu tiên 3 tháng trước). Tôi quan tâm và cũng muốn tìm cách thích hợp tuyệt đối để xác thực chéo cho dữ liệu của mình. Sau rất nhiều suy nghĩ và đọc, dường như tôi tìm thấy những lỗ hổng và đây là cách khắc phục của tôi:

Để giải thích sự nhầm lẫn của tôi, hãy để tôi thử đi qua lựa chọn mô hình với phương pháp xác thực chéo được lồng từng bước.

  1. Tạo một vòng CV bên ngoài với K-Fold. Điều này sẽ được sử dụng để ước tính hiệu suất của các tham số siêu "thắng" mỗi vòng CV bên trong.
  2. Sử dụng GridSearchCV để tạo một vòng CV bên trong trong đó trong mỗi vòng lặp bên trong, GSCV đi qua tất cả các kết hợp có thể có của không gian tham số và đưa ra bộ thông số tốt nhất. (Lưu ý: ở đây tôi giả định: Dữ liệu cho vòng lặp bên trong = đào tạo dữ liệu cho vòng ngoài Bạn có thể đặt câu hỏi:. Tại sao trả lời:? Https://stackoverflow.com/questions/42228735/scikit-learn-gridsearchcv-with-multiple-repetitions/ 42230764 # 42230764 đọc phần trả lời của Vivek Kumar bước 4)
  3. Sau khi GSCV tìm thấy "tham số tốt nhất" trong vòng lặp bên trong (hãy gọi nó là người chiến thắng bên trong), nó được kiểm tra với bộ kiểm tra ở vòng lặp bên ngoài để có được ước tính về hiệu suất (hãy gọi nó là outs_print_score1).
  4. Vòng lặp bên ngoài sau đó cập nhật vào nếp gấp tiếp theo là tập kiểm tra và phần còn lại là tập huấn luyện (để đánh giá "người chiến thắng bên trong" ở vòng ngoài), "người chiến thắng bên trong" được kiểm tra lại với tập kiểm tra mới (outs_ Fold_score2). Sau đó, một lần nữa các vòng lặp bên ngoài cập nhật cho lần tiếp theo cho đến khi vòng lặp được hoàn thành. Điểm số từ mỗi lần gấp (outs_print_score 1,2 ..) sẽ ở mức trung bình để có được điểm số của "người chiến thắng bên trong" cho vòng lặp bên ngoài (outs_score)
  5. Vòng lặp bên ngoài sau đó cập nhật vào lần tiếp theo dưới dạng tập kiểm tra và phần còn lại là tập huấn luyện (để tìm "người chiến thắng bên trong" tiếp theo và lặp lại 1- 4 (lưu ý rằng khi lặp lại 1, chúng ta không tạo K- mới gấp nhưng chúng tôi sử dụng cùng một Kprint bên ngoài mỗi lần) . Với mỗi chu kỳ 1-4, chúng tôi nhận được một "tham số tốt nhất" (hoặc "người chiến thắng bên trong") với một bên ngoài_score. Người có vòng ngoài tốt nhất sẽ là người chiến thắng người chiến thắng

Lý do:

  • Về cơ bản câu hỏi của bạn quan tâm rằng có nhiều "tham số chiến thắng" cho vòng lặp bên ngoài. Vấn đề là bạn đã không hoàn thành vòng lặp bên ngoài để đánh giá và tìm ra "người chiến thắng bên ngoài". Bước 4 của bạn chỉ đánh giá "người chiến thắng bên trong" trong 1 lần ở vòng ngoài, nhưng bạn không "lặp lại". Do đó, tôi cần thay thế nó bằng bước thứ 4 của mình - "lặp" bước đánh giá ở vòng ngoài và lấy điểm ngoài (bằng cách tính trung bình)
  • Bước thứ 5 của bạn đã thực hiện công việc "lặp" ở vòng ngoài, nhưng đó chỉ là để xây dựng một "người chiến thắng bên trong" khác. Nó không lặp lại "đánh giá" của "người chiến thắng bên trong" này ở vòng ngoài

Điều này thực sự trả lời câu hỏi?
Michael R. Chernick

0


D thiết lập các biến đổi tiền xử lý, các tính năng và cuối cùng là các giá trị siêu tham số.

X,y
xXy

X',y'X,y

tất cả các dữ liệu để chọn các tính năng để sử dụng. Do đó, ngay cả khi bạn thực hiện xác thực chéo trong bước 2, các tính năng sẽ đã thấy và ghi nhớ một số thông tin có trong lần kiểm tra mỗi lần chạy xác thực chéo. Kết quả sẽ là một ước tính quá lạc quan về lỗi kiểm tra và điều này được gọi là sai lệch lựa chọn tính năng . Để tính toán điều này trong ước tính của bạn, bạn sẽ cần đặt bước chọn tính năng bên trong vòng xác thực chéo của bước 2.
Ok, bây giờ chúng ta có tốt không? Là lỗi tốt nhất được tìm thấy trong xác thực chéo với bước chọn tính năng trong vòng lặp có phải là ước tính hợp lý của lỗi tổng quát hóa không?
Về lý thuyết, câu trả lời vẫn là không, vấn đề là các tham số siêu của bạn đã được chọn để giảm thiểu lỗi xác thực chéo trên tập dữ liệu cụ thể theo ý của bạn, do đó, theo một nghĩa nào đó, bạn đang điều chỉnh các tham số siêu tốc với dữ liệu của mình với rủi ro khớp quá mức và điều này được gọi là xu hướng lựa chọn mô hình . Nhưng đây có phải là một mối quan tâm trong thực tế? Nó phụ thuộc vào ứng dụng cụ thể: nó có khả năng trở nên nghiêm trọng hơn, vì quá mức trong đào tạo, khi tập dữ liệu nhỏ và số lượng tham số siêu được điều chỉnh là tương đối lớn. Để tính toán điều này khi ước tính lỗi tổng quát hóa, bạn sẽ áp dụng xác thực chéo lồng nhau như bạn đã mô tả, sau đó sẽ cung cấp cho bạn ước tính chính xác về lỗi tổng quát hóa của bạn.
Cuối cùng để trả lời câu hỏi cuối cùng của bạn, sau khi có ước tính hợp lý về quy trình xây dựng mô hình mô hình lỗi của bạn với lỗi xác thực chéo lồng nhau, bạn chỉ cần áp dụng quy trình (bước 1 + 2) cho toàn bộ tập dữ liệu của bạn để có được một mô hình với một bộ cố định về tính năng và đặt các giá trị siêu tham số, nhưng hãy nhớ rằng lỗi mà chúng tôi mong đợi mô hình này có trên dữ liệu chưa xem là ước tính xác thực chéo lồng nhau .

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.