Là điều chỉnh siêu tham số trên mẫu của tập dữ liệu là một ý tưởng tồi?


19

Tôi có bộ dữ liệu gồm 140000 ví dụ và 30 tính năng mà tôi đang đào tạo một số phân loại để phân loại nhị phân (SVM, Hồi quy logistic, Rừng ngẫu nhiên, v.v.)

Trong nhiều trường hợp, việc điều chỉnh siêu tham số trên toàn bộ tập dữ liệu bằng cách sử dụng Tìm kiếm lưới hoặc Ngẫu nhiên là quá tốn thời gian.

Tôi bắt đầu sử dụng kỹ thuật sau

  • Mẫu phụ dữ liệu của tôi
  • Sử dụng phân số thu được để điều chỉnh các siêu đường kính trên
  • Sử dụng các tham số thu được để huấn luyện một mô hình bằng cách sử dụng toàn bộ dữ liệu

Để đánh giá từng bộ thông số ở bước thứ hai, tôi sử dụng sklearn's GridSearchCVvới cv = 10. Để đánh giá mô hình cuối cùng mà tôi có thể tạo trong bước thứ ba tôi sử dụng sklearn's cross_val_predict. Theo nghĩa đó, tôi đánh giá các mô hình của mình để lại 10% phần trăm dữ liệu, tôi huấn luyện phần còn lại và đo lường độ chính xác dự đoán trên 10%, lặp lại 10 lần, sau đó lấy điểm trung bình.

Điều khiến tôi lo lắng là độ chính xác dự đoán mà tôi có được từ việc đào tạo trên toàn bộ tập dữ liệu của mình, thực sự gần với đánh giá tôi nhận được khi điều chỉnh các tham số cho bộ thông số tốt nhất (mỗi bộ tham số được kiểm tra đưa ra điểm số đạt được từ trung bình 10- kết quả xác nhận chéo chéo).

Hầu hết các lần độ chính xác cross_val_predictđược đo bằng cách sử dụng tất cả các ví dụ đào tạo (toàn bộ dữ liệu) cao hơn một chút so với đánh giá của các tham số tốt nhất được trả về.

Để minh họa điều này ở đây là việc đánh giá một tập hợp các tham số (trên một tập dữ liệu nhỏ hơn so với những gì tôi đã mô tả ở trên nhưng hiệu quả là như nhau)

Best parameters set found on development set:
{'kernel': 'rbf', 'C': 9, 'gamma': 0.1}
Scores for all sets of parameters
0.851 (+/-0.006) for {'kernel': 'rbf', 'C': 3, 'gamma': 0.5}
0.852 (+/-0.006) for {'kernel': 'rbf', 'C': 3, 'gamma': 0.1}
0.829 (+/-0.006) for {'kernel': 'rbf', 'C': 3, 'gamma': 0.001}
0.853 (+/-0.006) for {'kernel': 'rbf', 'C': 9, 'gamma': 0.1}
...

Và đây là điểm trung bình (từ cross_val_predict) tôi có được từ việc đào tạo trên toàn bộ tập dữ liệu của mình bằng các tham số tốt nhất

precision    recall  f1-score   support

      0       0.86      0.85      0.86     15417
      1       0.86      0.87      0.87     16561

avg / total       0.86      0.86      0.86     31978

acc score: 0.863750078179
roc au score: 0.863370490059
[[13147  2270]
 [ 2087 14474]]

Như bạn có thể thấy đào tạo trên toàn bộ dữ liệu cải thiện kết quả. Tôi cũng đã xác nhận rằng mô hình được điều chỉnh kém (ví dụ: sử dụng các giá trị mặc định hoặc giá trị ngẫu nhiên cho Cgamma) dẫn đến độ chính xác dự đoán tồi tệ hơn nhiều.

