Triển khai xác thực chéo python

Nó thực sự dễ dàng để thực hiện hold-out. Ví dụ: bạn có thể làm điều đó bằng sklearn. model_selection. tàu_test_split

import numpy as np
from sklearn.model_selection import train_test_split

X, y = np.arange[10].reshape[[5, 2]], range[5]
X_train, X_test, y_train, y_test = train_test_split[X, y,
                                                    test_size=0.2,
                                                    random_state=111]

Tuy nhiên, hold-out có một nhược điểm lớn.  

Ví dụ: một tập dữ liệu không hoàn toàn đồng đều về mặt phân phối. Nếu vậy, chúng ta có thể sẽ gặp khó khăn sau khi chia tách. Ví dụ: tập huấn luyện sẽ không đại diện cho tập kiểm tra. Cả tập huấn luyện và kiểm tra có thể khác nhau rất nhiều, một trong số chúng có thể dễ hơn hoặc khó hơn.  

Hơn nữa, thực tế là chúng tôi chỉ kiểm tra mô hình của mình một lần có thể là nút cổ chai cho phương pháp này. Do những lý do đã đề cập trước đó, kết quả thu được bằng kỹ thuật giữ lại có thể được coi là không chính xác

xác thực chéo k-Fold

k-Fold cross-validation là một kỹ thuật giúp giảm thiểu các nhược điểm của phương pháp hold-out. k-Fold giới thiệu một cách mới để chia nhỏ tập dữ liệu giúp khắc phục nút thắt cổ chai chỉ kiểm tra một lần

Thuật toán của kỹ thuật k-Fold

  1. Chọn một số nếp gấp – k. Thông thường, k là 5 hoặc 10 nhưng bạn có thể chọn bất kỳ số nào nhỏ hơn độ dài của tập dữ liệu
  2. Chia tập dữ liệu thành k phần bằng nhau [nếu có thể] [chúng được gọi là nếp gấp]
  3. Chọn k – 1 lần làm tập huấn luyện. Phần gấp còn lại sẽ là tập kiểm tra
  4. Huấn luyện mô hình trên tập huấn luyện. Trên mỗi lần lặp xác thực chéo, bạn phải đào tạo một mô hình mới độc lập với mô hình được đào tạo trong lần lặp lại trước đó
  5. Xác thực trên tập kiểm tra
  6. Lưu kết quả xác nhận
  7. Lặp lại các bước 3 – 6 k lần. Mỗi lần sử dụng phần còn lại  gấp làm bộ kiểm tra. Cuối cùng, bạn nên xác thực mô hình trên mọi màn hình đầu tiên mà bạn có
  8. Để có được điểm cuối cùng trung bình các kết quả mà bạn có ở bước 6

Để thực hiện xác thực chéo k-Fold, bạn có thể sử dụng sklearn. model_selection. KFold

import numpy as np
from sklearn.model_selection import KFold

X = np.array[[[1, 2], [3, 4], [1, 2], [3, 4]]]
y = np.array[[1, 2, 3, 4]]
kf = KFold[n_splits=2]

for train_index, test_index in kf.split[X]:
    print["TRAIN:", train_index, "TEST:", test_index]
    X_train, X_test = X[train_index], X[test_index]
    y_train, y_test = y[train_index], y[test_index]

Nói chung, sử dụng kỹ thuật k-Fold luôn tốt hơn thay vì giữ lại. Đối đầu trực tiếp, so sánh k-Fold cho kết quả ổn định và đáng tin cậy hơn do quá trình đào tạo và thử nghiệm được thực hiện trên một số phần khác nhau của tập dữ liệu. Chúng tôi có thể làm cho điểm tổng thể mạnh mẽ hơn nữa nếu chúng tôi tăng số lần gấp để kiểm tra mô hình trên nhiều bộ dữ liệu phụ khác nhau

Tuy nhiên, phương pháp k-Fold có một nhược điểm. Tăng k dẫn đến đào tạo nhiều mô hình hơn và quá trình đào tạo có thể thực sự tốn kém và mất thời gian

Xác thực chéo một lần để lại

