Là trạng thái ngẫu nhiên một tham số để điều chỉnh?


9

Một vấn đề xảy ra khá thường xuyên trong các thí nghiệm của tôi là mô hình thay đổi về hiệu suất khi thay đổi trạng thái ngẫu nhiên cho thuật toán. Vì vậy, câu hỏi rất đơn giản, tôi có nên lấy trạng thái ngẫu nhiên làm siêu tham số không? Tại sao vậy? Nếu mô hình của tôi vượt trội so với các mô hình khác với trạng thái ngẫu nhiên khác nhau, tôi có nên xem mô hình đó quá phù hợp với một trạng thái ngẫu nhiên cụ thể không?

một bản ghi của cây quyết định trong sklearn: (Random_rate phải là trạng thái ngẫu nhiên) một bản ghi của cây quyết định trong sklearn


Với sức mạnh tính toán hiện đại, có thể xác định một hạt giống cung cấp kết quả cạnh trường hợp. Giả sử bạn là nhà nghiên cứu và bạn đã thực hiện một thử nghiệm, nhưng kết quả của bạn không diễn ra theo cách bạn muốn. Sẽ rất dễ dàng để chạy thử nghiệm của bạn trên hàng triệu hạt giống để xem những hạt giống nào kể câu chuyện mà bạn đang tìm kiếm. Tốt nhất để có một hạt giống cố định mà bạn luôn sử dụng. Giữ cho bạn trung thực!
Brandon Bertelsen

Câu trả lời:


5

Không, bạn không nên.

Siêu đường kính là các biến kiểm soát một số khía cạnh cấp cao của hành vi của thuật toán. Trái ngược với các tham số thông thường, siêu đường kính không thể tự động học được từ dữ liệu huấn luyện bằng chính thuật toán. Vì lý do này, người dùng có kinh nghiệm sẽ chọn một giá trị phù hợp dựa trên trực giác, kiến ​​thức tên miền và ý nghĩa ngữ nghĩa của siêu tham số (nếu có). Ngoài ra, người ta có thể sử dụng một bộ xác nhận để thực hiện lựa chọn siêu tham số. Ở đây, chúng tôi cố gắng tìm một giá trị siêu tham số tối ưu cho toàn bộ dân số dữ liệu bằng cách kiểm tra các giá trị ứng cử viên khác nhau trên một mẫu của dân số (bộ xác thực).

Về trạng thái ngẫu nhiên, nó được sử dụng trong nhiều thuật toán ngẫu nhiên trong sklearn để xác định hạt ngẫu nhiên được truyền cho bộ tạo số giả ngẫu nhiên. Do đó, nó không làm đảo lộn bất kỳ khía cạnh nào trong hành vi của thuật toán. Là một phụ tùng, các giá trị trạng thái ngẫu nhiên hoạt động tốt trong bộ xác thực không tương ứng với các giá trị sẽ hoạt động tốt trong một bộ thử nghiệm mới, chưa thấy. Thật vậy, tùy thuộc vào thuật toán, bạn có thể thấy các kết quả hoàn toàn khác nhau bằng cách thay đổi thứ tự các mẫu đào tạo.

Tôi đề nghị bạn chọn một giá trị trạng thái ngẫu nhiên ngẫu nhiên và sử dụng nó cho tất cả các thử nghiệm của bạn. Ngoài ra, bạn có thể lấy độ chính xác trung bình của các mô hình của mình qua một tập hợp các trạng thái ngẫu nhiên ngẫu nhiên.

Trong mọi trường hợp, đừng cố gắng tối ưu hóa các trạng thái ngẫu nhiên, điều này chắc chắn sẽ tạo ra các biện pháp hiệu suất thiên vị lạc quan.


0

Hiệu ứng Random_state là gì? đào tạo và xác nhận bộ tách, hoặc những gì?

Nếu đó là trường hợp đầu tiên, tôi nghĩ bạn có thể cố gắng tìm sự khác biệt giữa sơ đồ chia tách theo hai trạng thái ngẫu nhiên và điều này có thể cung cấp cho bạn một số trực giác trong mô hình của bạn (ý tôi là, bạn có thể khám phá lý do tại sao nó hoạt động để đào tạo mô hình trên một số dữ liệu, và sử dụng mô hình được đào tạo để dự đoán một số dữ liệu xác nhận, nhưng không hoạt động để đào tạo mô hình trên một số dữ liệu khác và dự đoán một số dữ liệu xác thực khác. Chúng có được phân phối khác nhau không?) Phân tích như vậy có thể cho bạn một số trực giác.

Và nhân tiện, tôi cũng gặp phải vấn đề này :) và không hiểu nó. Có lẽ chúng ta có thể làm việc cùng nhau để điều tra nó.

Chúc mừng.


1
Tôi không hiểu câu hỏi và tôi không hiểu câu trả lời này.
Michael R. Chernick

Câu hỏi này, việc sử dụng Random_state trong trường hợp của bạn là gì? Có phải nó được sử dụng như một hạt giống để tạo số ngẫu nhiên?
Janzen LIU
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.