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 150
—60%
đượ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ư sautrain: [ 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
- [Tùy chọn] xáo trộn dữ liệu
- 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]
- 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]
4 trong
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]train: [ 2 3 4 5 6 7 8 11 12], test: [1 9 10]
5
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]
✓ 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]
94. Tổng hợp các điểm đạt được trong [150
0 đ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 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, 150
2, để 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]
2 phải là một số nguyên giữa
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
và150
5 [số quan sát/bản ghi].train: [ 2 3 4 5 6 7 8 11 12], test: [1 9 10]
2 phải ít nhất là
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
để đảm bảo có ít nhất hai nếp gấp - Đối với
150
8, 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ộ2
—60%
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ên60%
0 và được xác nhận vào ngày60%
1, tiếp theo là đào tạo trên60%
1 và xác nhận trên60%
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]
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: [ 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]train: [ 2 3 4 5 6 7 8 11 12], test: [1 9 10]
2
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]
✓ 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ứa40%
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]
8 lần để đào tạo
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] - Có
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]
2 là số nếp gấp
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] train: [ 2 3 4 5 6 7 8 11 12], test: [1 9 10]
2 có thể lấy bất kỳ giá trị số nguyên nào giữa
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
và40%
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 150
0 mẫu bootstrap được tạo ra. Sau đó chúng ta có thể biểu diễn thông tin này như sau
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ợpLine 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ợpLine 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_split
0 và xác suất nó được chọn làtrain_test_split
1 - 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_split
2
Từ phép tính, khi train_test_split
3 [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_split
4, 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_split
5 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