2012-05-03 77 views
24

Tôi đã luôn luôn nghĩ rằng từ những gì tôi đọc mà kiểm chứng chéo được thực hiện như thế này:Chữ thập Validation trong Weka

Trong cross-validation k lần, mẫu ban đầu là ngẫu nhiên phân chia thành k subsamples. Trong số mẫu phụ k, một mẫu phụ duy nhất được giữ lại làm dữ liệu xác nhận để kiểm tra mô hình và các mẫu phụ k - 1 còn lại được sử dụng làm dữ liệu huấn luyện. Quá trình xác nhận chéo sau đó được lặp lại k lần (các nếp gấp), với mỗi mẫu con k được sử dụng chính xác một lần làm dữ liệu xác thực. Các k kết quả từ những nếp gấp sau đó có thể được lấy trung bình (hoặc kết hợp) để tạo ra một ước lượng đơn

Vì vậy, mô hình k được xây dựng và một trong những trận chung kết là mức trung bình của những người. Trong hướng dẫn Weka được viết rằng mỗi mô hình luôn được xây dựng bằng cách sử dụng TẤT CẢ bộ dữ liệu. Vậy việc xác nhận chéo trong Weka hoạt động như thế nào? Mô hình được xây dựng từ tất cả dữ liệu và "xác thực chéo" có nghĩa là k fold được tạo sau đó mỗi lần được đánh giá trên đó và kết quả đầu ra cuối cùng đơn giản là kết quả trung bình từ các nếp gấp?

Trả lời

44

Vì vậy, đây là kịch bản một lần nữa: bạn có 100 dữ liệu nhãn

Sử dụng đào tạo thiết

  • WEKA sẽ mất 100 dữ liệu nhãn
  • nó sẽ áp dụng một thuật toán để xây dựng một phân loại từ 100 dữ liệu này
  • áp dụng trình phân loại AGAIN trên 100 dữ liệu này
  • nó cung cấp cho bạn với hiệu suất của các phân loại (áp dụng với cùng 100 dữ liệu mà từ đó nó đã phát triển)

Sử dụng 10 lần CV

  • Weka mất 100 dữ liệu nhãn

  • nó tạo ra 10 bộ kích thước bằng nhau. Mỗi bộ được chia thành hai nhóm: 90 dữ liệu được dán nhãn được sử dụng để huấn luyện và 10 dữ liệu được dán nhãn được sử dụng để kiểm tra.

  • nó tạo trình phân loại bằng thuật toán từ 90 dữ liệu có nhãn và áp dụng điều đó trên 10 dữ liệu thử nghiệm cho tập 1.

  • Nó điều tương tự cho bộ 2-10 và tạo ra hơn 9 phân loại

  • nó trung bình hiệu suất của 10 phân loại được sản xuất từ ​​10 tương đương kích thước (90 đào tạo và 10 thử nghiệm) đặt

Hãy cho tôi biết nếu điều đó trả lời câu hỏi của bạn.

+1

Tôi có 2 câu hỏi: 1) Nếu như bạn đã nói lý do tại sao trong Hướng dẫn Weka được viết rằng trong mỗi trường hợp (tập huấn luyện và CV) mô hình luôn được xây dựng từ tất cả dữ liệu? Như bạn đã viết trong CV mô hình cuối cùng là trung bình của 10 mô hình khác, phải không?2) Nếu "Mô hình bạn nhận được tại thời điểm này là mức trung bình của tất cả 10 mô hình", có thể sử dụng tập huấn luyện và CV như xác thực tôi đã nhận được các mô hình tương tự như thế nào? (Hy vọng những câu hỏi này không xuất hiện quá ngớ ngẩn!) –

+0

1. Điều này có nghĩa là cho mỗi lần tập dữ liệu đầy đủ được xem xét. Có một số biến thể của CV chuẩn này, nơi một phần của bộ dữ liệu được tổ chức để kiểm tra riêng. 2. Chính xác bạn có ý gì bằng cách "lấy cùng một mô hình"? –

+0

Đối với "cùng một kiểu máy", tôi có nghĩa là ở đầu ra, tôi đã có cùng một cây chính xác –

1