Xác thực chéo một lần [LOOCV] là một trường hợp đặc biệt của k-Fold CV. Hãy tưởng tượng nếu k bằng n trong đó n là số lượng mẫu trong tập dữ liệu. Trường hợp k-Fold như vậy tương đương với kỹ thuật Leave-one-out


Thuật toán của kỹ thuật LOOCV

  1. Chọn một mẫu từ tập dữ liệu sẽ là tập kiểm tra
  2. n – 1 mẫu còn lại sẽ là tập huấn luyện
  3. Huấn luyện mô hình trên tập huấn luyện. Trên mỗi lần lặp lại, một mô hình mới phải được đào tạo
  4. Xác thực trên tập kiểm tra
  5. Lưu kết quả xác nhận
  6. Lặp lại các bước 1 – 5 n lần vì với n mẫu, chúng ta có n tập huấn luyện và kiểm tra khác nhau
  7. Để có được điểm cuối cùng trung bình các kết quả mà bạn có ở bước 5

Đối với LOOCV, sklearn cũng có một phương thức tích hợp. Nó có thể được tìm thấy trong thư viện model_selection – sklearn. model_selection. Để LạiMột Ra Ngoài

import numpy as np
from sklearn.model_selection import LeaveOneOut

X = np.array[[[1, 2], [3, 4]]]
y = np.array[[1, 2]]
loo = LeaveOneOut[]

for train_index, test_index in loo.split[X]:
    print["TRAIN:", train_index, "TEST:", test_index]
    X_train, X_test = X[train_index], X[test_index]
    y_train, y_test = y[train_index], y[test_index]

Ưu điểm lớn nhất của xác thực chéo Leave-one-out là nó không lãng phí nhiều dữ liệu. Chúng tôi chỉ sử dụng một mẫu từ toàn bộ tập dữ liệu làm tập kiểm tra, trong khi phần còn lại là tập huấn luyện. Nhưng khi so sánh với k-Fold CV, LOOCV yêu cầu xây dựng n mô hình thay vì k mô hình, khi chúng ta biết rằng n đại diện cho số lượng mẫu trong tập dữ liệu cao hơn nhiều so với k. Điều đó có nghĩa là LOOCV đắt hơn về mặt tính toán so với k-Fold, có thể mất nhiều thời gian để xác thực chéo mô hình bằng LOOCV

Do đó, cộng đồng Khoa học dữ liệu có một quy tắc chung dựa trên bằng chứng thực nghiệm và các nghiên cứu khác nhau, điều này cho thấy rằng nên ưu tiên xác thực chéo 5 hoặc 10 lần so với LOOCV

Xác thực chéo bỏ qua

Xác thực chéo loại bỏ-p-ra [LpOC] tương tự như loại CV loại một vì nó tạo ra tất cả các tập huấn luyện và kiểm tra có thể bằng cách sử dụng p mẫu làm tập kiểm tra. Tất cả những gì được đề cập về LOOCV là đúng và đối với LpOC

Tuy nhiên, điều đáng nói là không giống như LOOCV và các bộ kiểm tra k-Fold sẽ trùng nhau đối với LpOC nếu p cao hơn 1

Thuật toán của kỹ thuật LpOC

  1. Chọn p mẫu từ tập dữ liệu sẽ là tập kiểm tra
  2. n – p mẫu còn lại sẽ là tập huấn luyện
  3. Huấn luyện mô hình trên tập huấn luyện. Trên mỗi lần lặp lại, một mô hình mới phải được đào tạo
  4. Xác thực trên tập kiểm tra
  5. Lưu kết quả xác nhận
  6. Lặp lại các bước 2 – 5 Cpn lần
  7. Để có được điểm cuối cùng trung bình các kết quả mà bạn có ở bước 5

Bạn có thể thực hiện Leave-p-out CV bằng cách sử dụng sklearn – sklearn. model_selection. Rời khỏiPOut

import numpy as np
from sklearn.model_selection import LeavePOut

X = np.array[[[1, 2], [3, 4], [5, 6], [7, 8]]]
y = np.array[[1, 2, 3, 4]]
lpo = LeavePOut[2]

