Sự khác biệt giữa xác thực chéo và bootstrapping là gì?

Vì vậy, những gì bạn đang nói là, việc sử dụng kỹ thuật nào là tùy thuộc vào tôi/những người khác, vì tất cả chúng đều khá tốt. Nhưng điều duy nhất cần được nhấn mạnh là tất cả các bước phân tích phải được thực hiện lại cho tất cả các mẫu tái khởi động?

Nhưng có điều tôi không hiểu lắm là khi khởi động, bạn tạo một mẫu khởi động mới có thay thế, phát triển một mô hình mới có thể nói như vậy và sau đó sử dụng mẫu đó trên mẫu khởi động ban đầu (ít nhất đó là cách tôi hiểu). Điều đó không đưa ra một số loại sai lệch vì bạn thực sự đang phát triển mô hình của mình trên dữ liệu ở một mức độ nào đó cũng có trong mẫu khởi động ban đầu?

Sau khi đào tạo một mô hình học máy, mọi nhà khoa học dữ liệu luôn muốn biết mô hình được đào tạo sẽ hoạt động tốt như thế nào trên dữ liệu chưa nhìn thấy. Một mô hình tốt là một mô hình thực hiện tốt không chỉ dữ liệu huấn luyện mà cả dữ liệu kiểm tra. Để ước tính hiệu suất của mô hình, chúng tôi thường sử dụng một phần dữ liệu để huấn luyện và giữ lại một số dữ liệu để thử nghiệm với hy vọng rằng hiệu suất của mô hình trên dữ liệu thử nghiệm là đại diện cho dữ liệu trong vũ trụ

Sau đây là một ví dụ về một vấn đề phân loại đơn giản. Trong ví dụ này, bộ dữ liệu Iris được tải từ mô-đun Sklearn và mô hình Hồi quy logistic phù hợp với dữ liệu. Dữ liệu chứa các bản ghi 15060% được sử dụng để đào tạo và 40% để kiểm tra

đầu ra

Model 0 accuracy: 0.967
Model 1 accuracy: 0.967
Model 2 accuracy: 0.933
Model 3 accuracy: 0.967
Model 4 accuracy: 0.933
Model 5 accuracy: 0.933
Model 6 accuracy: 0.85
Model 7 accuracy: 0.95
Model 8 accuracy: 1.0
Model 9 accuracy: 0.95

Line 1–15: Trong những dòng này, dữ liệu được tải và các mô-đun được nhập

Line 17: Đây là một mô hình logistic phù hợp với cùng một dữ liệu ở mỗi lần lặp. Điều quan trọng cần lưu ý là mô hình hoạt động khác nhau ở mỗi lần lặp lại (Xem điểm của mô hình ở trên). Lưu ý rằng sự khác biệt không được quy cho bất kỳ thay đổi tham số nào trong quá trình lặp lại vì các tham số giống nhau được sử dụng cho tất cả các mô hình. Nguồn gốc của sự khác biệt là do chia tách dữ liệu. train_test_split chia dữ liệu thành 2 nhưng ở mỗi lần lặp lại, dữ liệu khác nhau được sử dụng để huấn luyện và kiểm tra do xáo trộn mà không gieo hạt. Nếu bạn muốn có một kết quả nhất quán ở mỗi lần lặp, hãy chuyển một giá trị gốc cho tham số random _state của sklearn. model_selection. tàu_test_split. Bạn có thể viết lại dòng

train: [ 2  3  4  5  6  7  8 11 12], test: [1  9 10]
train: [ 1 3 5 6 7 9 10 11 12], test: [2 4 8]
train: [ 1 2 4 5 8 9 10 11 12], test: [3 6 7]
train: [ 1 2 3 4 6 7 8 9 10], test: [5 11 12]
0 như sau

train: [ 2  3  4  5  6  7  8 11 12], test: [1  9 10]
train: [ 1 3 5 6 7 9 10 11 12], test: [2 4 8]
train: [ 1 2 4 5 8 9 10 11 12], test: [3 6 7]
train: [ 1 2 3 4 6 7 8 9 10], test: [5 11 12]
1

Điều này cho phép các kết quả của mô hình có thể tái sản xuất, nghĩa là nhất quán. Điều này là do xáo trộn trong quá trình chia nhỏ được tạo thành và do đó dữ liệu được sử dụng để đào tạo và kiểm tra nhất quán trong tất cả các lần lặp lại

