Cross-validation là khi bạn dành một phần dữ liệu của bạn để sử dụng trong việc đánh giá mô hình của bạn. Có các phương thức xác thực chéo khác nhau. Khái niệm đơn giản nhất là chỉ cần lấy 70% (chỉ cần tạo một số ở đây, nó không phải là 70%) dữ liệu của bạn và sử dụng dữ liệu đó cho đào tạo, và sau đó sử dụng 30% còn lại của dữ liệu để đánh giá mô hình của hiệu suất. Lý do bạn cần dữ liệu khác nhau cho đào tạo và đánh giá mô hình là để bảo vệ chống lại overfitting. Có các kỹ thuật xác nhận chéo khác (có liên quan nhiều hơn một chút), tất nhiên, giống như xác thực chéo k-fold, thường được sử dụng trong thực tế.
Tìm kiếm lưới nghĩa là bạn có một tập hợp các mô hình (khác với các giá trị tham số của chúng, nằm trên lưới). Những gì bạn làm là sau đó bạn đào tạo từng mô hình và đánh giá nó bằng cách sử dụng xác thực chéo. Sau đó bạn chọn một trong đó thực hiện tốt nhất.
Ví dụ cụ thể, nếu bạn đang sử dụng máy vectơ hỗ trợ, bạn có thể sử dụng các giá trị khác nhau cho gamma
và C
. Vì vậy, ví dụ: bạn có thể có lưới với các giá trị sau cho (gamma, C)
: (1, 1), (0.1, 1), (1, 10), (0.1, 10)
. Đó là lưới vì nó giống như một sản phẩm của [1, 0.1]
cho gamma
và [1, 10]
cho C
. Grid-search về cơ bản sẽ đào tạo SVM cho mỗi cặp trong số bốn cặp giá trị (gamma, C)
này, sau đó đánh giá nó bằng cách sử dụng xác thực chéo và chọn giá trị tốt nhất.
Nguồn
2013-10-12 20:15:21
Tôi hiểu điều đó. Nhưng trong ví dụ về scikit-learn có lần đầu tiên một sự phân chia của data_set bằng cách thực hiện 'X_train, X_test, y_train, y_test = train_test_split ( X, y, test_size = 0.5, random_state = 0' và sau đó có trong tìm kiếm lưới 'clf = GridSearchCV (SVC (C = 1), tuned_parameters, cv = 5, score = score)' do đó, điều này có nghĩa là bước đầu tiên chia cho ví dụ 1000 đào tạo đặt thành 500 tàu và 500 đối tượng thử nghiệm và sau đó tìm kiếm lưới chia tách đào tạo 500 thành "cv = 5" xác nhận chéo 5 lần? Vì vậy, 500 đối tượng được chia thành 250 và 250 hoặc 400 và 100 và cứ tiếp tục ?! – Linda
Vâng, đúng vậy. Một nửa dữ liệu được dành riêng để đánh giá ** sau ** lựa chọn mô hình tìm kiếm lưới (sử dụng xác thực chéo 5 lần). Lý do là họ không chỉ muốn chọn mô hình tốt nhất, mà còn có một ước tính tốt về mức độ tổng quát của nó (mức độ hoạt động tốt trên dữ liệu mới). Bạn không thể sử dụng điểm số từ việc xác thực chéo tìm kiếm lưới, vì bạn đã chọn mô hình có điểm cao nhất trên đó, vì vậy có thể có một số loại thiên vị lựa chọn được tích hợp vào điểm số của nó. Vì vậy, đó là lý do tại sao họ giữ một phần dữ liệu để kiểm tra sau khi tìm kiếm lưới kết thúc. –