for train_index, test_index in lpo.split[X]:
    print["TRAIN:", train_index, "TEST:", test_index]
    X_train, X_test = X[train_index], X[test_index]
    y_train, y_test = y[train_index], y[test_index]

LpOC có tất cả các nhược điểm của LOOCV, tuy nhiên, nó mạnh mẽ như LOOCV

Xác thực chéo k-Fold phân tầng

Đôi khi chúng ta có thể phải đối mặt với sự mất cân đối lớn của giá trị mục tiêu trong tập dữ liệu. Ví dụ: trong tập dữ liệu liên quan đến giá đồng hồ đeo tay, có thể có nhiều đồng hồ đeo tay có giá cao hơn. Trong trường hợp phân loại, trong bộ dữ liệu chó và mèo có thể có sự thay đổi lớn đối với lớp chó

Stratified k-Fold là một biến thể của kỹ thuật CV k-Fold tiêu chuẩn được thiết kế để có hiệu quả trong những trường hợp mất cân bằng mục tiêu như vậy.  

Nó hoạt động như sau. Stratified k-Fold phân chia tập dữ liệu trên k nếp gấp sao cho mỗi nếp gấp chứa xấp xỉ cùng một tỷ lệ phần trăm mẫu của mỗi lớp mục tiêu như một tập hợp hoàn chỉnh. Trong trường hợp hồi quy, Stratified k-Fold đảm bảo rằng giá trị đích trung bình xấp xỉ bằng nhau trong tất cả các nếp gấp

Thuật toán của kỹ thuật Stratified k-Fold

  1. Chọn một số nếp gấp – k
  2. Chia tập dữ liệu thành k lần. Mỗi nếp gấp phải chứa tỷ lệ phần trăm mẫu của từng loại mục tiêu xấp xỉ như một bộ hoàn chỉnh
  3. Chọn k – 1 lần sẽ là tập huấn luyện. Phần gấp còn lại sẽ là tập kiểm tra
  4. Huấn luyện mô hình trên tập huấn luyện. Trên mỗi lần lặp, một mô hình mới phải được đào tạo
  5. Xác thực trên tập kiểm tra
  6. Lưu kết quả xác nhận
  7. Lặp lại các bước 3 – 6 k lần. Mỗi lần sử dụng phần còn lại  gấp làm bộ kiểm tra. Cuối cùng, bạn nên xác thực mô hình trên mọi màn hình đầu tiên mà bạn có
  8. Để có được điểm cuối cùng trung bình các kết quả mà bạn có ở bước 6

Như bạn có thể nhận thấy, thuật toán cho kỹ thuật k-Fold phân tầng tương tự như k-Fold tiêu chuẩn. Bạn không cần phải viết mã gì thêm vì phương thức này sẽ làm mọi thứ cần thiết cho bạn

Stratified k-Fold cũng có một phương thức tích hợp trong sklearn – sklearn. model_selection. Phân tầngKFold

import numpy as np
from sklearn.model_selection import StratifiedKFold

X = np.array[[[1, 2], [3, 4], [1, 2], [3, 4]]]
y = np.array[[0, 0, 1, 1]]
skf = StratifiedKFold[n_splits=2]

for train_index, test_index in skf.split[X, y]:
    print["TRAIN:", train_index, "TEST:", test_index]
    X_train, X_test = X[train_index], X[test_index]
    y_train, y_test = y[train_index], y[test_index]

Tất cả những điều đã đề cập ở trên về k-Fold CV đều đúng với kỹ thuật Stratified k-Fold. Khi lựa chọn giữa các phương pháp CV khác nhau, hãy đảm bảo rằng bạn đang sử dụng phương pháp phù hợp. Ví dụ: bạn có thể nghĩ rằng mô hình của mình hoạt động kém chỉ vì bạn đang sử dụng k-Fold CV để xác thực mô hình được đào tạo trên tập dữ liệu với sự mất cân bằng lớp. Để tránh điều đó, bạn phải luôn thực hiện phân tích dữ liệu khám phá thích hợp trên dữ liệu của mình