Quy trình xác thực cổ điển liên quan đến việc thực hiện chính xác những việc đã thực hiện trong ví dụ trên — chia dữ liệu thành hai bộ. tập huấn luyện và kiểm tra - nhưng một lần chạy trên điểm mô hình có thể không kết luận được mô hình có thể hoạt động như thế nào trong quá trình sản xuất. Vì lý do này, chúng tôi cần một cách xác thực tốt hơn. Đây chính xác là nơi xác thực chéo xuất hiện

xác thực chéo

Xác thực chéo là một kỹ thuật được sử dụng để xác thực mô hình học máy và ước tính hiệu suất của mô hình được đào tạo trên dữ liệu không nhìn thấy được. Nó tốt hơn đánh giá cổ điển như bạn sẽ thấy trong phần thảo luận sau

Thủ tục xác thực chéo

  1. [Tùy chọn] xáo trộn dữ liệu
  2. Chia dữ liệu thành _______1_______2 nhóm/nếp gấp riêng biệt có kích thước bằng nhau (hoặc đại khái) (vì lý do này, xác thực chéo còn được gọi là xác thực chéo k-fold)
  3. Chạy qua _______1_______2 lần lặp lại đào tạo và xác nhận mô hình. Cho
    train: [ 2  3  4  5  6  7  8 11 12], test: [1  9 10]
    train: [ 1 3 5 6 7 9 10 11 12], test: [2 4 8]
    train: [ 1 2 4 5 8 9 10 11 12], test: [3 6 7]
    train: [ 1 2 3 4 6 7 8 9 10], test: [5 11 12]
    4 trong
    train: [ 2  3  4  5  6  7  8 11 12], test: [1  9 10]
    train: [ 1 3 5 6 7 9 10 11 12], test: [2 4 8]
    train: [ 1 2 4 5 8 9 10 11 12], test: [3 6 7]
    train: [ 1 2 3 4 6 7 8 9 10], test: [5 11 12]
    5

✓ Trong số

train: [ 2  3  4  5  6  7  8 11 12], test: [1  9 10]
train: [ 1 3 5 6 7 9 10 11 12], test: [2 4 8]
train: [ 1 2 4 5 8 9 10 11 12], test: [3 6 7]
train: [ 1 2 3 4 6 7 8 9 10], test: [5 11 12]
2 lần, một lần duy nhất (_______1_______thư mục thứ 4) được sử dụng làm dữ liệu giữ lại/xác thực và các lần tách
train: [ 2  3  4  5  6  7  8 11 12], test: [1  9 10]
train: [ 1 3 5 6 7 9 10 11 12], test: [2 4 8]
train: [ 1 2 4 5 8 9 10 11 12], test: [3 6 7]
train: [ 1 2 3 4 6 7 8 9 10], test: [5 11 12]
8 khác được sử dụng để huấn luyện mô hình

✓ Sau khi mô hình được xác thực, hãy giữ lại điểm của mô hình,

train: [ 2  3  4  5  6  7  8 11 12], test: [1  9 10]
train: [ 1 3 5 6 7 9 10 11 12], test: [2 4 8]
train: [ 1 2 4 5 8 9 10 11 12], test: [3 6 7]
train: [ 1 2 3 4 6 7 8 9 10], test: [5 11 12]
9

4. Tổng hợp các điểm đạt được trong (1500 điểm hai) để có được hiệu suất trung bình của mô hình cho tất cả các lần gấp

train: [ 2  3  4  5  6  7  8 11 12], test: [1  9 10]
train: [ 1 3 5 6 7 9 10 11 12], test: [2 4 8]
train: [ 1 2 4 5 8 9 10 11 12], test: [3 6 7]
train: [ 1 2 3 4 6 7 8 9 10], test: [5 11 12]
2. Trong hầu hết các trường hợp, việc tổng hợp được thực hiện bằng cách sử dụng trung bình số học sao cho

Điểm số trung bình của mô hình ở mỗi lần lặp lại

Đối với các nhiệm vụ phân loại, mô hình có thể được chấm điểm bằng cách sử dụng các số liệu như độ chính xác, độ chính xác, khả năng thu hồi, e. t. c. và đối với các số liệu về vấn đề hồi quy như lỗi bình phương trung bình, lỗi tuyệt đối trung bình, e. t. c có thể được sử dụng để chấm điểm mô hình trong mỗi lần lặp lại