Weka tuân theo xác nhận chéo k-fold thông thường mà bạn đã đề cập ở đây. Bạn có tập hợp dữ liệu đầy đủ, sau đó chia nó thành các số k của các tập hợp bằng nhau (k1, k2, ..., k10 ví dụ cho 10 lần CV) mà không có chồng chéo. Sau đó, ở lần chạy đầu tiên, lấy k1 đến k9 làm bộ huấn luyện và phát triển một mô hình. Sử dụng mô hình đó trên k10 để có được hiệu suất. Tiếp theo là k1 đến k8 và k10 là tập huấn luyện. Phát triển một mô hình từ họ và áp dụng nó cho k9 để có được hiệu suất. Bằng cách này, hãy sử dụng tất cả các nếp gấp trong đó mỗi lần gấp nhiều nhất 1 lần được sử dụng làm bộ kiểm tra.

Sau đó, Weka tính trung bình các buổi biểu diễn và trình bày trên ngăn đầu ra.

+2

Ok, nhưng theo cách này, cách xây dựng mô hình cuối cùng như thế nào? Là trung bình của 10 mô hình được xây dựng trên CV? Nếu có ý nghĩa gì: luôn được xây dựng bằng TẤT CẢ bộ dữ liệu? –

+0

Nếu bạn chọn xác nhận chéo 10 lần trên tab phân loại trong trình khám phá Weka, thì mô hình bạn nhận được là mẫu bạn nhận được với 10 phân đoạn 9-1. Bạn sẽ không có 10 mô hình riêng lẻ mà chỉ có một mô hình duy nhất. Và có, bạn nhận được rằng từ Weka (không đặc biệt Weka, nó được áp dụng cho lý thuyết CV 10 lần chung) khi nó chạy qua toàn bộ tập dữ liệu. –

+0

Tôi xin lỗi nhưng tôi không thể hiểu chút nào ... Vì vậy, sự khác biệt giữa lựa chọn từ "Sử dụng tập huấn luyện" và "Xác thực chéo" về cách thức mô hình? Mô hình cuối cùng là như nhau! –

5

Tôi nghĩ rằng tôi đã tìm ra. Lấy (ví dụ) weka.classifiers.rules.OneR -x 10 -d outmodel.xxx. Điều này có hai điều:

  1. Nó tạo mô hình dựa trên tập dữ liệu đầy đủ. Đây là mô hình được viết thành outmodel.xxx. Mô hình này là không phải được sử dụng như một phần của xác thực chéo.
  2. Sau đó, xác thực chéo được chạy. xác nhận chéo liên quan đến việc tạo ra (trong trường hợp này) 10 mô hình mới với việc đào tạo và thử nghiệm trên các phân đoạn dữ liệu như đã được mô tả. Điều quan trọng là các mô hình được sử dụng trong xác thực chéo là tạm thời và chỉ được sử dụng để tạo thống kê. Chúng không tương đương hoặc được sử dụng cho mô hình được cung cấp cho người dùng.
+1

Nhưng mục đích của xác thực chéo là gì? Nếu mô hình cuối cùng được cung cấp cho người dùng dựa trên tập dữ liệu đầy đủ, tại sao chúng tôi cần xác thực chéo? Tôi nghĩ rằng việc xác nhận chéo là tìm ra mô hình tốt nhất – lenhhoxung

6

tôi sẽ trả lời trong một chú thích nhưng danh tiếng của tôi vẫn không cho phép tôi:

Ngoài câu trả lời chấp nhận Rushdi, tôi muốn nhấn mạnh rằng các mô hình được tạo ra cho cross-validation các bộ gấp được loại bỏ sau khi các phép đo hiệu suất đã được thực hiện và tính trung bình.

Mô hình kết quả là luôn là dựa trên tập hợp đào tạo đầy đủ, bất kể tùy chọn kiểm tra của bạn là gì. Vì M-T-A đang yêu cầu cập nhật liên kết được trích dẫn, ở đây là: http://list.waikato.ac.nz/pipermail/wekalist/2009-December/046633.html. Đó là câu trả lời từ một trong những người bảo trì WEKA, chỉ ra những gì tôi đã viết.

+0

Bạn có biết liệu có cách nào để xem các mô hình được tạo để xác nhận chéo không? – drevicko

+0

có: xem các bài đăng trên danh sách gửi thư weka [ở đây] (http://list.waikato.ac.nz/pipermail/wekalist/2015-July/064572.html) và [tại đây] (http: //list.waikato .ac.nz/pipermail/wekalist/2011-November/053965.html) – drevicko

+2

Nhưng mục đích của xác thực chéo là gì? Nếu mô hình cuối cùng được cung cấp cho người dùng dựa trên tập dữ liệu đầy đủ, tại sao chúng tôi cần xác thực chéo? Tôi nghĩ rằng việc thẩm định chéo là tìm ra mô hình tốt nhất – lenhhoxung