Xác thực chéo k-Fold lặp đi lặp lại

Xác thực chéo k-Fold lặp đi lặp lại hoặc CV lấy mẫu phụ ngẫu nhiên lặp đi lặp lại có lẽ là kỹ thuật CV hiệu quả nhất trong bài báo này. Nó là một biến thể của k-Fold nhưng trong trường hợp Lặp lại k-Fold k không phải là số lần gấp. Đó là số lần chúng ta sẽ huấn luyện mô hình

Ý tưởng chung là trên mỗi lần lặp lại, chúng tôi sẽ chọn ngẫu nhiên các mẫu trên toàn bộ tập dữ liệu làm tập thử nghiệm của chúng tôi. Ví dụ: nếu chúng tôi quyết định rằng 20% ​​tập dữ liệu sẽ là tập kiểm tra của chúng tôi, 20% mẫu sẽ được chọn ngẫu nhiên và 80% còn lại sẽ trở thành tập huấn luyện.  

Thuật toán của kỹ thuật Repeated k-Fold

  1. Chọn k – số lần mô hình sẽ được đào tạo
  2. Chọn một số mẫu làm bộ kiểm tra
  3. Tách tập dữ liệu
  4. Huấn luyện trên tập huấn luyện. Trên mỗi lần lặp lại xác thực chéo, một mô hình mới phải được đào tạo
  5. Xác thực trên tập kiểm tra
  6. Lưu kết quả xác nhận
  7. Lặp lại các bước 3-6 k lần
  8. Để có được điểm cuối cùng trung bình các kết quả mà bạn có ở bước 6

K-Fold lặp lại có lợi thế rõ ràng so với CV k-Fold tiêu chuẩn. Thứ nhất, tỷ lệ phân chia đào tạo/kiểm tra không phụ thuộc vào số lần lặp lại. Thứ hai, chúng tôi thậm chí có thể đặt tỷ lệ duy nhất cho mỗi lần lặp lại. Thứ ba, việc lựa chọn ngẫu nhiên các mẫu từ tập dữ liệu làm cho K-Fold lặp lại thậm chí còn mạnh mẽ hơn đối với xu hướng lựa chọn

Tuy nhiên, vẫn có một số nhược điểm. k-Fold CV đảm bảo rằng mô hình sẽ được thử nghiệm trên tất cả các mẫu, trong khi k-Fold lặp lại dựa trên ngẫu nhiên, điều đó có nghĩa là một số mẫu có thể không bao giờ được chọn để đưa vào bộ thử nghiệm. Đồng thời, một số mẫu có thể được chọn nhiều lần. Do đó, làm cho nó trở thành một lựa chọn tồi cho các bộ dữ liệu mất cân bằng

Sklearn sẽ giúp bạn thực hiện CV lặp lại k-Fold. Chỉ cần sử dụng sklearn. model_selection. Lặp đi lặp lạiKFold. Khi triển khai sklearn của kỹ thuật này, bạn phải đặt số nếp gấp mà bạn muốn có [n_splits] và số lần quá trình phân tách sẽ được thực hiện [n_repeats]. Nó đảm bảo rằng bạn sẽ có các nếp gấp khác nhau trên mỗi lần lặp lại

import numpy as np
from sklearn.model_selection import RepeatedKFold

X = np.array[[[1, 2], [3, 4], [1, 2], [3, 4]]]
y = np.array[[0, 0, 1, 1]]
rkf = RepeatedKFold[n_splits=2, n_repeats=2, random_state=42]

for train_index, test_index in rkf.split[X]:
    print["TRAIN:", train_index, "TEST:", test_index]
    X_train, X_test = X[train_index], X[test_index]
    y_train, y_test = y[train_index], y[test_index]

K-Fold lồng nhau

Không giống như các kỹ thuật CV khác, được thiết kế để đánh giá chất lượng của thuật toán, CV gấp k lồng nhau được sử dụng để huấn luyện một mô hình trong đó các siêu tham số cũng cần được tối ưu hóa. Nó ước tính lỗi tổng quát hóa của mô hình cơ bản và tìm kiếm tham số [siêu] của nó