5. Phân tích điểm trung bình, 1502, để xác định khả năng nó hoạt động tốt trên dữ liệu vô hình (vũ trụ)

Một triển khai đơn giản của xác thực chéo k-fold bằng Sklearn

đầu ra

train: [ 2  3  4  5  6  7  8 11 12], test: [1  9 10]
train: [ 1 3 5 6 7 9 10 11 12], test: [2 4 8]
train: [ 1 2 4 5 8 9 10 11 12], test: [3 6 7]
train: [ 1 2 3 4 6 7 8 9 10], test: [5 11 12]

báo ảnh. Toàn bộ quy trình xác thực chéo k-fold. Trường hợp k=5, nghĩa là xác thực chéo 5 lần. Thẩm quyền giải quyết. trang web Sklearn

Dưới đây là hình ảnh động của quy trình Xác thực chéo có nguồn gốc từ Wikipedia

Minh họa xác thực chéo k-fold (trường hợp xác thực chéo 3 lần) khi n = 12 quan sát và k = 3. Sau khi dữ liệu được xáo trộn, tổng cộng 3 mô hình sẽ được đào tạo và kiểm tra. Mỗi nếp gấp sẽ chứa 12/3=4 ví dụ dữ liệu. Nguồn. Wikipedia

Sự lựa chọn của k

  • Trước hết,
    train: [ 2  3  4  5  6  7  8 11 12], test: [1  9 10]
    train: [ 1 3 5 6 7 9 10 11 12], test: [2 4 8]
    train: [ 1 2 4 5 8 9 10 11 12], test: [3 6 7]
    train: [ 1 2 3 4 6 7 8 9 10], test: [5 11 12]
    2 phải là một số nguyên giữa 21505 (số quan sát/bản ghi).
    train: [ 2  3  4  5  6  7  8 11 12], test: [1  9 10]
    train: [ 1 3 5 6 7 9 10 11 12], test: [2 4 8]
    train: [ 1 2 4 5 8 9 10 11 12], test: [3 6 7]
    train: [ 1 2 3 4 6 7 8 9 10], test: [5 11 12]
    2 phải ít nhất là 2 để đảm bảo có ít nhất hai nếp gấp
  • Đối với 1508, chúng tôi xáo trộn dữ liệu một cách ngẫu nhiên (tùy chọn) và chia thành các bộ 260%0 và 60%1 để cả hai bộ có kích thước bằng nhau (hoặc gần đúng). Sau đó, mô hình được đào tạo trên 60%0 và được xác nhận vào ngày 60%1, tiếp theo là đào tạo trên 60%1 và xác nhận trên 60%0
  • Mọi thứ có thể được đưa đến cùng cực bằng cách chọn 60%6. Trong trường hợp này, chúng tôi có một trường hợp xác thực chéo đặc biệt được gọi là Xác thực chéo bỏ qua một lần (LOOCV). Tên này bắt nguồn từ thực tế là trong mỗi lần lặp lại, một điểm dữ liệu bị bỏ qua để xác thực và 60%7 khác được sử dụng để kiểm tra
  • Trong Xác thực chéo
    train: [ 2  3  4  5  6  7  8 11 12], test: [1  9 10]
    train: [ 1 3 5 6 7 9 10 11 12], test: [2 4 8]
    train: [ 1 2 4 5 8 9 10 11 12], test: [3 6 7]
    train: [ 1 2 3 4 6 7 8 9 10], test: [5 11 12]
    2 là tham số không cố định nhưng các điểm sau cần được xem xét khi chọn
    train: [ 2  3  4  5  6  7  8 11 12], test: [1  9 10]
    train: [ 1 3 5 6 7 9 10 11 12], test: [2 4 8]
    train: [ 1 2 4 5 8 9 10 11 12], test: [3 6 7]
    train: [ 1 2 3 4 6 7 8 9 10], test: [5 11 12]
    2

✓ Suy nghiệm về tính đại diện —