Nhìn chung, tôi nghĩ rằng việc điều chỉnh các siêu âm trên một tập hợp con là không lý tưởng nhưng có khả năng dẫn đến kết quả tương đối tốt mà không phải chờ quá lâu. Tôi lấy ví dụ trước khi sử dụng phương pháp đó đã sử dụng optunitygói để điều chỉnh siêu tham số trên toàn bộ tập dữ liệu. Quy trình này sẽ mất 3-5 ngày để hoàn thành và sẽ tạo ra kết quả có độ chính xác thực sự tốt hoặc thu hồi thực sự tốt nhưng không phải cả hai, vì vậy mặc dù đối với mỗi lớp, độ chính xác hoặc độ thu hồi thực sự cao (cao hơn bất kỳ loại nào khác của tôi phân loại đã đạt được) bệnh sởi F1 rất thấp. Ngược lại, sử dụng cách tiếp cận sau này dẫn đến một số giờ đào tạo và bệnh sởi F1 tốt hơn.

Mối quan tâm của tôi là:

Tôi có giới hạn độ chính xác phân loại của tôi? Tôi có tránh sử dụng tất cả sức mạnh dự đoán mà tập dữ liệu của tôi có thể cung cấp bằng cách chỉ điều chỉnh trên một tập hợp con không? Nếu một tác hại như vậy của hiệu suất đang xảy ra thì có phải do một số yếu tố bị hạn chế?


Hãy làm rõ hai phương pháp dẫn đến độ chính xác dự đoán gần. Bạn có phân chia dữ liệu thành tập huấn luyện và tập xác thực, trong đó tập xác thực chỉ được sử dụng để tối ưu hóa các tham số siêu tốc chứ không phải cho đào tạo?
Iliyan Bobev

Xem câu hỏi cập nhật của tôi. Tôi hy vọng nó rõ ràng hơn bây giờ.
LetsPlayYahtzee

Câu trả lời:


15

Ngoài câu trả lời của Jim (+1): Đối với một số phân loại, các giá trị siêu tham số phụ thuộc vào số lượng ví dụ đào tạo, ví dụ cho một SVM tuyến tính, vấn đề tối ưu hóa nguyên thủy là

min12w2+Ci=1ξi

tùy thuộc vào

yi(xiwb)1ξi,andξi0i

Lưu ý rằng vấn đề tối ưu hóa về cơ bản là thước đo của thuật ngữ không phù hợp dữ liệu (tổng của ) và thuật ngữ chính quy, nhưng tham số regrularisation thông thường được đặt với thuật ngữ sai dữ liệu. Rõ ràng số lượng mô hình đào tạo chúng ta có càng nhiều, tổng sẽ càng lớn và nhỏ hơn phải duy trì sự cân bằng như nhau với độ lớn của trọng số. CξiC

Một số triển khai của SVM reparameterise như

min12w2+Ci=1ξi

để bù đắp, nhưng một số thì không. Vì vậy, một điểm bổ sung cần xem xét là liệu các siêu tham số tối ưu có phụ thuộc vào số lượng ví dụ đào tạo hay không.

Tôi đồng ý với Jim rằng việc vượt quá tiêu chí lựa chọn mô hình có thể là vấn đề nhiều hơn, nhưng nếu bạn có đủ dữ liệu ngay cả trong mẫu phụ thì đây có thể không phải là vấn đề đáng kể.


11

Là điều chỉnh siêu tham số trên mẫu của tập dữ liệu là một ý tưởng tồi?

Trả lời: Có, bởi vì bạn có nguy cơ quá mức (siêu đường kính) trên tập kiểm tra cụ thể đó do kết quả của bài kiểm tra đào tạo đã chọn.

Tôi có giới hạn độ chính xác phân loại của tôi?

Trả lời: Có, nhưng trí tuệ học máy phổ biến là: với các siêu âm tối ưu của bạn, giả sử , chỉnh lại (các) mô hình của bạn trên toàn bộ tập dữ liệu và biến mô hình đó thành mô hình cuối cùng của bạn cho các trường hợp mới, chưa thấy, trong tương lai.λ