Lấy mẫu lại xác thực chéo k-Fold lồng nhau. Nguồn

Thuật toán của kỹ thuật Nested k-Fold

  1. Xác định bộ kết hợp siêu tham số, C, cho mô hình hiện tại. Nếu mô hình không có siêu tham số, C là tập rỗng
  2. Chia dữ liệu thành K nếp gấp với phân phối trường hợp và điều khiển xấp xỉ bằng nhau
  3. [vòng ngoài] Đối với nếp gấp k, trong K nếp gấp
    1. Đặt gấp k, làm bộ kiểm tra
    2. Thực hiện lựa chọn tính năng tự động trên các nếp gấp K-1 còn lại
    3. Đối với tổ hợp tham số c trong C
      1. [vòng trong] Đối với nếp gấp k, trong K-1 nếp gấp còn lại
        1. Đặt gấp k, làm bộ xác thực
        2. Mô hình đào tạo trên các nếp gấp K-2 còn lại
        3. Đánh giá hiệu suất mô hình khi gấp k
      2. Tính hiệu suất trung bình qua K-2 lần cho tổ hợp tham số c
    4. Huấn luyện mô hình trên các nếp gấp K-1 bằng cách sử dụng kết hợp siêu tham số mang lại hiệu suất trung bình tốt nhất qua tất cả các bước của vòng lặp bên trong
    5. Đánh giá hiệu suất mô hình khi gấp k
  4. Tính hiệu suất trung bình qua K lần

Vòng lặp bên trong thực hiện xác thực chéo để xác định các tính năng tốt nhất và mô hình siêu tham số bằng cách sử dụng k-1 nếp gấp dữ liệu có sẵn ở mỗi lần lặp của vòng lặp bên ngoài. Mô hình được đào tạo một lần cho mỗi bước của vòng lặp bên ngoài và được đánh giá trên phần dữ liệu được giữ lại. Quá trình này mang lại k đánh giá về hiệu suất của mô hình, một đánh giá cho mỗi lần dữ liệu và cho phép thử nghiệm mô hình trên mọi mẫu

Cần lưu ý rằng kỹ thuật này tốn kém về mặt tính toán vì rất nhiều mô hình được đào tạo và đánh giá. Thật không may, không có phương thức tích hợp nào trong sklearn có thể thực hiện Nested k-Fold CV cho bạn

Bạn có thể tự thực hiện hoặc tham khảo cách thực hiện tại đây

Xác thực chéo chuỗi thời gian

Các kỹ thuật xác thực chéo truyền thống không hoạt động trên dữ liệu tuần tự, chẳng hạn như chuỗi thời gian vì chúng tôi không thể chọn các điểm dữ liệu ngẫu nhiên và gán chúng cho tập kiểm tra hoặc tập huấn luyện vì việc sử dụng các giá trị từ tương lai để dự báo là vô nghĩa . Có hai cách chủ yếu để thực hiện điều này

  1. Đang lăn xác nhận chéo

Xác thực chéo được thực hiện trên cơ sở cuốn chiếu. e. bắt đầu với một tập hợp con dữ liệu nhỏ cho mục đích đào tạo, dự đoán các giá trị trong tương lai và sau đó kiểm tra độ chính xác của các điểm dữ liệu được dự báo. Hình ảnh sau đây có thể giúp bạn có được trực giác đằng sau phương pháp này

Đang lăn xác nhận chéo.

  1. Xác thực chéo bị chặn

Kỹ thuật đầu tiên có thể giới thiệu rò rỉ từ dữ liệu trong tương lai vào mô hình. Mô hình sẽ quan sát các mẫu trong tương lai để dự báo và cố gắng ghi nhớ chúng. Đó là lý do tại sao xác thực chéo bị chặn đã được giới thiệu.  

Xác thực chéo bị chặn.

Nó hoạt động bằng cách thêm lề ở hai vị trí. Đầu tiên là giữa các nếp gấp đào tạo và xác thực để ngăn mô hình quan sát các giá trị độ trễ được sử dụng hai lần, một lần làm biến hồi quy và một lần khác làm phản hồi. Thứ hai là giữa các nếp gấp được sử dụng ở mỗi lần lặp lại để ngăn mô hình ghi nhớ các mẫu từ lần lặp này sang lần lặp tiếp theo