train: [ 2  3  4  5  6  7  8 11 12], test: [1  9 10]
train: [ 1 3 5 6 7 9 10 11 12], test: [2 4 8]
train: [ 1 2 4 5 8 9 10 11 12], test: [3 6 7]
train: [ 1 2 3 4 6 7 8 9 10], test: [5 11 12]
2nên được chọn theo cách sao cho dữ liệu giữ/ nếp gấp đại diện cho toàn bộ (dữ liệu không nhìn thấy được). Ví dụ: nếu chúng tôi có bản ghi 40%1 và chúng tôi chọn 40%2 thì tại mỗi lần lặp lại, chỉ có ____27_______3 điểm dữ liệu được sử dụng để xác thực. Điều này làm cho kích thước xác nhận rất nhỏ. Giá trị rất lớn của
train: [ 2  3  4  5  6  7  8 11 12], test: [1  9 10]
train: [ 1 3 5 6 7 9 10 11 12], test: [2 4 8]
train: [ 1 2 4 5 8 9 10 11 12], test: [3 6 7]
train: [ 1 2 3 4 6 7 8 9 10], test: [5 11 12]
2 có nghĩa là ít phương sai hơn trong các lần huấn luyện và do đó hạn chế sự khác biệt của mô hình qua các lần lặp lại. Điều này có nghĩa là
train: [ 2  3  4  5  6  7  8 11 12], test: [1  9 10]
train: [ 1 3 5 6 7 9 10 11 12], test: [2 4 8]
train: [ 1 2 4 5 8 9 10 11 12], test: [3 6 7]
train: [ 1 2 3 4 6 7 8 9 10], test: [5 11 12]
2 không được quá lớn cũng không được quá nhỏ

✓ Quy tắc ngón tay cái — Mặc dù thực tế là

train: [ 2  3  4  5  6  7  8 11 12], test: [1  9 10]
train: [ 1 3 5 6 7 9 10 11 12], test: [2 4 8]
train: [ 1 2 4 5 8 9 10 11 12], test: [3 6 7]
train: [ 1 2 3 4 6 7 8 9 10], test: [5 11 12]
2 là tham số không cố định (không thể sử dụng công thức cụ thể nào để xác định lựa chọn tốt nhất), nhưng 40%7 thường được sử dụng vì nó đã được chứng minh bằng thực nghiệm rằng đó là một lựa chọn tốt trong hầu hết các trường hợp

  • Đưa ra 40%8 quan sát trong dữ liệu gốc, mỗi lần gấp sẽ chứa 40%9 bản ghi

Đây cũng là một hình ảnh động khác từ Wikipedia thể hiện khái niệm Xác thực chéo bỏ qua một lần

Minh họa Xác thực chéo một lần bỏ qua (LOOCV) khi n=8 quan sát. Tổng cộng có 8 mô hình được đào tạo và kiểm tra trước khi quá trình xác thực chéo hoàn tất. Mỗi lần lặp dẫn đến một mô hình được đào tạo trên n-1 điểm dữ liệu và được thử nghiệm trong 1. Nguồn. Wikipedia

Lý do sử dụng phương pháp xác thực chéo

  • Hiệu suất của mô hình trong quá trình đào tạo hoặc thậm chí trên một lần chạy trên bộ xác thực có thể không đảm bảo hiệu suất tốt nhất của mô hình trên dữ liệu không nhìn thấy. Điều này xảy ra khi dữ liệu không đủ lớn để đại diện cho trạng thái của vũ trụ. Trong trường hợp này, lỗi mô hình trên dữ liệu thử nghiệm có thể không phản ánh mô hình sẽ hoạt động như thế nào trong vũ trụ. Đây chính xác là trường hợp trong ví dụ trên - sử dụng bản ghi dữ liệu 150 để đào tạo và kiểm tra mô hình mang lại điểm số không nhất quán
  • Do đó, trong trường hợp không có bộ dữ liệu lớn, xác thực chéo là tùy chọn tốt nhất để đánh giá hiệu suất của mô hình