Tôi có tránh sử dụng tất cả sức mạnh dự đoán mà tập dữ liệu của tôi có thể cung cấp bằng cách chỉ điều chỉnh trên một tập hợp con không?

A: xem câu trả lời trước.

Nếu một tác hại như vậy của hiệu suất đang xảy ra thì có phải do một số yếu tố bị hạn chế?

A: idem.

Tôi đo độ chính xác của mình bằng cách sử dụng chéo 10 lần khi tôi sử dụng để đánh giá các tham số

A: Lưu ý rằng điều này khác với những gì được hỏi trong tiêu đề. CV gấp 10 lần lặp lại trên 10 lần phân tách thử nghiệm để đi đến ước tính "không thiên vị" (ít sai lệch) về tính tổng quát (được đo trong trường hợp này là chính xác). CV gấp 10 lần giải quyết chính xác vấn đề tôi nói trong câu trả lời đầu tiên.

độ chính xác dự đoán mà tôi có được từ việc đào tạo trên toàn bộ dữ liệu của mình

Trả lời: đây là một biện pháp "trong mẫu" thể sai lệch lạc quan. Nhưng đừng quên rằng bạn có nhiều trường hợp và tương đối ít tính năng, do đó sự thiên vị lạc quan này có thể không phải là vấn đề. Máy học nugget: "trình chuẩn hóa tốt nhất là nhiều dữ liệu hơn."

[cont'd], luôn thực sự gần với đánh giá tôi nhận được khi điều chỉnh các tham số cho bộ thông số tốt nhất.

A: xem câu trả lời trước. Nhìn vào các biểu đồ siêu tham số: điều chỉnh giảm lỗi và bao nhiêu? Từ những gì bạn đang nói, điều chỉnh không làm được gì nhiều.

Bạn có thể kiểm tra điều này như sau. Hãy phân chia 70% -30% thử nghiệm tàu. So sánh hiệu suất dự đoán của:

  1. một mô hình chưa được đào tạo trên bộ xe lửa,
  2. một mô hình điều chỉnh 10 lần CV được đào tạo trên bộ xe lửa.

Hãy để cả hai mô hình dự đoán bộ thử nghiệm. Nếu hiệu suất rất gần, thì điều chỉnh sẽ không làm được gì nhiều. Nếu hiệu suất là khác nhau trong mô hình điều chỉnh, sau đó tiếp tục với phương pháp điều chỉnh.


1

Tôi sẽ trả lời cho các mạng thần kinh nhân tạo (ANN).

Các siêu đường kính của ANN có thể xác định quá trình học tập của nó (ví dụ: tốc độ học tập hoặc kích thước lô nhỏ) hoặc kiến ​​trúc của nó (ví dụ: số lượng đơn vị hoặc lớp ẩn).

Điều chỉnh siêu âm kiến ​​trúc trên một tập hợp con của tập huấn luyện của bạn có lẽ không phải là ý hay (trừ khi tập huấn luyện của bạn thực sự thiếu tính đa dạng, tức là tăng kích thước tập huấn luyện không làm tăng hiệu suất ANN), vì siêu âm kiến ​​trúc thay đổi công suất của ANN.

Tôi sẽ ít quan tâm hơn đến việc điều chỉnh các siêu đường kính xác định quá trình học tập trên một tập hợp con của tập huấn luyện của bạn, nhưng tôi đoán người ta nên xác nhận nó theo kinh nghiệm.



0

Bạn có thể sử dụng các thuật toán tối ưu hóa siêu tham số hỗ trợ các đánh giá đa mức, nghĩa là các đánh giá trên các tập hợp con của dữ liệu của bạn để có được ước tính sơ bộ nhưng hữu ích về các giá trị siêu tham số tối ưu cho toàn bộ tập dữ liệu. Cách tiếp cận như vậy thường cho phép giảm tổng chi phí tính toán cần thiết để chạy tối ưu hóa siêu tham số.


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.