Xác thực chéo trong Machine Learning

Khi nào xác nhận chéo là sự lựa chọn đúng đắn?

Mặc dù việc xác thực chéo mô hình được đào tạo của bạn không bao giờ có thể được coi là một lựa chọn tồi, nhưng có một số tình huống nhất định trong đó xác thực chéo trở thành một điều cần thiết tuyệt đối.  

  1. Tập dữ liệu hạn chế

Giả sử chúng ta có 100 điểm dữ liệu và chúng ta đang xử lý sự cố phân loại nhiều lớp với 10 lớp, trung bình có khoảng ~10 ví dụ cho mỗi lớp. Trong cách phân chia thử nghiệm đào tạo 80-20, con số này sẽ còn giảm xuống còn 8 mẫu mỗi lớp để đào tạo. Điều thông minh cần làm ở đây là sử dụng xác thực chéo và sử dụng toàn bộ tập dữ liệu của chúng tôi để đào tạo cũng như thử nghiệm

Đọc thêm

Tận dụng dữ liệu hình ảnh chưa được gắn nhãn bằng cách học tự giám sát hoặc gắn nhãn giả với Mateusz Opala

  1. Điểm dữ liệu phụ thuộc

Khi chúng tôi thực hiện phân tách thử nghiệm huấn luyện ngẫu nhiên dữ liệu của mình, chúng tôi giả định rằng các ví dụ của chúng tôi là độc lập. Điều đó có nghĩa là biết một số trường hợp sẽ không giúp chúng ta hiểu các trường hợp khác. Tuy nhiên, điều đó không phải lúc nào cũng đúng và trong những tình huống như vậy, điều quan trọng là mô hình của chúng ta phải làm quen với toàn bộ tập dữ liệu, điều này có thể thực hiện được với xác thực chéo

  1. Nhược điểm của số liệu duy nhất

Trong trường hợp không có xác thực chéo, chúng tôi chỉ nhận được một giá trị duy nhất về độ chính xác hoặc độ chính xác hoặc thu hồi có thể là kết quả của sự ngẫu nhiên. Khi chúng tôi đào tạo nhiều mô hình, chúng tôi loại bỏ các khả năng như vậy và nhận được một số liệu cho mỗi mô hình dẫn đến thông tin chi tiết mạnh mẽ.  

  1. điều chỉnh siêu tham số

Mặc dù có nhiều phương pháp để điều chỉnh các siêu tham số của mô hình của bạn, chẳng hạn như tìm kiếm dạng lưới, tối ưu hóa Bayesian, v.v. , bài tập này không thể được thực hiện trên tập huấn luyện hoặc tập kiểm tra và phát sinh nhu cầu về tập xác nhận. Do đó, chúng tôi quay trở lại cùng một vấn đề chia tách mà chúng tôi đã thảo luận ở trên và xác thực chéo có thể giúp chúng tôi thoát khỏi vấn đề này

Có thể có ích đấy

Làm cách nào để quản lý, theo dõi và trực quan hóa siêu tham số của các mô hình học máy?

Xác thực chéo trong Deep Learning

Xác thực chéo trong Deep Learning [DL] có thể hơi phức tạp vì hầu hết các kỹ thuật CV đều yêu cầu đào tạo mô hình ít nhất một vài lần.  

Trong học sâu, bạn thường muốn tránh CV vì chi phí liên quan đến đào tạo k mô hình khác nhau. Thay vì thực hiện k-Fold hoặc các kỹ thuật CV khác, bạn có thể sử dụng một tập hợp con ngẫu nhiên của dữ liệu đào tạo của mình làm phần tạm dừng cho mục đích xác thực