Tóm tắt tính năng của k-Fold Cross-validation

  • Xáo trộn (là một hoạt động tùy chọn) được thực hiện trước khi chia dữ liệu thành ______1_______2 lần. Điều này có nghĩa là một điểm dữ liệu nhất định được chỉ định vào một lần duy nhất và nó nằm trong nhóm đó trong phần còn lại của quy trình Xác thực chéo. Điều đó cũng có nghĩa là một điểm dữ liệu nhất định được sử dụng một lần để xác thực và
    train: [ 2  3  4  5  6  7  8 11 12], test: [1  9 10]
    train: [ 1 3 5 6 7 9 10 11 12], test: [2 4 8]
    train: [ 1 2 4 5 8 9 10 11 12], test: [3 6 7]
    train: [ 1 2 3 4 6 7 8 9 10], test: [5 11 12]
    8 lần để đào tạo
  • 40%9 điểm dữ liệu trong mỗi nếp gấp trong đó 40%8 là số quan sát trong dữ liệu gốc và
    train: [ 2  3  4  5  6  7  8 11 12], test: [1  9 10]
    train: [ 1 3 5 6 7 9 10 11 12], test: [2 4 8]
    train: [ 1 2 4 5 8 9 10 11 12], test: [3 6 7]
    train: [ 1 2 3 4 6 7 8 9 10], test: [5 11 12]
    2 là số nếp gấp
  • train: [ 2  3  4  5  6  7  8 11 12], test: [1  9 10]
    train: [ 1 3 5 6 7 9 10 11 12], test: [2 4 8]
    train: [ 1 2 4 5 8 9 10 11 12], test: [3 6 7]
    train: [ 1 2 3 4 6 7 8 9 10], test: [5 11 12]
    2 có thể lấy bất kỳ giá trị số nguyên nào giữa240%8 (số lượng quan sát trong mẫu ban đầu)

Lấy mẫu Bootstrap

Lấy mẫu Bootstrap là một kỹ thuật lấy mẫu lại bao gồm lấy mẫu ngẫu nhiên có thay thế. Từ lấy mẫu lại theo nghĩa đen có nghĩa là 'lấy mẫu lại'- ngụ ý rằng- một mẫu bootstrap được tạo bằng cách lấy mẫu với sự thay thế từ mẫu 'gốc'

Thông thường, lấy mẫu được tạo bằng cách chọn một tập hợp con của dân số để phân tích với mục đích suy luận về dân số (dân số -> mẫu) trong khi việc lấy mẫu lại được thực hiện với mục đích suy luận về mẫu (mẫu -> dữ liệu được lấy mẫu lại)

Đây là một ví dụ đơn giản. Giả sử rằng một mẫu có kích thước Line 1–15:9 được lấy từ một quần thể nhất định và từ những mẫu này 1500 mẫu bootstrap được tạo ra. Sau đó chúng ta có thể biểu diễn thông tin này như sau

Một ví dụ về lấy mẫu bootstrap (bootstrapping). Dữ liệu gốc chứa Line 1–15:9 ví dụ dữ liệu và mỗi bộ mẫu cũng liên quan đến việc lấy mẫu 12 điểm dữ liệu từ dữ liệu gốc có thay thế. Nguồn. Tác giả

Vì chúng tôi đang lấy mẫu dẫn điện có thay thế, hãy lưu ý những điều sau từ ví dụ trên

  • Một số điểm dữ liệu (có thể) xuất hiện trong nhiều bộ. Ví dụ: Line 17:2 xuất hiện trong tập hợp Line 17:3 và Line 17:4
  • Một số ví dụ sẽ xuất hiện nhiều lần trong một tập hợp nhất định. Ví dụ: Line 17:5 và Line 17:6 xuất hiện nhiều lần trong tập hợp Line 17:7

“Giả sử n (kích thước của dữ liệu gốc) đủ lớn, đối với tất cả các mục đích thực tế, hầu như không có khả năng nó (mẫu bootstrap) sẽ giống với mẫu 'thực' ban đầu. ” - Wikipedia

Trong thực tế,

Trung bình 63. 22% dữ liệu gốc xuất hiện trong bất kỳ mẫu bootstrap cụ thể nào, điều đó giống như nói - một mẫu bootstrap trung bình bỏ qua 100–63. 22=36. 78% dữ liệu trên mẫu ban đầu

Hãy chứng minh sự thật toán học này theo cách đơn giản nhất. Và trước khi làm điều đó, chúng ta hãy phát biểu một số sự kiện toán học sẽ giúp chúng ta trong quá trình chứng minh

Bây giờ chúng ta có thể tiếp tục với bằng chứng của mình