Ví dụ: thư viện học sâu Keras cho phép bạn chuyển một trong hai tham số cho hàm phù hợp thực hiện đào tạo

  1. xác thực_split. tỷ lệ phần trăm dữ liệu nên được giữ lại để xác thực
  2. xác nhận_dữ liệu. một bộ [X, y] sẽ được sử dụng để xác thực. Tham số này ghi đè tham số xác thực_split, nghĩa là bạn chỉ có thể sử dụng một trong các tham số này cùng một lúc

Cách tiếp cận tương tự được sử dụng trong các hướng dẫn chính thức của các khung DL khác như PyTorch và MxNet. Họ cũng đề xuất chia tập dữ liệu thành ba phần. đào tạo, xác nhận và thử nghiệm

  1. Đào tạo – một phần của bộ dữ liệu để đào tạo
  2. Xác thực – một phần của tập dữ liệu để xác thực trong khi đào tạo
  3. Thử nghiệm – một phần của tập dữ liệu để xác thực cuối cùng của mô hình

Tuy nhiên, bạn có thể sử dụng xác thực chéo trong các tác vụ DL nếu tập dữ liệu nhỏ [chứa hàng trăm mẫu]. Trong trường hợp này, việc học một mô hình phức tạp có thể là một nhiệm vụ không liên quan, vì vậy hãy đảm bảo rằng bạn không làm phức tạp thêm nhiệm vụ

Thực hành tốt nhất và lời khuyên

Điều đáng nói là đôi khi việc thực hiện xác thực chéo có thể hơi phức tạp.  

Ví dụ: rất dễ mắc lỗi logic khi chia nhỏ tập dữ liệu, điều này có thể dẫn đến kết quả CV không đáng tin cậy.  

Bạn có thể tìm thấy một số mẹo mà bạn cần ghi nhớ khi xác thực chéo một mô hình bên dưới

  1. Hãy logic khi tách dữ liệu [phương pháp tách có hợp lý không]
  2. Sử dụng phương pháp CV phù hợp [phương pháp này có khả thi đối với trường hợp sử dụng của tôi không]
  3. Khi làm việc với chuỗi thời gian, đừng xác thực về quá khứ [xem mẹo đầu tiên]
  4. Khi làm việc với dữ liệu y tế hoặc tài chính, hãy nhớ chia theo người. Tránh để dữ liệu của một người trong cả tập huấn luyện và tập kiểm tra vì nó có thể bị coi là rò rỉ dữ liệu
  5. Khi cắt các bản vá từ hình ảnh lớn hơn, hãy nhớ chia theo Id hình ảnh lớn

Tất nhiên, các mẹo khác nhau giữa các nhiệm vụ và hầu như không thể bao gồm tất cả chúng. Đó là lý do tại sao thực hiện phân tích dữ liệu khám phá vững chắc trước khi bắt đầu xác thực chéo một mô hình luôn là phương pháp hay nhất

suy nghĩ cuối cùng

Xác thực chéo là một công cụ mạnh mẽ. Mọi nhà khoa học dữ liệu nên làm quen với nó. Trong cuộc sống thực, bạn không thể hoàn thành dự án mà không xác thực chéo một mô hình

Theo tôi, các kỹ thuật CV tốt nhất là Nested k-Fold và k-Fold tiêu chuẩn. Cá nhân tôi đã sử dụng chúng trong nhiệm vụ Phát hiện gian lận. Nested k-Fold, cũng như GridSeachCV, đã giúp tôi điều chỉnh các tham số của mô hình của mình. mặt khác, k-Fold được sử dụng để đánh giá hiệu suất của mô hình của tôi

Trong bài viết này, chúng tôi đã tìm ra xác thực chéo là gì, có những kỹ thuật CV nào và cách triển khai chúng. Trong tương lai, các thuật toán ML chắc chắn sẽ còn hoạt động tốt hơn hiện nay. Tuy nhiên, xác thực chéo sẽ luôn cần thiết để sao lưu kết quả của bạn

Hy vọng rằng với thông tin này, bạn sẽ không gặp vấn đề gì khi thiết lập CV cho dự án máy học tiếp theo của mình

Tài nguyên

  1. https. //www. chuyên viên máy tính. org/xác thực chéo-máy-học/
  2. https. //máy học thành thạo. com/k-fold-xác thực chéo/
  3. https. // hướng tới khoa học dữ liệu. com/xác thực chéo trong máy-học-72924a69872f
  4. https. // hướng tới khoa học dữ liệu. com/why-and-how-to-do-cross-validation-for-machine-learning-d5bd7e60c189
  5. https. //scikit-học. org/stable/modules/cross_validation. html

Xóa tìm kiếm hiện tại

sao hải vương là gì. ai?

Đó là trình theo dõi thử nghiệm và sổ đăng ký mô hình tích hợp với bất kỳ ngăn xếp MLOps nào

Ghi nhật ký siêu dữ liệu mô hình từ mọi nơi trong quy trình của bạn. Xem kết quả trong ứng dụng web

Xem sản phẩm

Mục lục

  1. Xác thực chéo là gì?
  2. xác nhận chéo giữ lại
  3. xác thực chéo k-Fold
  4. Xác thực chéo một lần để lại
  5. Xác thực chéo bỏ qua
  6. Xác thực chéo k-Fold phân tầng
  7. Xác thực chéo k-Fold lặp đi lặp lại
  8. K-Fold lồng nhau
  9. Xác thực chéo chuỗi thời gian
  10. Xác thực chéo trong Machine Learning
  11. Xác thực chéo trong Deep Learning
  12. Thực hành tốt nhất và lời khuyên
  13. suy nghĩ cuối cùng
  14. Tài nguyên

Đọc tiếp

7 sai lầm khi xác thực chéo có thể khiến bạn phải trả giá đắt [Các phương pháp hay nhất trong ML]

Tất cả chúng ta đều muốn các mô hình của mình khái quát hóa tốt để chúng duy trì hiệu suất cao nhất trên bất kỳ loại tập dữ liệu nào. Để đảm bảo những yêu cầu như vậy, chúng tôi thường dựa vào xác thực chéo trong các dự án máy học của mình, một quy trình lấy mẫu lại được sử dụng để đánh giá các mô hình máy học trên các mẫu dữ liệu hạn chế. Có thể là một cơn ác mộng khi nhận ra rằng có điều gì đó không ổn với chiến lược xác thực chéo của bạn sau khi bạn đã dành toàn bộ thời gian trên thế giới để điều chỉnh mô hình của mình bằng cách sử dụng nó.  

Trong bài viết này, chúng tôi sẽ đề cập đến bảy sai lầm phổ biến nhất mà mọi người mắc phải khi sử dụng xác thực chéo và cách bạn có thể tránh chúng. Hãy bắt đầu với phần giới thiệu ngắn gọn về xác thực chéo

Xác thực chéo là gì?

Đây là một phương pháp thống kê được sử dụng để đánh giá hiệu suất của các mô hình học máy trước khi chúng được đưa vào sử dụng. Nó bao gồm các bước sau

k là gì

Xác thực chéo K-fold được được sử dụng để điều chỉnh mô hình/điều chỉnh siêu tham số . Xác thực chéo K-fold liên quan đến việc chia dữ liệu thành các tập dữ liệu thử nghiệm và đào tạo, áp dụng xác thực chéo K-fold trên tập dữ liệu đào tạo và chọn mô hình có hiệu suất tối ưu nhất.

các bước của chéo là gì

Các bước xác thực chéo là gì? .
Chia ngẫu nhiên tập dữ liệu thành tập huấn luyện và kiểm tra
Điều chỉnh mô hình trên tập huấn luyện
Mô hình thử nghiệm trên bộ thử nghiệm
Tính toán và lưu thống kê độ vừa vặn bằng dữ liệu thử nghiệm [#3]
Lặp lại nhiều lần từ 1 đến 4, sau đó tính trung bình các kết quả của bước 4

Xtrain và Ytrain trong Python là gì?

x Huấn luyện và y Huấn luyện trở thành dữ liệu cho máy học, có khả năng tạo mô hình . Khi mô hình được tạo, hãy nhập x Kiểm tra và đầu ra phải bằng y Kiểm tra. Đầu ra mô hình càng chặt chẽ với y Kiểm tra. mô hình càng chính xác.

Chủ Đề