Giả sử dữ liệu gốc có 40%8 quan sát và chúng tôi nhận được mẫu bootstrap có kích thước 40%8 từ dữ liệu sau đó

  • xác suất của một quan sát nhất định KHÔNG được chọn là train_test_split0 và xác suất nó được chọn là train_test_split1
  • vì chúng ta lấy mẫu lại n lần nên xác suất của một quan sát không được chọn trong n thử nghiệm là train_test_split2

Từ phép tính, khi train_test_split3 (n lớn dần), xác suất này có thể được xác định bằng cách sử dụng các khái niệm về giới hạn. Điều đó có nghĩa là,

Từ đây cần hiểu và vận dụng quy tắc L’Hôpital

Phát biểu quy tắc L’Hôpital. Nói một cách dễ hiểu, quy tắc phát biểu rằng, xét hai hàm số f và g mà đạo hàm của chúng tồn tại trong một khoảng I nào đó ngoại trừ tại một điểm c cho trước trong khoảng (nghĩa là đạo hàm tồn tại ở mọi nơi khác trong khoảng nhưng không tồn tại tại . Nếu giới hạn của f và g khi x tiến dần đến điểm c (giả sử f và g là các hàm của x) bằng 0 hoặc vô cùng VÀ đạo hàm của g không bằng 0 đối với mọi giá trị của x trong khoảng I (điều này làm cho . Thẩm quyền giải quyết. Wikipedia

Từ phương trình train_test_split4, ta chứng minh được tất cả các điều kiện cần thỏa mãn trước khi áp dụng quy tắc L’Hôpital thực sự được thỏa mãn như sau

Sau đó, chúng ta có thể áp dụng quy tắc L'Hôpital cho Phương trình train_test_split5 và tiến hành như hình bên dưới

Điều này kết thúc bằng chứng của chúng tôi với xác nhận rằng bootstrapping loại bỏ ≈36. 22% dữ liệu trong mẫu ban đầu khi 40%8 phát triển lớn

Đó là kết thúc của bài viết này cho ngày hôm nay. Nếu bạn thích nó, vui lòng xem bài viết sau về Hàm mất Entropy chéo và đọc nó. Hẹn gặp bạn lần sau và đọc tốt. -)

Hàm mất Entropy chéo

Một hàm mất mát được sử dụng trong hầu hết các bài toán phân loại để tối ưu hóa mô hình máy học…

hướng tới khoa học dữ liệu. com

Tham gia phương tiện trên https. //trung bình. com/@kiprono_65591/membership để có quyền truy cập đầy đủ vào mọi câu chuyện trên Medium

Bạn cũng có thể nhận các bài báo vào hộp thư đến email của mình bất cứ khi nào tôi đăng bài bằng liên kết này. https. //trung bình. com/đăng ký/@kiprono_65591

Bootstrapping có phải là một kỹ thuật xác thực không?

Xác thực khởi động là một cách để dự đoán mức độ phù hợp của một mô hình với bộ thử nghiệm giả định khi không có bộ thử nghiệm rõ ràng .

Sự khác biệt giữa bootstrapping và đóng gói là gì?

Về bản chất, bootstrapping là lấy mẫu ngẫu nhiên có thay thế từ dữ liệu huấn luyện có sẵn. Đóng gói (= tổng hợp bootstrap) đang thực hiện nó nhiều lần và đào tạo một công cụ ước tính cho từng tập dữ liệu đã khởi động. Nó có sẵn ở dạng modAL cho cả mô hình ActiveLearner cơ bản và mô hình Ủy ban

Đâu là sự khác biệt giữa cross

Sự khác biệt lớn giữa các kỹ thuật đóng gói và xác thực là các mô hình trung bình đóng gói (hoặc dự đoán của một tập hợp các mô hình) để giảm phương sai mà dự đoán phải tuân theo trong khi lấy mẫu lại xác thực, chẳng hạn như xác thực chéo và xác thực ngoài bootstrap đánh giá một số

Mục đích của bootstrapping là gì?

Bootstrapping mô tả tình huống trong đó một doanh nhân thành lập công ty với ít vốn, dựa vào tiền chứ không phải đầu tư bên ngoài. Một cá nhân được cho là đang khởi động khi họ cố gắng thành lập và xây dựng một công ty từ nguồn tài chính cá nhân hoặc doanh thu hoạt động của công ty mới .